summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-03-10 07:05:28 +0100
committertmk <nobody@nowhere>2013-03-10 07:06:33 +0100
commitf55c677ba46a8243f077195ef4f39cde1babf560 (patch)
treeeb1803049580c109674ed78911f0e9b40549a4dc
parent1385058fc21f80347c7afd2b818e38795ce9d55a (diff)
downloadqmk_firmware-f55c677ba46a8243f077195ef4f39cde1babf560.tar.gz
qmk_firmware-f55c677ba46a8243f077195ef4f39cde1babf560.tar.xz
Fix watchdog in bootloader jump
- disable watchdog after watchdog reset - clear WDRF after watchdog reset
-rw-r--r--common/bootloader.c23
-rw-r--r--keyboard/hhkb/Makefile.iwrap9
-rw-r--r--keyboard/hhkb/Makefile.lufa11
3 files changed, 28 insertions, 15 deletions
diff --git a/common/bootloader.c b/common/bootloader.c
index 77fa1b30a..023220414 100644
--- a/common/bootloader.c
+++ b/common/bootloader.c
@@ -11,15 +11,16 @@
#endif
-/* Boot Section Size in bytes
- * Teensy halfKay 512
- * Atmel DFU loader 4096
- * LUFA bootloader 4096
+/* Boot Section Size in *BYTEs*
+ * Teensy halfKay 512
+ * Teensy++ halfKay 1024
+ * Atmel DFU loader 4096
+ * LUFA bootloader 4096
*/
#ifndef BOOT_SIZE
#define BOOT_SIZE 512
#endif
-#define FLASH_SIZE (FLASHEND + 1)
+#define FLASH_SIZE (FLASHEND + 1L)
#define BOOTLOADER_START (FLASH_SIZE - BOOT_SIZE)
@@ -58,13 +59,15 @@ void bootloader_jump_after_watchdog_reset(void) __attribute__ ((used, naked, sec
void bootloader_jump_after_watchdog_reset(void)
{
if ((MCUSR & (1<<WDRF)) && reset_key == BOOTLOADER_RESET_KEY) {
+ reset_key = 0;
- #if defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
- // This makes custom USBasploader come up.
+ // My custom USBasploader requires this to come up.
MCUSR = 0;
- #endif
- reset_key = 0;
+ // Seems like Teensy halfkay loader requires clearing WDRF and disabling watchdog.
+ MCUSR &= ~(1<<WDRF);
+ wdt_disable();
+
((void (*)(void))BOOTLOADER_START)();
}
}
@@ -138,4 +141,4 @@ void bootloader_jump(void) {
// start Bootloader
((void (*)(void))BOOTLOADER_START)();
}
-#endif
+#endif
diff --git a/keyboard/hhkb/Makefile.iwrap b/keyboard/hhkb/Makefile.iwrap
index f87df0d2b..3ec1a3164 100644
--- a/keyboard/hhkb/Makefile.iwrap
+++ b/keyboard/hhkb/Makefile.iwrap
@@ -49,6 +49,15 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
#NKRO_ENABLE = yes # USB Nkey Rollover
+# Boot Section Size in *BYTEs*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOT_SIZE=2048
+
+
#---------------- Programming Options --------------------------
AVRDUDE = avrdude
diff --git a/keyboard/hhkb/Makefile.lufa b/keyboard/hhkb/Makefile.lufa
index afd413d01..75c0310d6 100644
--- a/keyboard/hhkb/Makefile.lufa
+++ b/keyboard/hhkb/Makefile.lufa
@@ -107,11 +107,12 @@ CONSOLE_ENABLE = yes # Console for debug
#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
-# Boot Section Size in bytes
-# Teensy halfKay 512
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-#OPT_DEFS += -DBOOT_SIZE=4096
+# Boot Section Size in *BYTEs*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+OPT_DEFS += -DBOOT_SIZE=1024
# Search Path