[U-Boot] [PATCH] mtd: nand: denali: Replace the ad-hoc cache management with bouncebuf

Marek Vasut marex at denx.de
Wed Jun 20 04:43:33 UTC 2018


On 06/19/2018 08:39 AM, Masahiro Yamada wrote:
> Hi Marek,

Hi,

> 2018-06-08 5:17 GMT+09:00 Marek Vasut <marex at denx.de>:
>> Replace the ad-hoc DMA cache management functions with common bouncebuf,
>> since those functions are not handling cases where unaligned buffer is
>> passed in,
> 
> 
> Were you hit by a problem,
> or just-in-case replacement?

Yes, UBI triggers unaligned cache operations on my system (SoCFPGA).
> I thought I took care of the buffer alignment.
> 
> The bounce buffer is allocated by kmalloc():
> https://github.com/u-boot/u-boot/blob/v2018.05/drivers/mtd/nand/denali.c#L1348
> 
> According to the lib/linux_compat.c implementation,
> it returns memory aligned with ARCH_DMA_MINALIGN.
> 
> 
> If the buffer is passed from the upper MTD layer,
> the NAND core also makes sure the enough alignment:
> https://github.com/u-boot/u-boot/blob/v2018.05/drivers/mtd/nand/denali.c#L1273
> 
> This is how this driver works in Linux.
> 
> I'd rather want to keep the current code
> unless this is a real problem,
> 
> 
> One possible clean-up is to move dma_(un)map_single to a common place.
Is there any chance you can try UBI on the denali nand on uniphier ? :)

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list