comparison doc/Flash-boot-mode-hack @ 241:63c12cba5ed5

implemented optional workaround for the flash boot problem on FCDEV3B
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 02 May 2017 02:53:36 +0000
parents
children
comparison
equal deleted inserted replaced
240:9034c3a7267e 241:63c12cba5ed5
1 There are two ways in which a flashed firmware image may be booted, which we
2 call mode 0 and mode 1 - see the Flash-boot-modes write-up in the
3 freecalypso-tools repository for the details. All TI official firmwares
4 including our TCS211 reference version have used flash boot mode 1, and the
5 present Magnetite firmware is unchanged in this regard.
6
7 Some FCDEV3B boards have a non-understood hardware problem that causes flash
8 boot to fail (the visible symptom is a dead hang with even JTAG not working)
9 when the firmware image in flash uses boot mode 1. It is not currently known
10 how many boards are affected by this problem; it is possible that the Mother's
11 S/N 001 board is the only one that exhibits this oddity.
12
13 Once the discovery was made that the flash boot problem occurs only when the fw
14 image uses flash boot mode 1, a workaround became apparent: switch to using
15 flash boot mode 0. Redesigning Magnetite fw to use interrupt and exception
16 vectors in the ROM branching to 0x80001C-0x800034 in IRAM is not in line with
17 the Mother's vision, but a surgical hack to make the Magnetite fw flash image
18 receive control from the boot ROM in mode 0, disable the boot ROM via the
19 FFFF:FB10 register and jump to 0 as if in mode 1 is quite doable, and it
20 accomplishes the job of producing a flash image of FC Magnetite that boots
21 without a hitch on the flash-boot-challenged FCDEV3B.
22
23 The standard FC Magnetite build is unchanged and unaffected, i.e., the hack in
24 question is NOT applied by default. However, if you have a board that has
25 trouble booting the regular Magnetite fwimage.bin that uses flash boot mode 1,
26 you can run 'make fwimage.mode0' in your build directory to get an image patched
27 with the flash boot mode 0 hack.