FreeCalypso > hg > freecalypso-tools
annotate doc/Loadtools-performance @ 926:6a0aa8d36d06
rvinterf backslash escape: introduce libprint
The new helper function library named libprint is meant to replace
the badly misnamed libg23, and will soon contain functions for
printing all of the same kinds of GPF TST packets that are now handled
in libg23. However, we are also moving safe_print_trace() from libasync
to this new library, and changing it to emit our new backslash escape
format.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 23 May 2023 03:47:46 +0000 |
parents | 4a1f0bbca58e |
children |
rev | line source |
---|---|
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
1 Memory dump performance |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
2 ======================= |
630
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
3 |
611
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 Here are the expected run times for the flash dump2bin operation of dumping the |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
5 entire flash content of a Calypso GSM device with the current version of |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
6 fc-loadtool which uses the new binary transfer protocol: |
611
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 Dump of 4 MiB flash (e.g., Openmoko GTA01/02 or Mot C139/140) at 115200 baud: |
693
4a1f0bbca58e
doc/Loadtools-performance: two digits for seconds
Mychaela Falconia <falcon@freecalypso.org>
parents:
681
diff
changeset
|
9 6m04s |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
10 |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
11 The same 4 MiB flash dump at 812500 baud: 0m52s |
611
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
13 Dump of 8 MiB flash (e.g., Mot C155/156) at 812500 baud: 1m44s |
611
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
15 These times are a 2x improvement compared to all previous versions of |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
16 fc-loadtool (prior to fc-host-tools-r13) which used a hex-based transfer |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
17 protocol. |
611
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 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
|
20 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
|
21 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
|
22 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
|
23 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
|
24 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
|
25 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
|
26 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
|
27 operations are implemented in our architecture. |
c847d742ab38
doc/Loadtools-performance: article started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
29 Flash programming operations |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
30 ============================ |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
31 |
615
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
32 Here are some examples of expected flash programming times, all obtained on the |
630
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
33 Mother's Slackware 14.2 host system: |
615
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
34 |
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
35 Flashing an Openmoko GTA02 modem (K5A3281CTM flash chip) with a new firmware |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
36 image (2376448 bytes), using a PL2303 USB-serial cable at 115200 baud: 0m19s to |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
37 erase 37 sectors, 3m45s to program the image. |
615
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
38 |
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
39 Flashing the same OM GTA02 modem with the same fw image, using a CP2102 |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
40 USB-serial cable at 812500 baud: 0m19s to erase, 0m51s to program. |
615
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
41 |
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
42 Flashing a Magnetite hybrid fw image (2378084 bytes) into an FCDEV3B board |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
43 (S71PL129N flash chip) via an FT2232D adapter at 812500 baud: 0m24s to erase |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
44 13 sectors (4 small and 9 large), 1m27s to program the image. |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
45 |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
46 Regardless of whether you execute these two steps separately or use one of our |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
47 new flash e-program-{bin,m0,srec} commands, flash programming is always done in |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
48 two steps: first the erase operation covering the needed range of sectors, then |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
49 the actual programming operation that includes the data transfer. |
615
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
50 |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
51 Flash erase times are determined entirely by physical processes inside the |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
52 flash chip and thus should not be affected by software design or the serial |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
53 link: for each sector to be erased, fc-loadtool issues the sector erase command |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
54 to the flash chip and then polls the chip for operation completion status; the |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
55 polling is done over the serial link and thus may seem very slow, but the extra |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
56 bit of latency added by the finite polling speed is still negligible (at least |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
57 on the Mother's Slackware system) compared to the time of the actual sector |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
58 erase operation inside the flash chip. One remaining flaw is that in our |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
59 current implementation the issuance of each individual sector erase command to |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
60 the flash chip takes 6 command-response exchanges between fc-loadtool and |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
61 loadagent; on my Slackware host system this extra overhead is still negligible |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
62 compared to the 0.5s or more for the actual erase operation time, but this |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
63 overhead may become more significant on host systems with higher latency. |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
64 |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
65 After the erase operation, the execution time of the main flash programming |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
66 operation is a sum of 3 components: |
613
ab4021fb1c66
doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
67 |
ab4021fb1c66
doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
68 * 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
|
69 * 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
|
70 target (physics inside the flash chip); |
ab4021fb1c66
doc/Loadtools-performance: flash programming added
Mychaela Falconia <falcon@freecalypso.org>
parents:
611
diff
changeset
|
71 * 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
|
72 |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
73 Because image data transfer is taking place in this step, flash programming at |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
74 812500 baud is faster than 115200 baud, although it is not the same 7x |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
75 improvement as happens with flash dumps. The present version of fc-loadtool |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
76 also uses a new binary transfer protocol instead of the hex-based one used in |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
77 previous versions (prior to fc-host-tools-r13); this change produces a 2x |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
78 improvement for OM GTA02 flashing, but only a smaller improvement for FCDEV3B |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
79 flashing. |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
80 |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
81 Notice the difference in flash programming times between GTA02 and FCDEV3B: the |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
82 fw image size is almost exactly the same, any difference in latency between |
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
83 CP2102 and FT2232D is less likely to produce such significant time difference |
680
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
84 given our current 2048 byte transfer block size (in fact fc-xram transfer times |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
85 suggest that FT2232D is faster), thus the difference in physical flash program |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
86 operation times between K5A3281CTM and S71PL129N flash chips seems to be the |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
87 most likely explanation. |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
88 |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
89 It also needs to be noted that in the current version of fc-loadtool there is |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
90 no difference in performance between flash program-bin, program-m0 and |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
91 program-srec operations: they all use the same binary protocol with 2048 byte |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
92 transfer block size. There is no coupling between source S-records and flash |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
93 programming operation blocks (2048-byte units) in the case of flash program-m0 |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
94 and program-srec: the new implementation of these commands prereads the entire |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
95 S-record image as a separate preparatory step on the host side, the bits to be |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
96 programmed are saved in a temporary binary file (automatically deleted |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
97 afterward), and the actual flash programming operation proceeds from this |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
98 internal binary source - but it knows about any discontiguous program regions |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
99 and skips the gaps properly. |
671
e66fafeeb377
doc/Loadtools-performance: new faster flash operations
Mychaela Falconia <falcon@freecalypso.org>
parents:
630
diff
changeset
|
100 |
630
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
101 XRAM loading via fc-xram |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
102 ======================== |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
103 |
680
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
104 The new version of fc-xram as of fc-host-tools-r13 is dramatically faster than |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
105 the original implementation from 2013, using a new binary transfer protocol. |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
106 The speed increase comes from not only switching from hex to binary, but even |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
107 more so from eliminating the command-response turnaround time on every S3 |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
108 record. The new XRAM loading times obtained on the Mother's Slackware 14.2 |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
109 host system are: |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
110 |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
111 Pirelli DP-L10 with built-in CP2102 USB-serial chip, 812500 baud, loading |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
112 hybrid-vpm fw build, 49969 S3 records: 0m27s |
615
39b74c39d914
doc/Loadtools-performance: complete for now
Mychaela Falconia <falcon@freecalypso.org>
parents:
613
diff
changeset
|
113 |
680
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
114 FCDEV3B interfaced via FT2232D adapter, 812500 baud, loading hybrid fw build, |
681
0815661d6e3e
doc/Loadtools-performance: typo fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
680
diff
changeset
|
115 78875 S3 records: 0m35s |
680
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
116 |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
117 With the previous version of fc-xram these two loads took 1m40s and 2m54s, |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
118 respectively. With the current version of loadtools XRAM loading is faster |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
119 than flash programming for the same fw image as one would naturally expect (the |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
120 flash programming step on the target is replaced with a simple memcpy() |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
121 operation), but in the previous version XRAM loading was slower because of |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
122 massive command-response exchange overhead: there was a command-response |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
123 turnaround time incurred for every S3 record, typically carrying only 30 bytes |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
124 of payload. |
630
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
125 |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
126 Additional complication with FTDI adapters and newer Linux kernel versions |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
127 ========================================================================== |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
128 |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
129 If you are using an FTDI adapter and a Linux kernel version newer than early |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
130 2017 (the change was introduced between 4.10 and 4.11), then you have one |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
131 additional complication: a change was made to the ftdi_sio driver in the Linux |
680
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
132 kernel that made many loadtools operations (basically everything other than |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
133 flash dumps which are entirely target-driven) unbearably slow, at least with |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
134 previous versions of loadtools that made many more command-response exchanges |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
135 with loadagent for smaller transfer units and thus were much more sensitive to |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
136 host system latency on these exchanges. We do not yet know if this FTDI |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
137 latency timer issue still has a significant negative impact or not with current |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
138 loadtools, but if it does, the solution is to run a special setserial command. |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
139 After you plug in your FTDI-based USB-serial cable or connect the USB cable |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
140 between your PC or laptop and your FTDI adapter board, causing the |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
141 corresponding ttyUSBx device to appear, execute the following command: |
630
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
142 |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
143 setserial /dev/ttyUSBx low_latency |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
144 |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
145 (Obviously change ttyUSBx to your actual ttyUSB number.) Execute this |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
146 setserial command before running fc-loadtool or fc-xram, and then hopefully you |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
147 should get performance that is comparable to what I get on classic Slackware. |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
148 I say "hopefully" because I am not able to test it myself - I refuse to run any |
8c6e7b7e701c
doc/Loadtools-performance: updates for new program-m0 and setserial
Mychaela Falconia <falcon@freecalypso.org>
parents:
618
diff
changeset
|
149 OS that can be categorized as "modern" - but field reports of performance on |
680
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
150 non-Slackware systems running newer Linux kernels (4.11 or later) are welcome, |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
151 both with and without the low_latency setting. Please be sure to include your |
89ed8b374bc0
doc/Loadtools-performance: finished updates for fc-host-tools-r13
Mychaela Falconia <falcon@freecalypso.org>
parents:
678
diff
changeset
|
152 Linux kernel version and your USB-serial adapter type in your report! |