From: comp.arch.embedded on
Did anyone encounter something like the following:

I have a system with linux accessing jffs2 nand via a busy local bus.
I run into one of the three: random file corruption, magic bit mask
1985 not found, or kernel traps ( BUG_ON(!PageUptodate(pg)) ): ie
deadlocks with page_cache_read in the garbage collector.

What's keeping the local bus busy is burst mode DMA to a FIFO device.
The processor is a powerpc 83XX with a local bus controller
supporting : and enbedded NAND flash controller, generic single cycle
bus access and UPM ( programmable timing ) to support my burst mode
dma.

My apologies, I seem these days to be asking questions and not helping
to answer them.

TTB

From: Vladimir Vassilevsky on


comp.arch.embedded wrote:
> Did anyone encounter something like the following:
>
> I have a system with linux accessing jffs2 nand via a busy local bus.
> I run into one of the three: random file corruption, magic bit mask
> 1985 not found, or kernel traps ( BUG_ON(!PageUptodate(pg)) ): ie
> deadlocks with page_cache_read in the garbage collector.
>
> What's keeping the local bus busy is burst mode DMA to a FIFO device.
> The processor is a powerpc 83XX with a local bus controller
> supporting : and enbedded NAND flash controller, generic single cycle
> bus access and UPM ( programmable timing ) to support my burst mode
> dma.
>
> My apologies, I seem these days to be asking questions and not helping
> to answer them.

Disclaimer: I am not familiar with PPC and linux, however I've ran into
similar problems with different systems.

Looks like NAND flash driver times out due to the bus congestion. The
simplest would be increase the timeout period for operations. Also, you
can probably adjust the DMA and CPU core priorities for the bus.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com