I have a SEGV when trying to use nand check_bad_blocks on a DaVinci DM355 ,
OpenOCD version cc5f3c85de7632a32f41b435c54b83487a3aa622 and 4-bit infix ECC
layout.
This is because nand_build_bbt() calls nand_read_page() with NULL, 0 for data
pointer and size, the davinci nand code doesn't like that; gdb:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000451a1a in davinci_read_block_data (
nand=<value optimized out>, data=0x0, data_size=512)
at davinci.c:199
199 data[0] = tmp;
(gdb) bt 4
#0 0x0000000000451a1a in davinci_read_block_data (
nand=<value optimized out>, data=0x0, data_size=512)
at davinci.c:199
#1 0x0000000000451e90 in davinci_read_page_ecc4infix (nand=0x75a2e0,
page=<value optimized out>, data=0x0, data_size=0,
oob=0x7fffffffd090 "", oob_size=<value optimized out>)
at davinci.c:615
#2 0x000000000041a68f in nand_build_bbt (nand=0x75a2e0,
first=<value optimized out>, last=8191) at core.c:237
#3 0x000000000041003a in handle_nand_check_bad_blocks_command (
cmd=0x7fffffffd140) at tcl.c:257
Looking at nand_read_page_raw() for inspiration though, I see that it does this:
if (data)
nand_read_data_page(nand, data, data_size);
if (oob)
nand_read_data_page(nand, oob, oob_size);
Maybe I'm missing something, but doesn't that mean when called from
nand_build_bbt(), the data read will be skipped completely and oob will
actually contain the first data from the page? Shouldn't it do a dummy read
instead?
Seems like at the moment it will be mis-identifying bad blocks based on in-band
rather than OOB data.
Mailed to list earlier for comments, but meanwhile I am going to continue code
spelunking and maybe come up with patches. I need to understand davinci NAND
stuff thoroughly and make sure it's all working with OpenOCD.
--
Jon Povey
[email protected]
Racelogic is a limited company registered in England. Registered number 2743719
.
Registered Office Unit 10, Swan Business Centre, Osier Way, Buckingham, Bucks,
MK18 1TB .
The information contained in this electronic mail transmission is intended by
Racelogic Ltd for the use of the named individual or entity to which it is
directed and may contain information that is confidential or privileged. If you
have received this electronic mail transmission in error, please delete it from
your system without copying or forwarding it, and notify the sender of the
error by reply email so that the sender's address records can be corrected. The
views expressed by the sender of this communication do not necessarily
represent those of Racelogic Ltd. Please note that Racelogic reserves the right
to monitor e-mail communications passing through its network
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development