Forum: Mikrocontroller und Digitale Elektronik embedded Linux startet nicht mit bad-blocks (NAND)


von kostelectronics (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich sitze hier und zerberech mir den Kopf ab einem fremd-entwickelten 
Linux-Board (AT91 basiert). Leider ist der Entwickler dieses Boards 
nicht mehr in der Firma und wir haben somit null Unterstützung.

HW-Konfiguration:

1X AT45 Dataflash: U-Boot
1x AT45 Dataflash: Linux-Kernel (2.6.19)
1x 64MB NAND: RootFS

Das Board startet nicht (Kernel hängt) sobald das NAND fehlerhafte 
blöcke hat im verwendeten Bereich. (das NAND ist zur Hälfte gefüllt).

Die Flash's werden mit einem JTAG-Tool programmiert. In U-Boot ist das 
NAND so wie es aussieht eh falsch konfiguriert, habe auch keinen 
Zugriff!

Im Anhang habe ich 2 Bootlogs gepostet. Hat jemand eine Idee was da 
falsch läuft?

Herzlichen Dank an alle!

Gruss Matthias

von kostelectronics (Gast)


Lesenswert?

Ergänzung: Das NAND wird bei der Programmierung mit dem JTAG-Tool auf 
fehlerhafte Blöcke gescannt!

von kostelectronics (Gast)


Lesenswert?

Keiner eine Idee?

von PittyJ (Gast)


Lesenswert?

So etwas hatte ich auch mal: JFFS auf Flash.
Mein Problem war, dass beim Schreiben des JFFS nur der wirklich benutzte 
Teil geschrieben wurde, der Rest blieb unberührt. Das führte zu 
Filesystem-Fehlern.
Lösung: vor dem Schreiben der Filesystempartititon diese mit einem Tool 
komplett löschen. Ich habe flash_eraseall benutzt.

War zwar ein total anderer Prozessor und ein brandneuer Kernel. Aber die 
Symptome sahen genau so aus.

von Lattice User (Gast)


Lesenswert?

Welcher NAND?
Reicht dem NAND standard ECC (1 bit/Block) oder braucht es mehr (BCH)?

UBIFS statt JFFS2 verwenden.

von kostelectronics (Gast)


Lesenswert?

Es ist ein Standard Hynix-Flash (H27U518S2CTR-BC). Sobald dieses defekte 
Blöcke im verwendeten Bereich hat ist Schluss!

So wie ich anhand des Logs sehen kann, wurde ECC deaktiviert? Wäre das 
ein möglicher Grund?

Danke und Gruss
Matthias

von kostelectronics (Gast)


Lesenswert?

Ist es möglich dass der Kernel seine Daten an einer bestimmten Adresse 
im NAND sucht und diese nicht findet da sie um den Betrag der defekten 
Blöcke verschoben ist? ....nur eine weit hergeholte Theorie von mir!

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.