Hardware:CST:Anleitungen:U-Boot Flash
Inhaltsverzeichnis
U-Boot Syntax
Oder wie mache ich mich dem U-Boot verständlich.
Hier gibt es eine komplette Dokumentation: U-Boot Command Line Interface (English)
Speicheradressen
Device | Größe (hex) | Löschgröße (hex) | Name | Start - Endadresse (hex) | absolute Größe |
---|---|---|---|---|---|
mtd0 | 0x80000 | 0x20000 | "U-Boot" | 0xF0000000 - 0xF007FFFF | 512 KByte |
mtd1 | 0x400000 | 0x20000 | "kernel" | 0xF0080000 - 0xF047FFFF | 4096 KByte |
mtd2 | 0x1b80000 | 0x20000 | "systemFS" | 0xF0480000 - 0xF1FFFFFF | 28160 KByte |
Device | Größe (hex) | Löschgröße (hex) | Name | Start - Endadresse (hex) | absolute Größe |
---|---|---|---|---|---|
mtd0 | 0x60000 | 0x20000 | "U-Boot" | 0xF0000000 - 0xF005FFFF | 384 KByte |
mtd1 | 0x20000 | 0x20000 | "Splash" | 0xF0060000 - 0xF007FFFF | 128 KByte |
mtd2 | 0x400000 | 0x20000 | "kernel" | 0xF0080000 - 0xF047FFFF | 4096 KByte |
mtd3 | 0x1b80000 | 0x20000 | "systemFS" | 0xF0480000 - 0xF1FFFFFF | 28160 KByte |
Berechnen der Länge (count)
Dieser Wert wird im Folgenden dringend benötigt, daher hier mal ein Beispiel wie man den Wert berechnet.
Nach Eingabe von 'usb start' kann man mit 'fatload usb 0 0 kernel.img' das Image laden, als Antwort erhält man dann z.B. '4133333 bytes read'.
Der Name muss natürlich nicht zwingend kernel.img lauten, jeder andere Dateiname ist ebenso möglich. Wichtig ist ja nur das Ergebnis.
Die 4133333 bytes werden durch 4 geteilt und das Ergebnis aufgerundet:
4133333 / 4 = 1033333,25 => 1033334
1033334 in HEX wandeln = FC476 => 0xFC476
Dieser Wert wird dann beim 'copy' benötigt.
Wichtige Befehle richtig benutzt
USB Geräte einbinden:
usb start
Hiermit wird das USB Subsystem im U-Boot gestartet, ein Zugriff auf USB Geräte am USB Port ist dadurch erst möglich. Sofern der USB Stick z.B. vom U-Boot erkennt und unterstützt wird kann auf die Dateien auf diesem zugegriffen werden.
Image/Datei von USB in den Speicher laden
fatload usb 0 0 kernel.img
Dadurch kopiert man die Datei von USB in den RAM, als Antwort erhält man die Anzahl der gelesenen Bytes. Der Wert ist im weiteren Verlauf noch sehr wichtig!
den Flash löschen:
erase [start] [end]
Beispiel: erase 0xf0080000 0xf047ffff
#um dem Flashbereich löschen in dem der Kernel liegt
Image kopieren:
cp [.b, .w, .l] source target count
Beispiel: cp 0 0xf0080000 0xfc476
#kopiert von Adresse 0
an in die Adresse 0xf0080000
und das mit einer Länge von 0xfc476
Wobei 0xfc476
die Größe (count) des Images ist.