[resend v3 00/19] Add Cadence NAND Driver support
dinesh.maniyam at intel.com
dinesh.maniyam at intel.com
Wed Feb 26 17:18:14 CET 2025
From: Dinesh Maniyam <dinesh.maniyam at intel.com>
This patchset add Cadence NAND driver support for
Intel Agilex5 devices.
The NAND driver is leveraged from the cadence-nand-controller.c
from Linux version 6.11.2. U-Boot will support read, write and erase
NAND with Cadence driver. The driver further enhanced in U-Boot
to support NAND booting from FSBL and support boot to kernel
via UBIFS.
Patch status:
Have changes: All patches expect Patch 19
Detail changelog can find in commit message.
v1->v2:
--------
Patch 1 - 18:
- remove the "this patch is to" commit phrases
Patch 4;
- minor refactoring of code to match the stable version 6.11.2.
Patch 14:
- Add maintainer and "#include" mechanism for new variant
Patch 16:
- leverage the existing nand_spl_load_image
v2->v3:
--------
Patch: arm: dts: agilex5: Enabled cdns-nand dts setting
- Move &nand from uboot.dtsi to socdk.dts
Patch: include: asm: Add support to read/write 64-bit
- Dropped because redefinition of readsq & writesq
Patch: drivers: mtd: nand: Add driver for Cadence Nand
- Remove redundant clk_free func
Patch: drivers: mtd: nand: Enabled Kconfig and Makefile for SPL_NAND_FRAMEWORK
- New
Patch: drivers: mtd: nand: Kconfig: Add SYS_NAND_PAGE_SIZE dependency
- New
Patch: configs: nand2_defconfig: Enable configs for nand boot
- Remove CONFIG_OF_UPSTREAM in order to get correct dts for compilation
Patch: drivers: mtd: nand: base: Add support for Hardware ECC for check bad block
- Remove copyright
Patch: drivers: mtd: nand: Kconfig: Remove SYS_NAND_BLOCK_SIZE dependency
- Dropped because SPL NAND have dependency with SYS_NAND_BLOCK_SIZE
History:
--------
[v1]: https://patchwork.ozlabs.org/project/uboot/cover/20240919035512.13854-1-dinesh.maniyam@intel.com/
[v2]: https://patchwork.ozlabs.org/project/uboot/cover/20241205092315.25060-1-dinesh.maniyam@intel.com/
Dinesh Maniyam (19):
dt: nand: add cadence nand dt-bindings
arm: dts: agilex5: Enabled cdns-nand dts setting
drivers: mtd: nand: Add driver for Cadence Nand
drivers: mtd: nand: cadence: Add support for read status command
drivers: mtd: nand: cadence: Add support for readid command
drivers: mtd: nand: cadence: Add support for NAND_CMD_PARAM
drivers: mtd: nand: cadence: Add support for NAND_CMD_RESET
drivers: mtd: nand: cadence: Support cmd SET_FEATURES & GET_FEATURES
drivers: mtd: nand: cadence: Flush & invalidate dma descriptor
drivers: mtd: nand: cadence: Poll for desc complete status
drivers: mtd: nand: cadence: Use bounce buffer
drivers: nand: Enabled Kconfig and Makefile for cdns-nand
configs: nand2_defconfig: Enable configs for nand boot
drivers: mtd: nand: base: Add support for Hardware ECC for check bad
block
drivers: mtd: nand: spl: Add support for nand SPL load image
drivers: mtd: nand: Enabled Kconfig and Makefile for Cadence-SPL
drivers: mtd: nand: Enabled Kconfig and Makefile for
SPL_NAND_FRAMEWORK
drivers: mtd: nand: Kconfig: Add SYS_NAND_PAGE_SIZE dependency
drivers: mtd: nand: Kconfig: Enabled self-init for cdns-nand SPL
arch/arm/dts/socfpga_agilex5.dtsi | 14 +
.../arm/dts/socfpga_agilex5_socdk-u-boot.dtsi | 9 +-
arch/arm/dts/socfpga_agilex5_socdk.dts | 19 +
board/intel/agilex5-socdk/MAINTAINERS | 2 +
configs/socfpga_agilex5_nand2_defconfig | 32 +
.../mtd/cadence,nand.yaml | 98 +
drivers/mtd/nand/raw/Kconfig | 26 +-
drivers/mtd/nand/raw/Makefile | 12 +
drivers/mtd/nand/raw/cadence_nand.c | 2423 +++++++++++++++++
drivers/mtd/nand/raw/cadence_spl.c | 59 +
drivers/mtd/nand/raw/nand_base.c | 69 +-
include/cadence-nand.h | 529 ++++
include/linux/mtd/rawnand.h | 12 +
13 files changed, 3278 insertions(+), 26 deletions(-)
create mode 100644 configs/socfpga_agilex5_nand2_defconfig
create mode 100644 doc/device-tree-bindings/mtd/cadence,nand.yaml
create mode 100644 drivers/mtd/nand/raw/cadence_nand.c
create mode 100644 drivers/mtd/nand/raw/cadence_spl.c
create mode 100644 include/cadence-nand.h
--
2.19.0
More information about the U-Boot
mailing list