[PATCH v2 0/5] mtd: rawnand: sunxi: Fix user data length for H6

Richard Genoud richard.genoud at bootlin.com
Fri Mar 27 15:05:03 CET 2026


This series introduces the correct usage of user data length for
H6/H616.
If the older SoCs must use a fixed value of 4 user data bytes for each
ECC step, the H6 can have a different value for each step.

In the first round, the behavior was kept as the one used by A10.
But we have multiple choices:
- do like A10 like before (and not use all OOB)
- do like the vendor kernel (different from A10, but not using all OOB)
- use the whole OOB for user data bytes

In this second round, the third approach is implemented.

All patches but the 4th are code cleaning.
The 4th patch enables using a variable user data length for H6/H616
along with maximizing it.

A similar series has been accepted for Linux:
https://lore.kernel.org/lkml/20260317142437.580204-1-richard.genoud@bootlin.com/

Changes from v1:
- gather reviewed-by
- clean sunxi_nand_chip_init()
- use all possible remaining OOB space for user data bytes

Richard Genoud (5):
  mtd: rawnand: sunxi: Replace hard coded value by a define
  mtd: rawnand: sunxi: make the code mode self-explanatory
  mtd: rawnand: sunxi: clean sunxi_nand_chip_init()
  mtd: rawnand: sunxi: introduce variable user data length
  mtd: nand: raw: sunxi_spl: remove user data length reset

 drivers/mtd/nand/raw/sunxi_nand.c     | 292 +++++++++++++++++++-------
 drivers/mtd/nand/raw/sunxi_nand.h     |   3 +
 drivers/mtd/nand/raw/sunxi_nand_spl.c | 129 +++++++++---
 3 files changed, 324 insertions(+), 100 deletions(-)


base-commit: ba7bf918dafcd093ad733b07ba490baeb20cf5da


More information about the U-Boot mailing list