summaryrefslogtreecommitdiffstats
path: root/tmk_core/common/avr/bootloader.c
diff options
context:
space:
mode:
authormilestogo <milestogo@users.noreply.github.com>2017-02-04 20:08:07 -0800
committermilestogo <milestogo@users.noreply.github.com>2017-02-04 20:08:07 -0800
commitb0dfb037dc0b8b20fd87b3c88449a2ce20ff80e1 (patch)
treedf9fb78b55c4a9b8262e35ac7bd26ec0ebdb64db /tmk_core/common/avr/bootloader.c
parente8ba4838d30ef3af6d8e69ebc1d00a1910806ac2 (diff)
parentf0633f2540be3ba86797522a2075a9f5ba2ad5c6 (diff)
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
Diffstat (limited to 'tmk_core/common/avr/bootloader.c')
-rw-r--r--tmk_core/common/avr/bootloader.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/tmk_core/common/avr/bootloader.c b/tmk_core/common/avr/bootloader.c
index ad547b9853..34db8d0b0a 100644
--- a/tmk_core/common/avr/bootloader.c
+++ b/tmk_core/common/avr/bootloader.c
@@ -1,6 +1,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
+#include <avr/eeprom.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include <util/delay.h>
@@ -89,6 +90,12 @@ void bootloader_jump(void) {
_delay_ms(5);
#endif
+ #ifdef BOOTLOADHID_BOOTLOADER
+ // force bootloadHID to stay in bootloader mode, so that it waits
+ // for a new firmware to be flashed
+ eeprom_write_byte((uint8_t *)1, 0x00);
+ #endif
+
// watchdog reset
reset_key = BOOTLOADER_RESET_KEY;
wdt_enable(WDTO_250MS);
@@ -114,6 +121,11 @@ void bootloader_jump(void) {
#endif
}
+#ifdef __AVR_ATmega32A__
+// MCUSR is actually called MCUCSR in ATmega32A
+#define MCUSR MCUCSR
+#endif
+
/* this runs before main() */
void bootloader_jump_after_watchdog_reset(void) __attribute__ ((used, naked, section (".init3")));
void bootloader_jump_after_watchdog_reset(void)