#1905 NORM Untriag: flash corruption
Zarro Boogs per Child
bugtracker at laptop.org
Wed Jul 4 00:04:39 EDT 2007
#1905: flash corruption
----------------------+-----------------------------------------------------
Reporter: dwmw2 | Owner: mlj
Type: defect | Status: new
Priority: normal | Milestone: Untriaged
Component: hardware | Version:
Keywords: | Verified: 0
----------------------+-----------------------------------------------------
A B2 machine was handed to me which failed to boot from NAND, with
OpenFirmware complaining of 'unknown node type 2006'.
This is a somewhat bogus diagnostic message from OpenFirmware. It _does_
understand the node type 0x2006, which is a summary node. It's just that
these ones have bad CRCs.
There seems to have been corruption on the write path, between CPU, RAM
and CAFÉ. An example...
{{{
01fdb310 30 17 eb 15 21 00 00 3b 85 19 01 e0 36 00 00 00
|0...!..;....6...|
01fdb320 a4 e1 55 df 60 05 00 80 3d 06 00 00 3f 06 00 00
|..U.`...=...?...|
01fdb330 a1 a5 0a 46 0e 08 00 00 06 7e be ae 18 18 99 b3
|...F.....~......|
01fdb340 70 69 6e 6b 5f 72 6f 75 6e 64 2e 67 69 66 ff ff
|pink_round.gif..|
}}}
This provokes the following report from the kernel:
JFFS2 notice: (2554) read_direntry: header CRC failed on dirent node at
0x1fdb318: read 0xaebe7e06, calculated 0x1432b5ee
The parent inode value of 0x8000560 looks very suspicious. Flipping the
msb of the byte at 01fdb327 back to a more reasonable 0x00 makes the crc32
match what's on the flash.
There are no ECC errors reported -- what's on the flash seems to be what
reached the CAFÉ in the DMA transfer when this block was being written. So
this doesn't seem to be an error between CAFÉ and NAND. And the crc32
seems sane too, so it doesn't seem likely that it's memory corruption or
program error. I suspect hardware.
I'll look at other nodes (there are many broken ones) and see if there's a
pattern to the corruption.
--
Ticket URL: <http://dev.laptop.org/ticket/1905>
One Laptop Per Child <http://laptop.org/>
More information about the Bugs
mailing list