[U-Boot] Crash nand init UPMA - NAND flash MPC832x

Our development needs NAND to be implemented from u-boot level. And our booting from FLASH depends of NOR flash using the GPCM.
We are facing in the initialization of the nand_init, a crash in the dummy write during the UPM program based on the UPM mode of freescale MPC8323 in the code below:
void UPMA_prog() { int i=0; // OP set to write to RAM array command *(int *)(MAMR) = 0x10000000; // Write word to RAM arrays for (i=0;i

Dear "nanda",
In message 20091220172434.48360.qmail@f5mail-237-207.rediffmail.com you wrote:
Our development needs NAND to be implemented from u-boot level. And our booting from FLASH depends of NOR flash using the GPCM.
We are facing in the initialization of the nand_init, a crash in the dummy write during the UPM program based on the UPM mode of freescale MPC8323 in the code below:
void UPMA_prog() { int i=0; // OP set to write to RAM array command *(int *)(MAMR) = 0x10000000; // Write word to RAM arrays for (i=0;i
There is no such code in mainline U-Boot. I recommend you look for existing (and working) code examples when porting U-Boot to your hardware. Note that you should use I/O accessor functions instead of plain register writes.
Best regards,
Wolfgang Denk

Hi What are those "I/O accessor functions"? API present in ./drivers/mtd/nand/fsl_upm.c file??? I am also getting crash while doing dummy write to NAND_BASE. Code is follows.... void UPMA_prog() { int i=0; /* OP set to write to RAM array command*/ *(int *)(MAMR) = 0x10000000; /* Write word to RAM arrays*/ for (i=0;i<32;i++) { *(int *)(MDR) = UPMATable[i];
udelay (100); /* *(int *)(MAMR) = 0x10000000; * * *(int *)(MAMR) = 0x10000000+i;*/
/*dummy write*/ *(char *)(CFG_NAND_BASE) = 0xff; } ............. } Rgds Koteswar
wd wrote:
Dear "nanda",
In message 20091220172434.48360.qmail@f5mail-237-207.rediffmail.com you wrote:
Our development needs NAND to be implemented from u-boot level. And our booting from FLASH depends of NOR flash using the GPCM.
We are facing in the initialization of the nand_init, a crash in the dummy write during the UPM program based on the UPM mode of freescale MPC8323 in the code below:
void UPMA_prog() { int i=0; // OP set to write to RAM array command *(int *)(MAMR) = 0x10000000; // Write word to RAM arrays for (i=0;i
There is no such code in mainline U-Boot. I recommend you look for existing (and working) code examples when porting U-Boot to your hardware. Note that you should use I/O accessor functions instead of plain register writes.
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de Digital computers are themselves more complex than most things people build: They have very large numbers of states. This makes conceiving, describing, and testing them hard. Software systems have orders-of- magnitude more states than computers do. - Fred Brooks, Jr. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

Koteswar,
A few things:
First of all, please don't top post.
On Sun, Dec 20, 2009 at 9:55 PM, KoteswarK koti.kelam@gmail.com wrote:
Hi What are those "I/O accessor functions"? API present in
Look in include/asm-ppc/io.h. You'll find lots of wonderful accessor functions. They're always preferable to the alternative.
./drivers/mtd/nand/fsl_upm.c file??? I am also getting crash while doing dummy write to NAND_BASE. Code is follows.... void UPMA_prog() { int i=0; /* OP set to write to RAM array command*/ *(int *)(MAMR) = 0x10000000; /* Write word to RAM arrays*/ for (i=0;i<32;i++) { *(int *)(MDR) = UPMATable[i];
udelay (100); /* *(int *)(MAMR) = 0x10000000; * * *(int *)(MAMR) = 0x10000000+i;*/ /*dummy write*/ *(char *)(CFG_NAND_BASE) = 0xff;
} ............. }
Why don't you use the upmconfig() function that's in cpu/mpc83xx/cpu.c? It doesn't use I/O accessors either, but I give it better odds of working than your code.
Rgds Koteswar
regards, Ben
participants (4)
-
Ben Warren
-
KoteswarK
-
nanda
-
Wolfgang Denk