annotate doc/Flash-boot-mode-hack @ 365:f8ad9dcadde0

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