changeset 10:8604a725d883

bootloader-disable.patch implemented
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sat, 06 Jun 2015 07:52:36 +0000
parents 73e647918297
children 89ea4c7215a7
files patches/Makefile patches/bootloader-disable.patch
diffstat 2 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/patches/Makefile	Sat Jun 06 05:57:32 2015 +0000
+++ b/patches/Makefile	Sat Jun 06 07:52:36 2015 +0000
@@ -1,6 +1,9 @@
 NEWLIBS=tpudrv-quadband.lib
 TOOL=	../tool/ti-libpatch
 
+bootloader-disable.lib:	../libs/bootloader.lib bootloader-disable.patch
+	${TOOL} ../libs/bootloader.lib bootloader-disable.patch $@
+
 main-fchw.lib:	../libs/main.lib main-fchw.patch
 	${TOOL} ../libs/main.lib main-fchw.patch $@
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/bootloader-disable.patch	Sat Jun 06 07:52:36 2015 +0000
@@ -0,0 +1,19 @@
+# TI's TCS211 firmware includes a component called "bootloader" which executes
+# before the main fw and seems to provide a mechanism for interrupting and
+# diverting the regular boot process by sending some magic into one of the
+# UARTs, replicating the equivalent functionality provided by the Calypso boot
+# ROM.  However, we never got the source for this part, only a binary object
+# library, so it is not immediately apparent exactly what this bootloader does,
+# what the communication protocol is and so forth - and I (Space Falcon) don't
+# feel like reverse-engineering this piece as the needed functionality is
+# provided much more usefully (unbrickable!) by the boot ROM in the chip.
+#
+# If one does not wish to run code for which we have no source and which we
+# therefore don't really understand, the present patch disables the TCS211
+# bootloader by smacking a "bx lr" Thumb instruction at the
+# $sta_select_application entry point to the code for which we have no source.
+
+[start.obj]
+
+.text 16a 70
+.text 16b 47