Wie kann ich U-Boot auf AT91RM9200 testen

Gast #708823
Hallo zusammen,

ich habe nach anfänglichen Schwierigkeiten eine komplette GNU Toolchain 
erstellt. Nun habe ich den U-Boot Bootloader angepasst und kompiliert.
Jetzt ist aber die Frage wie bekomme ich den U-Boot auf mein AT91RM9200 
Borad und kann diesen Testen / Debuggen?

Gruß Mario
Gast
Hallo,

danke schonmal für die Antwort.
Leider finde ich den AT91RM9200 nict in meinem SAM-BA.
Hat vielleicht jemand eine Beispielkonfiguration?

Gruß Mario
Der AT91RM9200 hatte zwar auch schon einen Bootloader im ROM, 
SAMBA-kompatibel war das aber noch nicht, wenn ich mich recht erinnere. 
Im Datasheet (Rev. G) Kapitel 13 steht, dass über den USB Device Port 
das USB DFU (device firmware upgrade) Protokoll und über den Debug Uart 
(DBGU) das X-Modem Protokoll benutzt wird.

Da zu diesem Zeitpunkt nur das interne SRAM zur Verfügung steht wirst du 
einen 2-nd stage Bootloader herunterladen müssen, der dann den 
eigentlichen U-Boot in's SDRAM lädt. Von dort kann sich U-Boot dann 
selbst in's Flash schreiben, alternativ lädt der 1st stage Bootloader 
eine Flash Routine, die dann U-Boot direkt in's Flash bringt.

Gruß,

Dominic
Gast
Hallo,

ich habe nun die Cross Toolchain mit OpenOCD und Insight fertig.
Der U-Boot Bootloader ist auch schon übersetzt. Nun möchte ich
den U-Boot per OpenOCD in das SDRAM des AT91RM9200 Target laden
und dort Debuggen / ausführen. Geht das mit OpenOCD? Irgendwie muss
ich nun noch mein Controller Configurieren, PLL, ChipSelect,
SDRAM an Adresse 0 usw.. Wie kann ich das mit OpenOCD realisieren?

Über eine Antwort wäre ich dankbar.

Gruß Mario
(Firma: DC3AX)
Ich weiß, der Thread ist schon ein Jahr alt, aber ich möchte ihn für 
meine gleichartigen Anfragen recyclen.

Ich habe ein AT91RM9200 basierendes System, auf dem auch schon ein 
uralter uBoot läuft. Ich würde diesen gern aktualisieren und dabei 
einige Anpassungen vornehmen.

Da ich ohne Aufwand weder USB noch DBGU kontaktieren kann und auch JTAG 
(noch) nicht zur Verfügung steht, würde ich gerne den alten uBoot nutzen 
um meinen neuen zu laden ( tftp läuft) und im RAM zu starten. Wenn der 
neue dann zufriedenstellend läuft, kann ich ja den alten nutzen, um den 
neuen zu flashen.

Meine Fragen sind nun, kann ich einen uBoot ohne größere Probleme im RAM 
starten? Da der SourceTree vom uBoot schon recht groß ist, würde ich 
mich über ein paar Hinweise freuen, wenn besondere Einstellungen für 
diese RAM-Start Aktion erforderlich sind.

Weiß zudem jemand, ob die neueren uBoot Versionen die Ablage von IPs und 
NetMask in einem EEPROM unterstützen? Ich spiele gerade mit uBoot 1.2.0, 
würde aber auch gleich auf 1.3.x wechseln, wenn das mehr Komfort bringt.

Gruß, Ulrich
(Firma: DC3AX)
Ok, habe einige Sachen inzwischen schon kapiert:
Der im AT91RM9200 befindliche Loader, den ich inzwischen über DBGU 
ansprechen kann, lädt einen 2nd Stage Bootloader hoch, der ein gepacktes 
Images eines uBoot ins RAM entpackt und dann dort ausführt.

Aber ich habe wohl vergessen, dass mein Board bereits einen alten, aber 
funktionierenden uBoot hat. Also kann ich per tftp [addr] [file] meinen 
neuen uBoot laden und ausführen. Dumm ist jetzt, dass mir das nicht so 
richtig gelingen will. Da die Doku und die Dateien sich wegen der 
möglichen Load-Address streiten, weiß ich jetzt nicht wirklich, wohin 
ich das Image laden soll um es dann mit go [addr] auszuführen. An die 
Adresse des existierenden uBoot im RAM kann ich den neuen ja nicht 
laden, das crasht. Wie aber kann ich die Zieladresse im neuen uBoot so 
ändern, dass ich ihn direkt aus dem RAM starten und testen kann?

Geht der uBoot überhaupt mit gcc 4.1.2 oder ist eine andere Kombination 
besser? Also älterer gcc oder neuerer uBoot? Es gab immer wieder 
Hinweise, dass uBoot sich nicht mit gcc 4.0.x verträgt, aber alle aus 
Zeiten, als uBoot noch 1.1.5 war. Ich würde es bevorzugen, wenn meine 
ganze Toolchain auf einem Level wäre...

Danke schon mal,

Ulrich

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.