[U-Boot] u-boot fails to read from nand flash in omap3

Hi everyone, I've recently been playing with an omap3 beagle board and I've found a problem that I think involves the reading of nand memory... I have recompiled u-boot for the beagle board (I just changed its prompt, as a simple test to check that it's my u-boot and not the one that was there before, and I used the default configs for the beagle), then I have loaded u-boot and the x-loader into flash, and I have succesfully rebooted and seen 'my' u-boot prompt... after that, I wanted to load a linux kernel and a file system into nand flash, instead of using the external memory card (if I boot a kernel stored there, it works), so I go and load an uImage into flash, then read it back to RAM, and boot from there, and it still works, BUT, as soon as I reset the OMAP, when it tries to copy the kernel data stored in flash into RAM to boot from it, the nand reading operation will fail, and if I try to boot that kernel it will complain about a CRC checksum error... the exact error looks like this: # nand read ${loadaddr} 280000 400000
NAND read: device 0 offset 0x280000, size 0x400000 NAND read from offset 280000 failed -74
note that this just happens after I reset the board... I thought it could be a hardware problem with my board, but I've tried in a different board (an omap3 evm) and I'm getting the same thing, so I think I might be missing something... has anyone of you tried something like this or has encountered any similar problem? any help will be greatly appreciated, if you need any extra info about what I have done just tell me... thanks a lot in advance, regards
Fernando

On 19/01/10 08:21, fgd wrote:
Hi everyone, I've recently been playing with an omap3 beagle board and I've found a problem that I think involves the reading of nand memory... I have recompiled u-boot for the beagle board (I just changed its prompt, as a simple test to check that it's my u-boot and not the one that was there before, and I used the default configs for the beagle), then I have loaded u-boot and the x-loader into flash, and I have succesfully rebooted and seen 'my' u-boot prompt... after that, I wanted to load a linux kernel and a file system into nand flash, instead of using the external memory card (if I boot a kernel stored there, it works), so I go and load an uImage into flash, then read it back to RAM, and boot from there, and it still works, BUT, as soon as I reset the
Maybe you do this after running Linux and Linux has configured the SoC to access the NAND? Can you use u-boot to write to NAND after a reset, but before Linux boots?
OMAP, when it tries to copy the kernel data stored in flash into RAM to boot from it, the nand reading operation will fail, and if I try to boot that kernel it will complain about a CRC checksum error...
After a reset, I guess your UBL (and u-boot) is not enabling NAND accesses? I added some code to the Davinci nand driver to fix a similar issue on that arch.
the exact error looks like this: # nand read ${loadaddr} 280000 400000
u-boot's nboot command can read the uImage header and copy from NAND only the required amount of data. It only copies to RAM, so you still need to bootm...
NAND read: device 0 offset 0x280000, size 0x400000 NAND read from offset 280000 failed -74
note that this just happens after I reset the board... I thought it could be a hardware problem with my board, but I've tried in a different board (an omap3 evm) and I'm getting the same thing, so I think I might be missing something... has anyone of you tried something like this or has encountered any similar problem? any help will be greatly appreciated, if you need any extra info about what I have done just tell me... thanks a lot in advance, regards
Fernando
Nick

-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot- bounces@lists.denx.de] On Behalf Of fgd Sent: Tuesday, January 19, 2010 1:52 PM To: u-boot@lists.denx.de Subject: [U-Boot] u-boot fails to read from nand flash in omap3
Hi everyone, I've recently been playing with an omap3 beagle board and I've found a problem that I think involves the reading of nand memory... I have recompiled u-boot for the beagle board (I just changed its prompt, as a simple test to check that it's my u-boot and not the one that was there
[Hiremath, Vaibhav] U-Boot version may be useful here.
before, and I used the default configs for the beagle), then I have loaded u-boot and the x-loader into flash, and I have succesfully rebooted and seen 'my' u-boot prompt... after that, I wanted to load a linux kernel and a file system into nand flash, instead of using the external memory card (if I boot a kernel stored there, it works), so I go and load an uImage into flash, then read it back to RAM, and boot from there, and it still works, BUT, as soon as I reset the OMAP, when it tries to copy the kernel data stored in flash into RAM to boot from it, the nand reading operation will fail, and if I try to boot that kernel it will complain about a CRC checksum error... the exact error looks like this: # nand read ${loadaddr} 280000 400000
NAND read: device 0 offset 0x280000, size 0x400000 NAND read from offset 280000 failed -74
[Hiremath, Vaibhav] Can you please provide exact steps which you are following for NAND write and read operation?
note that this just happens after I reset the board... I thought it could be a hardware problem with my board, but I've tried in a different board (an omap3 evm) and I'm getting the same thing, so I think I might be missing
[Hiremath, Vaibhav] I am working on OMAP3EVM and it is working fine for me. It looks like somehow NAND is getting corrupted, detailed steps required to comment anything on this.
Thanks, Vaibhav
something... has anyone of you tried something like this or has encountered any similar problem? any help will be greatly appreciated, if you need any extra info about what I have done just tell me... thanks a lot in advance, regards
Fernando
View this message in context: http://old.nabble.com/u-boot-fails-to- read-from-nand-flash-in-omap3-tp27222315p27222315.html Sent from the Uboot - Users mailing list archive at Nabble.com.
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

Thanks for your quick replies, I could finally solve it yesterday, the problem was that I was writing the nand with nandecc set to HW, so if I read it just after writing it would work, but as soon as I reseted it, it would go back to ecc SW and stop working... I was just forgetting to add a "nandecc hw" before reading the nand... thanks for the ideas, :) best regards
participants (3)
-
fgd
-
Hiremath, Vaibhav
-
Nick Thompson