
The FMC2 functional block makes the interface with: synchronous and asynchronous static devices (such as PSNOR, PSRAM or other memory-mapped peripherals) and NAND flash memories. Its main purposes are: - to translate AXI transactions into the appropriate external device protocol - to meet the access time requirements of the external devices All external devices share the addresses, data and control signals with the controller. Each external device is accessed by means of a unique Chip Select. The FMC2 performs only one access at a time to an external device.
Christophe Kerello (11): mtd: rawnand: stm32_fmc2: fix a buffer overflow mtd: rawnand: stm32_fmc2: remove useless inline comments mtd: rawnand: stm32_fmc2: use FMC2_TIMEOUT_5S for timeouts mtd: rawnand: stm32_fmc2: cosmetic change to use nfc instead of fmc2 where relevant mtd: rawnand: stm32_fmc2: use FIELD_PREP/FIELD_GET macros mtd: rawnand: stm32_fmc2: use clrsetbits_le32 memory: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver mtd: rawnand: stm32_fmc2: get resources from parent node board: stm32mp1: update fdt fixup partitions table configs: stm32mp: add CONFIG_STM32_FMC2_EBI ARM: dts: stm32: add FMC2 EBI support for stm32mp157c
arch/arm/dts/stm32mp151.dtsi | 43 +- arch/arm/dts/stm32mp157c-ev1.dts | 16 +- board/st/stm32mp1/stm32mp1.c | 1 + configs/stm32mp15_basic_defconfig | 1 + configs/stm32mp15_trusted_defconfig | 1 + drivers/memory/Kconfig | 9 + drivers/memory/Makefile | 1 + drivers/memory/stm32-fmc2-ebi.c | 1056 ++++++++++++++++++++++++++++++++ drivers/mtd/nand/raw/stm32_fmc2_nand.c | 499 ++++++++------- 9 files changed, 1349 insertions(+), 278 deletions(-) create mode 100644 drivers/memory/stm32-fmc2-ebi.c