Big Problem with DOC 128Mbyte Help!

Dave Dillow dave at thedillows.org
Wed Dec 15 17:28:29 EST 2004


On Wed, 2004-12-15 at 09:38, Carlos, John J USAATC wrote:
> I get read errors if I try to list what might be in them
> and a df shows only 1% use, with all files on it it is at 54%.
> 
>   QUESTION:  What/why could this be happening.  Why would the boot loader be
> trashing my DiskOnChip???????????

Two possible reasons:
1) I'm pretty sure the Linux INFTL driver uses the wrong scheme to
calculate the block header parity bits. I'll have to find old code to
check this/remember the fix.
2) If your chipset has errata, such that receiving an interrupt during a
multibyte read on the bus causes the data to discarded and the read
re-issued, then M-System's firmware could be getting bad data and think
that the virtual unit is corrupt.

I tripped over #2 using SiS55x chipsets. M-System's firmware was erasing
blocks if I typed on the keyboard while reading from the DoC, but the
Linux driver wasn't. It turned out that M-System's firmware issued
4-byte reads (ie, memcpy), and the Linux driver did one byte at a time.
Linux was slower, but unaffected by the chip errata. I believe it's been
hit before, hence the move away from memcpy_from/toio() in the driver.
-- 
Dave Dillow <dave at thedillows.org>





More information about the linux-mtd mailing list