summaryrefslogtreecommitdiff
path: root/keyboard/infinity/mbed-infinity/README
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2015-10-27 12:42:30 -0400
committerJack Humbert <jack.humb@gmail.com>2015-10-27 12:42:30 -0400
commit547da78335298df6666200c6063ac6f1aba312fd (patch)
tree47df0252ee24b1ecc27b9dd0458c51f20bf088c3 /keyboard/infinity/mbed-infinity/README
parenta766918d5c48204375f4c207b30bbbf1389df14f (diff)
parentfa33719adab1393753312d298b8c365e04e844b9 (diff)
merging tmk
Diffstat (limited to 'keyboard/infinity/mbed-infinity/README')
-rw-r--r--keyboard/infinity/mbed-infinity/README44
1 files changed, 44 insertions, 0 deletions
diff --git a/keyboard/infinity/mbed-infinity/README b/keyboard/infinity/mbed-infinity/README
index b0d226f793..43051c9003 100644
--- a/keyboard/infinity/mbed-infinity/README
+++ b/keyboard/infinity/mbed-infinity/README
@@ -37,3 +37,47 @@ Clock enable:
SIM_SCGC4[USBOTG] = 1
+
+Infinity bootloader change
+==========================
+After @2c7542e(2015/01) Infinity bootloader doesn't disable watchdog timer and keyboard firmware has to do it itself. mbed disables watchdog in startup sequence but unfortunately timer is timed out bofore that.
+
+We have to do that in earlier phase of mbed startup sequence.
+
+
+mbed starup sequence files:
+mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/TOOLCHAIN_GCC_ARM/startup_M20D5.s
+mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/system_MK20D5.c
+
+Infinity booloader change commit:
+https://github.com/kiibohd/controller/commit/2c7542e2e7f0b8a99edf563dc53164fe1a439483
+
+discussion:
+https://geekhack.org/index.php?topic=41989.msg1686616#msg1686616
+
+
+WORKAROUND
+----------
+Call SystemInit early in Reset_Handler.
+
+$ diff -u ../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/TOOLCHAIN_GCC_ARM/startup_MK20D5.s mbed-infinity
+--- ../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/TOOLCHAIN_GCC_ARM/startup_MK20D5.s 2015-03-22 10:33:22.779866000 +0900
++++ mbed-infinity/startup_MK20D5.s 2015-03-22 10:32:56.483866000 +0900
+@@ -147,6 +147,8 @@
+ * __etext: End of code section, i.e., begin of data sections to copy from.
+ * __data_start__/__data_end__: RAM address range that data should be
+ * copied to. Both must be aligned to 4 bytes boundary. */
++ ldr r0, =SystemInit
++ blx r0
+
+ ldr r1, =__etext
+ ldr r2, =__data_start__
+@@ -161,8 +163,6 @@
+
+ .Lflash_to_ram_loop_end:
+
+- ldr r0, =SystemInit
+- blx r0
+ ldr r0, =_start
+ bx r0
+ .pool