# HG changeset patch # User Space Falcon # Date 1433577156 0 # Node ID 8604a725d883e52b83c6938c66822beb90a2af03 # Parent 73e647918297bace885a007c0209703c34362523 bootloader-disable.patch implemented diff -r 73e647918297 -r 8604a725d883 patches/Makefile --- 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 $@ diff -r 73e647918297 -r 8604a725d883 patches/bootloader-disable.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