Forum: Mikrocontroller und Digitale Elektronik Freescale i.mx25 nand flash locked


von Joerg V. (joe535)


Lesenswert?

Hallo zusammen,

ich werde hier noch verrückt...

Habe einen iMx25 von Freescale und ein NAND von Micron, 
MT29F8G08ADADAH4..

Ich möchte nun flashblöcke löschen und dazu (meine ich) unlocke ich 
zunächst alle blocks. Ich mache es so, wie auch der u-boot in seiner 
"board_nand_init" Funktion. Config1 Register initialisieren mit 0xd1b, 
SPAS mit 0x40. Nun folgt der unlock auf CS0: unlockStart = 0, unlockEnd 
= 0xffff, rambuffer_addr = 0...

WPROT = 1<<2

Direkt danach steht im wprotstatus-reg: 0x496...

d.h. es gibt sowohl locked als auch unlocked blocks im CS0-bereich... 
Sehr schön, wozu habe ich dann aber gerade alle "un-locked" ??

Wenn ich nun ein block erase mache (z.B. Block 0), dann gibt es beim 2. 
Command des erase (0x60, 3x addr-cycle, 0xD0) also beim senden von 0xD0, 
einen data-abort... Genaugenommen geschieht das beim Setzen des 
FCMD-bits von Config-reg2...

Hatte schon jemand mal dieses Problem gelöst? Anders macht es uboot 
eigentlich auch nicht...

Danke & Gruss
Joe

von Joerg V. (joe535)


Lesenswert?

Hallo zusammen,

habe es nun gefunden, hat mich 2 Tage teure Arbeit gekostet - Freescale 
sollte man dafür eigentlich in den A. treten...

In der NFC Registerbeschreibung fehlt ein RESERVED... Direkt nach 
CONFIG2 kommt in der Tabelle der unlock_start_0...

Dank eines Zufalls habe ich eine Änderungshistorie in einem GIT 
gefunden, wo ich mal die Strukturen verglichen habe. Dort sind 3 Stellen 
mit RESERVED, bei mir nur 2...

Zwischen den genannten Registern ist einmal 16-bit unbenutzt !!! Die 
Adress-offsets in der Tabelle stimmen zwar, aber da schaut man nicht 
unbedingt hin, wenn man seine Struktur anlegt.

Danke an Freescale (...) Das wird bei der nächsten Projektentscheidung 
sicher bei meiner Prozessorauswahl berücksichtigt.

Gruss
Joe

von Konrad (Gast)


Lesenswert?

Wo fehlen bei Ihnen die reservierten 2 Byte? Bei mir ist zwischen dem 
CONFIG2 und dem UNLOCK_START_0 gar nichts reserviert...

Vielleicht können Sie auch den git commit verlinken?

von Konrad (Gast)


Lesenswert?

Ah, jetzt sehe ich es im U-Boot auch. :D Also einfach zwischen
CONFIG2 und UNLOCK_START_0 ein uint16_t einschieben.


Ich danke Ihnen sehr! Ich wäre da sicherlich nie drauf gekommen... (Aber 
ich habe, dank Ihnen, auch nur eine Stunde an dem grübeln Problem 
müssen.)

von Joerg V. (joe535)


Lesenswert?

Hallo,

ja kein Problem, dafür gibt es ja das Forum hier :-)

Gruss
Joe

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.