atmel_nand, DMA, and "Fall back to CPU I/O"

Brian Norris computersforpeace at gmail.com
Wed May 2 15:32:29 EDT 2012


On Wed, May 2, 2012 at 4:53 AM, Artem Bityutskiy <dedekind1 at gmail.com> wrote:
> On Wed, 2012-04-25 at 15:09 -0700, George Pontis wrote:
>> Working with 3.0.13 kernel and the at91sam9g45, 8b NAND flash with rootfs in
>> NAND
>>
>> At boot, the kernel shows 22 DMA warnings, then another 260 as UBIFS mounts
>> the root FS:
>>
>> atmel_nand atmel_nand: Fall back to CPU I/O
>>
>
> Unfortunately UBI and UBIFS use vmalloced memory for I/O and many people
> yelled but no one cared to fix this. I think we should make UBI/UBIFS to
> use kmalloc()'ed memory instead.

I've noticed this problem before. It sometimes give problems for my
DMA controller, but my driver falls back to PIO if it can't pass a
check for '!is_vmalloc_addr(addr)'. Would this solution work for you,
George?

And how might you recommend we use kmalloc()'ed memory, Artem? We
can't really kmalloc() whole eraseblock-sized chunks. Or is there an
inexpensive way of providing an intermediary kmalloc'ed buffer? I'm
not too familiar at hacking at UBI(FS), but it might be worth a shot
sometime, if you think it's reasonable.

Brian



More information about the linux-mtd mailing list