[PATCH 0/4] Facilitate new atmel raw nand driver for SAMA5D2

Alexander Dahl ada at thorsis.com
Tue Dec 12 17:04:19 CET 2023


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 at collabora.com>
Cc: Dario Binacchi <dario.binacchi at amarulasolutions.com>
Cc: Michael Trimarchi <michael at amarulasolutions.com>
Cc: Wenyou Yang <wenyou.yang at microchip.com>
Cc: Balamanikandan Gunasundar <balamanikandan.gunasundar at 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
-- 
2.39.2



More information about the U-Boot mailing list