annotate doc/Flash-boot-wa @ 1011:6d9b10633f10 default tip

etmsync Pirelli IMEI retrieval: fix poor use of printf() Bug reported by Vadim Yanitskiy <fixeria@osmocom.org>: the construct where a static-allocated string was passed to printf() without any format arguments causes newer compilers to report a security problem. Given that formatted output is not needed here, just fixed string output, change printf() to fputs(), and direct the error message to stderr while at it.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 23 May 2024 17:29:57 +0000
parents efb93f3e4ac7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
462
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 There is a tiny (120 bytes SREC file) program called flash-boot-wa that was
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 written in the spring of 2017 for the purpose of working around a problem that
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 happened on only one first-batch FCDEV3B board and never happened on any other
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 board - but Murphy's law had it that this one troubled board just had to be the
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 one on which my (Mother Mychaela's) very initial development and bring-up work
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 was done.
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 The defect exhibited on that one board was as follows: it had no problem booting
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 serially (fc-iram, fc-loadtool, fc-xram) and it had no problem booting from
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 flash in mode 0 (see the Flash-boot-modes article in the freecalypso-docs
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 repository), but booting from flash in mode 1 (the flash boot mode used by
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 FC Magnetite, which is our primary firmware) was troubled. The exact failure
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 mode and the root cause were never solved, but the issue most likely involved
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 the watchdog reset in some way (it occurs as part of flash boot mode 1 but not
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 in mode 0 and not in serial downloading), and because Calypso's FDP output goes
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 low during watchdog reset (or at least TI's CAL000 document says so), it is
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 plausible that the root cause involved the Spansion flash chip getting unhappy
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 as a result of being jerked with extra resets which don't meet its reset timing
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 requirements.
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 Our new FCDEV3B V2 boards no longer use Calypso's FDP output (it is left
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 unconnected) and feature a new flash reset circuit of our own design that meets
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 the reset timing requirements of our Spansion flash chip, hence the flash boot
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 problem seen on that one FCDEV3B S/N 001 board is not expected to recur on any
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 of our current or future boards. However, our little flash-boot-wa program is
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 kept around: removing a previously-released 120-byte program for no good reason
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 is not the way of FOSS.
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 This flash-boot-wa program is loaded serially via fc-iram; it disables the boot
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 ROM and jumps to address 0 (the opposite of what we do in compalstage for Mot
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 C1xx phones), thereby indirectly booting the made-for-boot-mode-1 firmware image
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 in the flash. The intended usage was as follows:
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 fc-iram -h fcfam /dev/ttyXXX /opt/freecalypso/target-bin/flash-boot-wa.srec rvinterf
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 It is also worth noting that fc-iram has been extended to support second program
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 invokation just like fc-xram (used in the invokation line above) just for this
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 peculiar use case. The flash-boot-wa.srec helper can also be booted via
efb93f3e4ac7 doc/Flash-boot-wa: explanatory article added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 fc-xram.