Forum: Mikrocontroller und Digitale Elektronik AT91SAM9261-EK RomBoot findet Bootloader auf Dataflash nicht mehr


von Matthias M. (r2d2matze)


Lesenswert?

Ich arbeite momentan an einem Atmel AT91SAM9261-EK Board. Mein Problem 
ist, dass der RomBoot meinen Bootloader auf dem Dataflash nicht mehr zu 
finden scheint. Ich habe das Dataflash nach Atmels Anleitung zur 
Linux-Demo beschrieben. Ebenso nach Atmels Windows Demo. Auch die 
Linux4SAM Angstrom Linux Anleitungen habe ich benutzt, um das Dataflash 
mit Bootstrap, U-Boot und Linux zu beschreiben.
Trotz all der verschiedenen Versuche scheint der BootRom keinen 
ausführbaren Code auf dem Dataflash zu finden, da ich immer nur die 
BootRom-Zeile in meinem Terminal sehe.

Hat jemand eine Idee? Kann der Dataflash kaputt sein?

Danke für die Hilfe!

von Johann (Gast)


Lesenswert?

Ich habe dieses Board auch mal benutzt. Damals hatte ich das Problem das 
ich nie mein eigenes Programm dauerhaft in eine Flash speichern konnte. 
Das lag damals an einer fehlerhaften µC Version und einem fehlerhaften 
Platinenversion.

Atmel hat den Fehler gefunden und eine neue Revision des AT91SAM9261 
herrausgebracht zudem gab es auch eine neue Revision des Evaluation 
Boards wo einige Fehler behoben wurden. Demnach würde ich erst einmal 
schauen ob beide Revisionen die neusten sind.

von Matthias M. (r2d2matze)


Lesenswert?

Danke für den Tipp. Allerdings war vorher schon eine lange Zeit das 
Angstrom Linux inklusive Bootloader auf den Flash gespielt und 
funktionierte. Erst seitdem ich den Flash mit neuen Inhalten beschrieben 
habe, scheint das Bootstrap auf dem Dataflash nicht mehr gefunden zu 
werden.

von Sebastian (Gast)


Lesenswert?

Ja genau mit den externen Flash gabe es ja auch immer Probleme. Das 
Linux läuft doch auf der externen Karte (SD-Karte) Auch das Windows CE 
lief auf dieser externen SD-Karte. Wenn ich jedoch mein eigenes Programm 
geschrieben habe konnte ich dies nicht auf den internen Flash des 
AT91SAM9261 ablegen und auch nicht auf den externen Flash.

Deshalb hat ATMEL auch eine neue Revision des µC rausgebracht, dadruch 
wurde der Fehler mit dem internen Flash behoben und durch die neue 
Boardrevision kann man nun auch sein Programm in den externen Flash 
speichern.

Ich besitze das Board schon seit über 2 Jahren und habe deshalb diese 
Fehler drauf. Habe seit dieser Zeit auch nicht mehr damit gearbeitet.

Damals habe ich den IAR-Compiler verwendet. Dieser Compiler war sehr 
gut. Es gibt hier ausreichend Beispiele. Ich konnte das Display ohne 
Probleme ansteuern. Auf dem Display konnte ich ein Overlay erzeuegen und 
Text ausgeben. Zudem konnte ich das Bild einer externen Kamera 
darstellen.

von Sebastian (Gast)


Lesenswert?

Ich habe noch mal im Datenblatt unter ERRATA nachgeschaut. Bei der 
Revision A vom AT91SAM9261 geht der interne Flash nicht. Bei der 
Revision B ja.

von Matthias M. (r2d2matze)


Lesenswert?

Ok, wie finde ich die Revisionsnummer auf dem Board raus? Ich hoffe, 
dass das dann das Problem ist.

von Matthias M. (r2d2matze)


Lesenswert?

Hallo nochmal!

Ich war jetzt auch noch mal mit Atmel in Kontakt. Es ist der 
NAND-Speicher, der bei Revision A defekt ist. Der Dataflash, den ich 
auch benutze, ist funktionstüchtig.
Der Bootstrap wird also einfach nicht ausgeführt aus irgendeinem Grund. 
Ich habe mal den auf den Dataflash kopierten Bootstrap wieder eingelesen 
und mit dem Original verglichen. Dort gibt es an bestimmten 
Byte-Positionen im Hex-Editor Unterschiede. Auch bereits an den ersten 
Byte-Stellen. Ist das normal? Kann das der Fehler sein?

von Imon (Gast)


Lesenswert?

Matthias M. schrieb:
> Der Bootstrap wird also einfach nicht ausgeführt aus irgendeinem Grund.
> Ich habe mal den auf den Dataflash kopierten Bootstrap wieder eingelesen
> und mit dem Original verglichen. Dort gibt es an bestimmten
> Byte-Positionen im Hex-Editor Unterschiede. Auch bereits an den ersten
> Byte-Stellen. Ist das normal? Kann das der Fehler sein?

Das Kann in der Tat der Fehler sein, baust du dein Bootstrap selber oder 
nutz du ein Vorkompilerten.

Wie auch immer soweit ich das in Erinnerung habe muss die Ersten 28 Byte 
mit bestimmten Wetrten gefüllt sein, ganz wichtig eines der Werte ist 
die größe deines Bootstrap, wenn di falsch ist hast du das Problem das 
der Bootstrap nicht starte, das ging mir bie dien G45 mal so.

Allerdings finde ich die Aussage

> da ich immer nur die BootRom-Zeile in meinem Terminal sehe.

irritierend was meinst du damit, wenn du die Bootrom Zeile Sieht sollte 
der Bootstrap laufen. Laut Datenblatt läuft wenn nichts gefunden wird 
der SAM-BA und der ist soweit ich weiss Stumm und gibt nichts auf der 
Seriellen aus bis man ihn dazu Auffordert.

Kann es also sein das dein Bootstrap läuft und das der Bootstrap einfach 
nur seinen Datenflasch nicht erkennt obwohl er davon gestartet ist?

von Matthias M. (r2d2matze)


Lesenswert?

Den Bootstrap habe ich vorkompiliert von der Atmel-Seite als auch von 
at91.com/Linux4SAM. Da gehe ich mal davon aus, dass dieser richtig 
konfiguriert ist, inklusive richtiger angegebener Größe im Byte-Code 
etc.

Mit der RomBoot-Zeile meine ich, was ich über die DBGU in meinem 
Terminal am PC sehe. Wenn der erste Bootloader auf dem ROM ausführbaren 
Code auf dem Dataflash fände, also den Bootstrap, sollte hier nämlich 
nichts außer von dem ausgeführten Programm stehen. Da allerdings RomBoot 
zu sehen ist, bedeutet dies, dass er keinen ausführbaren Code, und somit 
den Bootstrap, auf dem Dataflash findet, sondern auf den Zugriff über 
SAM-BA wartet.

Ich frage mich daher, ob der Dataflash kaputt sein könnte...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.