mtd: rawnand: stm32_fmc2: add STM32 FMC2 NAND flash controller driver
The driver adds the support for the STMicroelectronics FMC2 NAND Controller found on STM32MP SOCs. This patch adds the polling mode, a basic mode that do not need any DMA channels. Only NAND_ECC_HW mode is actually supported. The driver supports a maximum 8k page size. The following ECC strength and step size are currently supported: - nand-ecc-strength = <8>, nand-ecc-step-size = <512> (BCH8) - nand-ecc-strength = <4>, nand-ecc-step-size = <512> (BCH4) - nand-ecc-strength = <1>, nand-ecc-step-size = <512> (Extended ECC based on Hamming) This patch has been tested on Micron MT29F8G08ABACAH4. Signed-off-by: Christophe Kerello <christophe.kerello@st.com>
This commit is contained in:
parent
6899385f41
commit
7bb75023a7
@ -256,6 +256,17 @@ config NAND_ZYNQ_USE_BOOTLOADER1_TIMINGS
|
|||||||
This flag prevent U-boot reconfigure NAND flash controller and reuse
|
This flag prevent U-boot reconfigure NAND flash controller and reuse
|
||||||
the NAND timing from 1st stage bootloader.
|
the NAND timing from 1st stage bootloader.
|
||||||
|
|
||||||
|
config NAND_STM32_FMC2
|
||||||
|
bool "Support for NAND controller on STM32MP SoCs"
|
||||||
|
depends on ARCH_STM32MP
|
||||||
|
select SYS_NAND_SELF_INIT
|
||||||
|
imply CMD_NAND
|
||||||
|
help
|
||||||
|
Enables support for NAND Flash chips on SoCs containing the FMC2
|
||||||
|
NAND controller. This controller is found on STM32MP SoCs.
|
||||||
|
The controller supports a maximum 8k page size and supports
|
||||||
|
a maximum 8-bit correction error per sector of 512 bytes.
|
||||||
|
|
||||||
comment "Generic NAND options"
|
comment "Generic NAND options"
|
||||||
|
|
||||||
config SYS_NAND_BLOCK_SIZE
|
config SYS_NAND_BLOCK_SIZE
|
||||||
|
@ -65,6 +65,7 @@ obj-$(CONFIG_NAND_OMAP_ELM) += omap_elm.o
|
|||||||
obj-$(CONFIG_NAND_PLAT) += nand_plat.o
|
obj-$(CONFIG_NAND_PLAT) += nand_plat.o
|
||||||
obj-$(CONFIG_NAND_SUNXI) += sunxi_nand.o
|
obj-$(CONFIG_NAND_SUNXI) += sunxi_nand.o
|
||||||
obj-$(CONFIG_NAND_ZYNQ) += zynq_nand.o
|
obj-$(CONFIG_NAND_ZYNQ) += zynq_nand.o
|
||||||
|
obj-$(CONFIG_NAND_STM32_FMC2) += stm32_fmc2_nand.o
|
||||||
|
|
||||||
else # minimal SPL drivers
|
else # minimal SPL drivers
|
||||||
|
|
||||||
|
1092
drivers/mtd/nand/raw/stm32_fmc2_nand.c
Normal file
1092
drivers/mtd/nand/raw/stm32_fmc2_nand.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user