FreeCalypso > hg > freecalypso-tools
annotate doc/Flash-boot-defect @ 407:19e5a3e2f9c0
fcup-settime: moved time() retrieval a little closer to the output
A fundamental problem with all simple time transfer tools is that there is
always some delay between the time retrieval on the source system and that
transmitted time being set on the destination, and the resulting time
on the destination system is off by that delay amount. This delay cannot
be fully eliminated when working in a simple environment like ours,
but we should make our best effort to minimize it. In the present case,
moving the atinterf_init() call before the time() retrieval should make
a teensy-tiny improvement.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 11 Aug 2018 21:52:17 +0000 |
parents | de8f75783b3b |
children |
rev | line source |
---|---|
205
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 As of this writing (2017-05-01), there is an unexplained hardware problem on |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 some of our FCDEV3B boards in that flashed firmware images which use flash boot |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 mode 1 (see the Flash-boot-modes article) fail to boot. It is not currently |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 known how many boards are affected by this problem; it is possible that the |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 Mother's S/N 001 board is the only one that exhibits this oddity. |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 This problem particularly affects our FC Magnetite firmware, as the latter uses |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 flash boot mode 1 just like TI's TCS211 fw from which it originates. OTOH, our |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 FC Citrine firmware, which uses flash boot mode 0, boots just fine. A minimal |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 test case has been created under target-utils/flash-boot-test in this |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 repository: it is a simple loadagent-like standalone application that is built |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 to be booted from flash instead of expecting to be loaded serially, and it is |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 built in two versions, one for mode 0 and another for mode 1. Both versions |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 work on an Openmoko-made GTA02 (the mode 1 version continuously reboots every |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 few seconds because it doesn't disable the watchdog timer, but it is still very |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 clearly alive) as well as on those FCDEV3B boards which aren't affected, but on |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 FCDEV3B S/N 001 the mode 1 version fails to boot just like the full Magnetite |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 firmware. |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 The Mother of FreeCalypso does not currently have any prognosis as to when or |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 even if the mysterious hardware problem that causes flash boot mode 1 to fail |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 can be fixed. Logical reasoning tells us that it must be a hardware problem, |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 as the flash boot mode in question works without a hitch on every pre-existing |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 Calypso device known to us, and similar logical reasoning tells us that the |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 watchdog timer probably has to be involved in some way, as it is the mechanism |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 underlying flash boot mode 1 (again, see the Flash-boot-modes article), but I |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 am at a total loss when it comes to what kind of board-level problem could |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 possibly produce such behaviour. But then if only the S/N 001 board is affected |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 and no others, it could just be a defective chip. More data points need to be |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 gathered before we shall know whether or not we have a real problem. |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 For those who do have a flash-boot-challenged FCDEV3B board, two workarounds |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 have been developed, in this chronological order: |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 1. One can boot the board in the serial download mode, and download a |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 teensy-tiny piece of code that disables the boot ROM and jumps to address 0. |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 If the flash contains a firmware image meant to be booted in mode 1, this |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 image will get indirectly booted in this manner. Run a command like this: |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 fc-iram -h fcfam /dev/ttyXXX /opt/freecalypso/target-bin/flash-boot-wa.srec rvinterf |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 (fc-iram has been extended to support second program invokation just like |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 fc-xram, just for this peculiar use case. The flash-boot-wa.srec helper can |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 also be booted via fc-xram.) |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 2. After doing the above, I found a way to patch the Magnetite firmware image |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 to boot in mode 0 - see the Flash-boot-mode-hack write-up in the Magnetite |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 source tree. With this patch applied, FC Magnetite happily boots directly |
de8f75783b3b
Flash-boot-defect and Flash-boot-modes documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 from flash on my board without needing fc-iram or fc-xram assistance. |