
Hei hei,
for some downstream boards with SAMA5D27 SiP SoCs with raw NAND flash I added the necessary nodes to sama5d2.dtsi with just one little guesswork: the clocks. Motivation was to fix reading from raw nand flash which failed on some of those boards, while others worked fine. So I suppose the timings for the external interface were set to too slow values. (IIRC I took them from the sama5d2_ptc_ek_nandflash board code back in 2019.)
The solution was basically to switch from the old non-DM driver with hardcoded timings for the external memory interface to the new DM based driver introduced earlier this year, which sets the timings based on ONFI parameters read from the flash chip.
Works for me, but I have no boards with that SoC _and_ a raw NAND flash at hand, which are supported by upstream U-Boot. The only matching upstream config is sama5d2_ptc_ek_nandflash_defconfig but because we don't have that board, I did not touch it.
(When that driver was added with 6a8dfd57220d ("nand: atmel: Add DM based NAND driver") the author claims in the commit message it was tested on SAMA5D3, but none of the sama5d3 configs actually uses it.)
Some more changes to the board dts are necessary, but porting from Linux is straightforward. The necessary changes to the defconfig should look like this:
# CONFIG_I2C is not set CONFIG_LED=y CONFIG_LED_GPIO=y +CONFIG_ATMEL_EBI=y +CONFIG_MFD_ATMEL_SMC=y # CONFIG_MMC is not set CONFIG_MTD=y -CONFIG_NAND_ATMEL=y -CONFIG_ATMEL_NAND_HW_PMECC=y -CONFIG_PMECC_CAP=8 +CONFIG_DM_MTD=y +CONFIG_DM_NAND_ATMEL=y CONFIG_SYS_NAND_ONFI_DETECTION=y CONFIG_PHY_SMSC=y CONFIG_MACB=y
Hope the changes are acceptable nevertheless. The last patch has a trivial fix for the new atmel raw nand driver which I came up with while working on this.
Greets Alex
Cc: Eugen Hristev eugen.hristev@collabora.com Cc: Dario Binacchi dario.binacchi@amarulasolutions.com Cc: Michael Trimarchi michael@amarulasolutions.com Cc: Wenyou Yang wenyou.yang@microchip.com Cc: Balamanikandan Gunasundar balamanikandan.gunasundar@microchip.com
Alexander Dahl (4): ARM: dts: at91: sama5d2: Move sfr node ARM: dts: at91: sama5d2: Port ebi/nand nodes from linux ARM: dts: at91: sama5d2: Align more node names with Linux mtd: nand: raw: atmel: Remove duplicate definitions
arch/arm/dts/sama5d2.dtsi | 74 ++++++++++++++++++++++++++---- drivers/mtd/nand/raw/atmel/pmecc.c | 3 -- 2 files changed, 65 insertions(+), 12 deletions(-)
base-commit: 2f0282922b2c458eea7f85c500a948a587437b63