annotate doc/Loadtools-performance @ 616:4be92bcd1535

fc-loadtool: added operation time reporting to flash erase
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 25 Feb 2020 02:43:05 +0000
parents 39b74c39d914
children 6824c4d55848
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
611
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Here are the expected run times for the flash dump2bin operation of dumping the
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 entire flash content of a Calypso GSM device:
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 Dump of 4 MiB flash (e.g., Openmoko GTA01/02 or Mot C139/140) at 115200 baud:
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 12m53s
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 The same 4 MiB flash dump at 812500 baud: 1m50s
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 Dump of 8 MiB flash (e.g., Mot C155/156) at 812500 baud: 3m40s
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 Because of the architecture of fc-loadtool and its loadagent back-end, the run
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 time of a flash dump operation depends only on the serial baud rate and the
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 size of the flash area to be dumped; it should not depend on the USB-serial
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 adapter type or any host system properties, as long as the host system and
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 serial adapter combination supports the desired baud rate. In contrast, flash
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 programming and fc-xram loading operations are quite different in that their
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 run times do depend on the host system and USB-serial adapter or other serial
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 port hardware - this host system dependency exists because of the way these
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 operations are implemented in our architecture.
c847d742ab38 doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20
615
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
21 Here are some examples of expected flash programming times, all obtained on the
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
22 Mother's Slackware 14.2 host system:
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
23
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
24 Flashing an Openmoko GTA02 modem (K5A3281CTM flash chip) with a new firmware
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
25 image (2376448 bytes), using a PL2303 USB-serial cable at 115200 baud: 7m35s
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
26
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
27 Flashing the same OM GTA02 modem with the same fw image, using a CP2102
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
28 USB-serial cable at 812500 baud: 1m52s
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
29
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
30 Flashing a Magnetite hybrid fw image (2378084 bytes) into an FCDEV3B board
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
31 (S71PL129N flash chip) via an FT2232D adapter at 812500 baud: 2m11s
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
32
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
33 These times are just for the flash program-bin operation, not counting the
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
34 flash erase which must be done first. Flash erase times are determined
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
35 entirely by physical processes inside the flash chip and are not affected by
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
36 software design or the serial link: for each sector to be erased, fc-loadtool
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
37 issues the sector erase command to the flash chip and then polls the chip for
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
38 operation completion status; the polling is done over the serial link and thus
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
39 may seem very slow, but the extra bit of latency added by the finite polling
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
40 speed is still negligible compared to the time of the actual sector erase
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
41 operation inside the flash chip. In contrast, the execution time of a flash
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
42 program-bin operation is a sum of 3 components:
613
ab4021fb1c66 doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents: 611
diff changeset
43
ab4021fb1c66 doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents: 611
diff changeset
44 * The time it takes for the bits to be transferred over the serial link;
ab4021fb1c66 doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents: 611
diff changeset
45 * The time it takes for the flash programming operation to complete on the
ab4021fb1c66 doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents: 611
diff changeset
46 target (physics inside the flash chip);
ab4021fb1c66 doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents: 611
diff changeset
47 * The overhead of command-response exchanges between fc-loadtool and loadagent.
ab4021fb1c66 doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents: 611
diff changeset
48
615
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
49 XRAM loading via fc-xram is similar to flash programming in that fc-xram sends
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
50 a separate ML command to loadagent for each S-record, thus the total XRAM image
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
51 loading time is not only the serial bit transfer time, but also the overhead of
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
52 command-response exchanges between fc-xram and loadagent. The flash programming
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
53 times listed above include flashing an FC Magnetite fw image into an FCDEV3B,
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
54 which took 2m11s; doing an fc-xram load of the same FC Magnetite fw image (built
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
55 as ramimage.srec) into the same FCDEV3B via the same FT2232D adapter at 812500
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
56 baud takes 2m54s.
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
57
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
58 Why does XRAM loading take longer than flashing? Shouldn't it be faster because
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
59 the flash programming step on the target is replaced with a simple memcpy()?
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
60 Answer: fc-xram is currently slower than flash program-bin because the latter
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
61 sends 256 bytes at a time to loadagent, whereas fc-xram sends one S-record at a
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
62 time; the division of the image into S-records is determined by the tool that
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
63 generates the SREC image, but TI's hex470 post-linker generates images with 30
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
64 bytes of payload per S-record. Having the operation proceed in smaller chunks
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
65 increases the overhead of command-response exchanges and thus increases the
39b74c39d914 doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents: 613
diff changeset
66 overall time.