view doc/Loadtools-performance @ 614:02bdb2f366bc

fc-xram: added transfer time reporting
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 24 Feb 2020 23:07:03 +0000
parents ab4021fb1c66
children 39b74c39d914
line wrap: on
line source

Here are the expected run times for the flash dump2bin operation of dumping the
entire flash content of a Calypso GSM device:

Dump of 4 MiB flash (e.g., Openmoko GTA01/02 or Mot C139/140) at 115200 baud:
12m53s

The same 4 MiB flash dump at 812500 baud: 1m50s

Dump of 8 MiB flash (e.g., Mot C155/156) at 812500 baud: 3m40s

Because of the architecture of fc-loadtool and its loadagent back-end, the run
time of a flash dump operation depends only on the serial baud rate and the
size of the flash area to be dumped; it should not depend on the USB-serial
adapter type or any host system properties, as long as the host system and
serial adapter combination supports the desired baud rate.  In contrast, flash
programming and fc-xram loading operations are quite different in that their
run times do depend on the host system and USB-serial adapter or other serial
port hardware - this host system dependency exists because of the way these
operations are implemented in our architecture.

Here is one example of expected flash programming time: flashing a FreeCalypso
Magnetite hybrid fw image (2378084 bytes) into an FCDEV3B board (S71PL129N
flash chip) via an FT2232D adapter at 812500 baud takes 2m11s on the Mother's
Slackware 14.2 system.  This time is just for the flash program-bin operation,
not counting the flash erase which must be done first.  Flash erase times are
determined entirely by physical processes inside the flash chip and are not
affected by software design or the serial link: for each sector to be erased,
fc-loadtool issues the sector erase command to the flash chip and then polls
the chip for operation completion status; the polling is done over the serial
link and thus may seem very slow, but the extra bit of latency added by the
finite polling speed is still negligible compared to the time of the actual
sector erase operation inside the flash chip.  In contrast, the execution time
of a flash program-bin operation is a sum of 3 components:

* The time it takes for the bits to be transferred over the serial link;
* The time it takes for the flash programming operation to complete on the
  target (physics inside the flash chip);
* The overhead of command-response exchanges between fc-loadtool and loadagent.

[To be continued]