[PATCH v2] mtd: rawnand: sunxi: add H616 MBUS DMA support
Miquel Raynal
miquel.raynal at bootlin.com
Fri Aug 7 06:55:41 PDT 2026
Hi James,
On 17/07/2026 at 10:41:58 -06, James Hilliard <james.hilliard1 at gmail.com> wrote:
> The H616 NAND controller uses a descriptor-based internal MBUS DMA
> engine instead of the direct address and count registers used by the
> A23/A33 controller. Since the driver does not support these descriptors,
> it currently attempts to request an external rxtx DMA channel and falls
> back to PIO when none is provided.
>
> Add a single-descriptor backend to the existing ECC page DMA paths.
> Allocate the descriptor coherently, constrain data mappings to the
> controller's 32-bit address range, program the H6-style data block mask,
> and request an interrupt for both command and DMA completion. Keep the
> existing external DMA and legacy MBUS DMA paths unchanged, and fall back
> to PIO if the descriptor cannot be allocated.
>
> With identical kernels except for this patch, running
> flash_speed -d -b 1906 -c 100 /dev/mtd6 on an H616 board with 2 KiB-page
> SLC NAND reported:
>
> PIO descriptor DMA
> eraseblock write 3365 KiB/s 4192 KiB/s
> eraseblock read 6454 KiB/s 16040 KiB/s
> page write 3254 KiB/s 4021 KiB/s
> page read 6419 KiB/s 15686 KiB/s
>
> Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
This patch does not apply (linux-mtd repository, nand/next branch). You
need to rebase and send a new iteration.
Thansk,
Miquèl
More information about the linux-arm-kernel
mailing list