FreeCalypso > hg > fc-magnetite
annotate doc/FCDEV3B-hardware-bug @ 549:69e52afc01d5
configs/* except classic: rebuild tif_na7_db_{fl,ir} from source
The purpose of this change is to allow a TRACEMASK_IN_FFS=1 setting given
on the configure line to have effect; all configs except classic are
included because this feature setting is orthogonal to the choice of
G23M PS version and other config choices. (The classic config is an
exception because its very purpose is to preserve a reference config
with all of the original blobs.)
Note that even though we are switching these TIF libraries from blobs
to recompilation from source in all configs, our source for these libs
compiles into a perfect match to the original blobs in the current default
TRACEMASK_IN_FFS=0 configuration, hence there is no effective change
beyond the unfortunate small increase in compilation times.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 18 Nov 2018 08:33:30 +0000 |
parents | 15c61c8f3166 |
children |
rev | line source |
---|---|
474
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Our current FCDEV3B boards exhibit a hardware bug: the reset input to the flash |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 chip is connected to Calypso's FDP output per both TI's Leonardo reference |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 schematics and Openmoko's working design, but this arrangement turns out to be |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 unsuitable for the high-capacity Spansion S71PL129NC0HFW4B flash+pSRAM chip we |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 are using, copied from Pirelli DP-L10. This hardware bug has manifested itself |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 in two different ways so far: |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * Out of the 20 boards we've built so far, on just one board there was an issue |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 where our standard Magnetite fw would have trouble booting from flash, but |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 RAM-loaded fw booted fine. Interrupting the boot process serially and having |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 the serially loaded code jump to the image in flash also worked fine. |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 Eventually it was found that the flash boot problem on that one board occurs |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 only when flash boot mode 1 is used, whereas flash boot mode 0 works fine. I |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 (Mychaela) suspect that the problem has something to do with the watchdog |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 reset that happens as part of flash boot mode 1, the FDP output behaviour |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 during that watchdog reset, and the flash chip's reaction to the latter. |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 * On all of the boards there is a problem with sleep modes: when the firmware |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 is running from flash as opposed to RAM, certain sleep-wake sequences cause |
483
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
20 an erratic self-reboot or a hang. Oscilloscope probing on a decased Pirelli |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
21 DP-L10 motherboard on which Calypso's FDP output is accessible seems to |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
22 confirm my (Mychaela's) suspicion that this FDP signal goes low during all |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
23 sleep modes, and the current working hypothesis is that our Spansion flash |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
24 chip gets unhappy with the reset timing it gets subjected to, and some flash |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
25 reads (instruction fetches) don't work after wakeup. So far the only workable |
474
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 solution has been to disable all sleep modes in all FCDEV3B fw builds; |
483
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
27 nothing else has been successful. However, re-enabling all of these sleep |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
28 modes with AT%SLEEP=4 works fine when the firmware image executes out of RAM |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
29 instead of flash, further supporting our current working hypothesis as to the |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
30 root cause. |
474
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 The fcdev3b-hacks directory contains two hacks that can be applied to FCDEV3B |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 firmware images (fwimage.bin builds) as xxd binary patches: |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 * The first hack dating from 2017-05 patches the fw to use flash boot mode 0 |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 instead of TI's original flash boot mode 1, but after boot the FFFF:FB10 |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 register is set to put the flash and not the internal ROM at address 0, so |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 the interrupt and exception vectors go to the flash like in TI's original fw, |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 not through the internal ROM. This hack was put together for the purpose of |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 producing flashable fw images that boot without problems on that one board on |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 which flash boot mode 1 didn't work, and worked successfully for that purpose. |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 * The second hack dating from 2018-03 patches the fw to not only use flash boot |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 mode 0, but also route the interrupt and exception vectors through Calypso's |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 internal ROM. I was hoping that this hack would make the sleep mode problem |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 go away by having the Calypso execute some cycles out of its internal ROM and |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 RAM before hitting the flash after wakeup, but nope, bringing up the SIM |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 interface with AT+CFUN=1 in the l1reconst config when running from flash with |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 small sleep enabled still triggers erratic misbehaviour even with this patch. |
8fbf3c0ea8b6
doc: Flash-boot-mode-hack article replaced with FCDEV3B-hardware-bug
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
483
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
51 The proper fix will require a new PCB spin to change the flash reset wiring: |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
52 instead of driving it with Calypso's FDP output, use the ON_nOFF master reset |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
53 signal from Iota's VRPC block, fed through a logic voltage level translating |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
54 buffer to change it from 1.5 V to 2.8 V logic. The flash chip we are using has |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
55 lower power consumption when it is NOT held in reset, hence unlike TI's intent |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
56 with FDP, we don't want our flash chip to go into reset during any sleep at all. |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
57 |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
58 The new PCB revision with this change is now in the process of being finalized, |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
59 and we will soon need the funding to produce the new boards. Anyone who is |
15c61c8f3166
doc/FCDEV3B-hardware-bug: update on the investigation and the proposed fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
474
diff
changeset
|
60 interested in helping to make FCDEV3B V2 a reality should email Mychaela. |