FreeCalypso > hg > freecalypso-tools
annotate doc/Loadtools-performance @ 965:2969032bdfac
fcup-smsend[mult]: fix buglet in K&R C NULL pointer passing
The only 100% safe way to pass a NULL pointer as a function argument
in K&R C is to cast 0 to a pointer type; failing to do so may cause
mysterious bugs (invalid stack frames or garbage in argument registers)
on 64-bit machines. This issue has already been fixed in most of
FC host tools, but I just found some missed spots: passing of NULL UDH
to PDU encoding functions in fcup-smsend[mult] in the case of single
(not concatenated) SMS.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 01 Sep 2023 07:33:51 +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! |