Firmware via U-Boot bootloader uitlezen
Standaard bied de U-boot bootloader geen mogelijkheid om de data (firmware) op de flash chip op te slaan, wel kan je er naar toe schrijven e.d.
Maar je kan wel een HEX dump weer laten geven van de flash chip vanaf een specifiek HEX adres, met het commando:
md.b 0x[HEX ADRES] voorbeeld: md.b 0x00100000
geeft deze weergave:
1 2 |
00100000: 2f 83 00 00 40 9e ff 38 38 60 00 00 4b ff ff 3c /...@..88`..K..< 00100010: 83 5e 00 0c 80 9e 00 08 2b 9a 00 ff 82 9e 00 10 .^......+....... |
Reconstructie van de gegevens:
Via PuTTY heb je de mogelijkheid om een LOG op te slaan, dus bij een listing worden deze gegevens opgeslagen op je hardeschijf, je hebt dan alleen nog een programma nodig om de HEX codes in binair om te zetten!
Snelheid over UART:
Ben je met de bootloader verbonden via de UART, dan ben je afhankelijk van de baudrate, deze kan bijvoorbeeld staan op 57600 baud.
Dat is ca. 57600 / 8 bit = 7200 byte/s.
1 volledige regel zoals hierboven is 78 byte, er kunnen dan ca. 7200 / 78 = 92 regels per seconde getoond worden.
Per regel hebben 16 byte an HEX codes, met 92 regels per seconde geeft een “download” snelheid van 16 x 92 = 1472 byte per seconde.
Voor 32 MB aan geheugen (= 32.768 KB = 33554432 Bytes) doe je ongeveer: 33554432 / 1472 = 22795 seconden / 3600 is ca. 6,33 uur
Wellicht kun je met setenv de bootloader snelheid opschroeven naar 115200 baud, dan is het voor 32 MB nog ca. 3,16 uur.