[PATCH 0/4] Add support for sam9x60 curiosity

This patch series adds boot from NAND support, configs update and fixes. The changes has been done on top of u-boot version 2023.07.
Durai Manickam KR (4): configs: at91: sam9x60_curiosity: update sam9x60_curiosity_mmc_defconfig configs: at91: sam9x60_curiosity: Add sam9x60_curiosity_nandflash_defconfig ARM: dts: at91: sam9x60_curiosity: Enable NAND support ARM: dts: at91: sam9x60_curiosity: fix eeprom compatible
arch/arm/dts/at91-sam9x60_curiosity.dts | 106 +++++++++++++++++- board/atmel/sam9x60_curiosity/MAINTAINERS | 1 + configs/sam9x60_curiosity_mmc_defconfig | 14 +++ configs/sam9x60_curiosity_nandflash_defconfig | 92 +++++++++++++++ 4 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 configs/sam9x60_curiosity_nandflash_defconfig

- Enable Device model supported NAND driver configs in SDMMC defconfig. - Enable SYSRESET for Atmel/Microchip's platforms.
Signed-off-by: Durai Manickam KR durai.manickamkr@microchip.com --- configs/sam9x60_curiosity_mmc_defconfig | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/configs/sam9x60_curiosity_mmc_defconfig b/configs/sam9x60_curiosity_mmc_defconfig index 10937d67d7..279c4c1f4b 100644 --- a/configs/sam9x60_curiosity_mmc_defconfig +++ b/configs/sam9x60_curiosity_mmc_defconfig @@ -38,6 +38,8 @@ CONFIG_CMD_DM=y CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y +CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_TRIMFFS=y # CONFIG_CMD_SETEXPR is not set CONFIG_CMD_DHCP=y CONFIG_BOOTP_BOOTFILESIZE=y @@ -50,6 +52,9 @@ CONFIG_OF_CONTROL=y CONFIG_ENV_IS_IN_FAT=y CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_DM=y +CONFIG_REGMAP=y +CONFIG_SYSCON=y CONFIG_CLK=y CONFIG_CLK_CCF=y CONFIG_CLK_AT91=y @@ -60,10 +65,17 @@ CONFIG_CPU=y CONFIG_AT91_GPIO=y CONFIG_DM_I2C=y CONFIG_SYS_I2C_AT91=y +CONFIG_ATMEL_EBI=y +CONFIG_MFD_ATMEL_SMC=y CONFIG_I2C_EEPROM=y CONFIG_MICROCHIP_FLEXCOM=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ATMEL=y +CONFIG_MTD=y +CONFIG_DM_MTD=y +CONFIG_MTD_RAW_NAND=y +CONFIG_DM_NAND_ATMEL=y +CONFIG_SYS_NAND_ONFI_DETECTION=y CONFIG_PHY_MICREL=y CONFIG_MACB=y CONFIG_PINCTRL=y @@ -71,6 +83,8 @@ CONFIG_PINCTRL_AT91=y CONFIG_DM_SERIAL=y CONFIG_DEBUG_UART_ANNOUNCE=y CONFIG_ATMEL_USART=y +CONFIG_SYSRESET=y +CONFIG_SYSRESET_AT91=y CONFIG_TIMER=y CONFIG_MCHP_PIT64B_TIMER=y CONFIG_W1=y

Add boot from NAND flash support for sam9x60_curiosity.
Signed-off-by: Durai Manickam KR durai.manickamkr@microchip.com --- board/atmel/sam9x60_curiosity/MAINTAINERS | 1 + configs/sam9x60_curiosity_nandflash_defconfig | 92 +++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 configs/sam9x60_curiosity_nandflash_defconfig
diff --git a/board/atmel/sam9x60_curiosity/MAINTAINERS b/board/atmel/sam9x60_curiosity/MAINTAINERS index 0d9369e027..992d3f4024 100644 --- a/board/atmel/sam9x60_curiosity/MAINTAINERS +++ b/board/atmel/sam9x60_curiosity/MAINTAINERS @@ -6,3 +6,4 @@ F: board/atmel/sam9x60_curiosity/ F: include/configs/sam9x60_curiosity.h F: configs/sam9x60_curiosity_mmc_defconfig F: configs/sam9x60_curiosity_mmc1_defconfig +F: configs/sam9x60_curiosity_nandflash_defconfig diff --git a/configs/sam9x60_curiosity_nandflash_defconfig b/configs/sam9x60_curiosity_nandflash_defconfig new file mode 100644 index 0000000000..4146bf0ac9 --- /dev/null +++ b/configs/sam9x60_curiosity_nandflash_defconfig @@ -0,0 +1,92 @@ +CONFIG_ARM=y +CONFIG_SKIP_LOWLEVEL_INIT=y +CONFIG_ARCH_AT91=y +CONFIG_TEXT_BASE=0x23f00000 +CONFIG_SYS_MALLOC_LEN=0x81000 +CONFIG_SYS_MALLOC_F_LEN=0x8000 +CONFIG_TARGET_SAM9X60_CURIOSITY=y +CONFIG_ATMEL_LEGACY=y +CONFIG_NR_DRAM_BANKS=8 +CONFIG_DM_GPIO=y +CONFIG_DEFAULT_DEVICE_TREE="at91-sam9x60_curiosity" +CONFIG_SYS_PROMPT="U-Boot> " +CONFIG_DEBUG_UART_BASE=0xfffff200 +CONFIG_DEBUG_UART_CLOCK=200000000 +CONFIG_DEBUG_UART_BOARD_INIT=y +CONFIG_ENV_OFFSET_REDUND=0x100000 +CONFIG_SYS_LOAD_ADDR=0x22000000 +CONFIG_DEBUG_UART=y +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x2000bf00 +CONFIG_FIT=y +CONFIG_NAND_BOOT=y +CONFIG_BOOTDELAY=3 +CONFIG_USE_BOOTARGS=y +CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256k(env_redundant),256k(env),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=12 root=ubi0:rootfs rw" +CONFIG_USE_BOOTCOMMAND=y +CONFIG_BOOTCOMMAND="nand read 0x22000000 0x200000 0x600000; nand read 0x21000000 0x180000 0x20000; bootz 0x22000000 - 0x21000000" +CONFIG_SYS_CONSOLE_IS_IN_ENV=y +# CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_MISC_INIT_R=y +CONFIG_HUSH_PARSER=y +CONFIG_SYS_CBSIZE=256 +CONFIG_SYS_PBSIZE=281 +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_CLK=y +CONFIG_CMD_DM=y +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_GPIO=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_TRIMFFS=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_DHCP=y +CONFIG_BOOTP_BOOTFILESIZE=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_HASH=y +CONFIG_HASH_VERIFY=y +CONFIG_CMD_FAT=y +CONFIG_CMD_UBI=y +CONFIG_OF_CONTROL=y +CONFIG_ENV_IS_IN_NAND=y +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_REGMAP=y +CONFIG_SYSCON=y +CONFIG_CLK=y +CONFIG_CLK_CCF=y +CONFIG_CLK_AT91=y +CONFIG_AT91_GENERIC_CLK=y +CONFIG_AT91_SAM9X60_PLL=y +CONFIG_CPU=y +CONFIG_AT91_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_AT91=y +CONFIG_ATMEL_EBI=y +CONFIG_MFD_ATMEL_SMC=y +CONFIG_I2C_EEPROM=y +CONFIG_MICROCHIP_FLEXCOM=y +CONFIG_GENERIC_ATMEL_MCI=y +CONFIG_MTD=y +CONFIG_DM_MTD=y +# CONFIG_SYS_NAND_USE_FLASH_BBT is not set +CONFIG_DM_NAND_ATMEL=y +CONFIG_SYS_NAND_ONFI_DETECTION=y +CONFIG_PHY_MICREL=y +CONFIG_MACB=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_AT91=y +CONFIG_DM_SERIAL=y +CONFIG_DEBUG_UART_ANNOUNCE=y +CONFIG_ATMEL_USART=y +CONFIG_SYSRESET=y +CONFIG_SYSRESET_AT91=y +CONFIG_TIMER=y +CONFIG_MCHP_PIT64B_TIMER=y +CONFIG_W1=y +CONFIG_W1_GPIO=y +CONFIG_W1_EEPROM=y +CONFIG_W1_EEPROM_DS24XXX=y +CONFIG_OF_LIBFDT_OVERLAY=y

Enable the EBI and NAND flash controller. Define the pinctrl and partition table.
Signed-off-by: Durai Manickam KR durai.manickamkr@microchip.com --- arch/arm/dts/at91-sam9x60_curiosity.dts | 104 ++++++++++++++++++++++++ 1 file changed, 104 insertions(+)
diff --git a/arch/arm/dts/at91-sam9x60_curiosity.dts b/arch/arm/dts/at91-sam9x60_curiosity.dts index d6ae3d648d..0d09679bd3 100644 --- a/arch/arm/dts/at91-sam9x60_curiosity.dts +++ b/arch/arm/dts/at91-sam9x60_curiosity.dts @@ -39,6 +39,44 @@ };
pinctrl { + ebi { + pinctrl_ebi_data_0_7: ebi-data-lsb-0 { + atmel,pins = + <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; + }; + + pinctrl_ebi_addr_nand: ebi-addr-0 { + atmel,pins = + <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; + }; + }; + + nand { + pinctrl_nand_oe_we: nand-oe-we-0 { + atmel,pins = + <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS) + AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>; + }; + + pinctrl_nand_rb: nand-rb-0 { + atmel,pins = + <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; + }; + + pinctrl_nand_cs: nand-cs-0 { + atmel,pins = + <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; + }; + }; + pinctrl_flx0: flx0_default { atmel,pins = <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE @@ -92,6 +130,72 @@ }; };
+&ebi { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>; + status = "okay"; + + nand_controller: nand-controller { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>; + status = "okay"; + + nand@3 { + reg = <0x3 0x0 0x800000>; + atmel,rb = <0>; + rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>; + cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>; + nand-bus-width = <8>; + nand-ecc-mode = "hw"; + nand-ecc-strength = <8>; + nand-ecc-step-size = <512>; + nand-on-flash-bbt; + label = "atmel_nand"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + at91bootstrap@0 { + label = "at91bootstrap"; + reg = <0x0 0x40000>; + }; + + uboot@40000 { + label = "u-boot"; + reg = <0x40000 0xc0000>; + }; + + ubootenvred@100000 { + label = "U-Boot Env Redundant"; + reg = <0x100000 0x40000>; + }; + + ubootenv@140000 { + label = "U-Boot Env"; + reg = <0x140000 0x40000>; + }; + + dtb@180000 { + label = "device tree"; + reg = <0x180000 0x80000>; + }; + + kernel@200000 { + label = "kernel"; + reg = <0x200000 0x600000>; + }; + + rootfs@800000 { + label = "rootfs"; + reg = <0x800000 0x1f800000>; + }; + }; + }; + }; +}; + &macb0 { phy-mode = "rmii"; status = "okay";

The EEPROM memory on this board is microchip 24aa025e48 which is compatible with at24c02 with a page size of 16. Fix the compatible accordingly.
Fixes: a79714f268 ("ARM: dts: Add device tree files for sam9x60_curiosity") Signed-off-by: Durai Manickam KR durai.manickamkr@microchip.com --- arch/arm/dts/at91-sam9x60_curiosity.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/dts/at91-sam9x60_curiosity.dts b/arch/arm/dts/at91-sam9x60_curiosity.dts index 0d09679bd3..b06e0d9046 100644 --- a/arch/arm/dts/at91-sam9x60_curiosity.dts +++ b/arch/arm/dts/at91-sam9x60_curiosity.dts @@ -31,7 +31,7 @@ status = "okay";
eeprom@53 { - compatible = "atmel,24c32"; + compatible = "atmel,24c02"; reg = <0x53>; pagesize = <16>; };

Hello Durai,
Am Thu, Sep 21, 2023 at 10:36:27PM +0530 schrieb Durai Manickam KR:
This patch series adds boot from NAND support, configs update and fixes. The changes has been done on top of u-boot version 2023.07.
Well, interesting. I sent patches for NAND flash support on that very board some weeks ago which were already applied to the at91 custodian tree:
https://source.denx.de/u-boot/custodians/u-boot-at91/-/tree/next?ref_type=he...
Tom already merged that to the mainline next branch. I suggest you rebase on next.
Add Eugen to Cc, since he still is officially listed as maintainer of the at91 stuff.
Greets Alex
Durai Manickam KR (4): configs: at91: sam9x60_curiosity: update sam9x60_curiosity_mmc_defconfig configs: at91: sam9x60_curiosity: Add sam9x60_curiosity_nandflash_defconfig ARM: dts: at91: sam9x60_curiosity: Enable NAND support ARM: dts: at91: sam9x60_curiosity: fix eeprom compatible
arch/arm/dts/at91-sam9x60_curiosity.dts | 106 +++++++++++++++++- board/atmel/sam9x60_curiosity/MAINTAINERS | 1 + configs/sam9x60_curiosity_mmc_defconfig | 14 +++ configs/sam9x60_curiosity_nandflash_defconfig | 92 +++++++++++++++ 4 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 configs/sam9x60_curiosity_nandflash_defconfig
-- 2.25.1

On Fri, Sep 22, 2023 at 09:00:38AM +0200, Alexander Dahl wrote:
Hello Durai,
Am Thu, Sep 21, 2023 at 10:36:27PM +0530 schrieb Durai Manickam KR:
This patch series adds boot from NAND support, configs update and fixes. The changes has been done on top of u-boot version 2023.07.
Well, interesting. I sent patches for NAND flash support on that very board some weeks ago which were already applied to the at91 custodian tree:
https://source.denx.de/u-boot/custodians/u-boot-at91/-/tree/next?ref_type=he...
Tom already merged that to the mainline next branch. I suggest you rebase on next.
Add Eugen to Cc, since he still is officially listed as maintainer of the at91 stuff.
And please make sure that the DTS changes are syncing back from the kernel and note what release they are part of.

On 22/09/23 12:30, Alexander Dahl wrote:
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
Hello Durai,
Am Thu, Sep 21, 2023 at 10:36:27PM +0530 schrieb Durai Manickam KR:
This patch series adds boot from NAND support, configs update and fixes. The changes has been done on top of u-boot version 2023.07.
Well, interesting. I sent patches for NAND flash support on that very board some weeks ago which were already applied to the at91 custodian tree:
https://source.denx.de/u-boot/custodians/u-boot-at91/-/tree/next?ref_type=he...
Tom already merged that to the mainline next branch. I suggest you rebase on next.
Hi Alexander,
Well, it is present in custodians next branch. Only thing which is missed is the NAND defconfig support [PATCH 2/4]. Will send only this patch shortly.
Add Eugen to Cc, since he still is officially listed as maintainer of the at91 stuff.
Greets Alex
Durai Manickam KR (4): configs: at91: sam9x60_curiosity: update sam9x60_curiosity_mmc_defconfig configs: at91: sam9x60_curiosity: Add sam9x60_curiosity_nandflash_defconfig ARM: dts: at91: sam9x60_curiosity: Enable NAND support ARM: dts: at91: sam9x60_curiosity: fix eeprom compatible
arch/arm/dts/at91-sam9x60_curiosity.dts | 106 +++++++++++++++++- board/atmel/sam9x60_curiosity/MAINTAINERS | 1 + configs/sam9x60_curiosity_mmc_defconfig | 14 +++ configs/sam9x60_curiosity_nandflash_defconfig | 92 +++++++++++++++ 4 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 configs/sam9x60_curiosity_nandflash_defconfig
-- 2.25.1

On 9/26/23 09:13, Durai.ManickamKR@microchip.com wrote:
On 22/09/23 12:30, Alexander Dahl wrote:
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
Hello Durai,
Am Thu, Sep 21, 2023 at 10:36:27PM +0530 schrieb Durai Manickam KR:
This patch series adds boot from NAND support, configs update and fixes. The changes has been done on top of u-boot version 2023.07.
Well, interesting. I sent patches for NAND flash support on that very board some weeks ago which were already applied to the at91 custodian tree:
https://source.denx.de/u-boot/custodians/u-boot-at91/-/tree/next?ref_type=he...
Tom already merged that to the mainline next branch. I suggest you rebase on next.
Hi Alexander,
Well, it is present in custodians next branch. Only thing which is missed is the NAND defconfig support [PATCH 2/4]. Will send only this patch shortly.
Hello Durai,
Before you resend, check your config please, as in the CI loop it does not build as-is:
+arm-linux-gnueabi-ld.bfd: drivers/clk/at91/sam9x60.o: in function `sam9x60_clk_probe': +drivers/clk/at91/sam9x60.c:595:(.text.sam9x60_clk_probe+0x500): undefined reference to `sam9x60_clk_register_usb' +make[1]: *** [Makefile:1765: u-boot] Error 1 +make: *** [Makefile:177: sub-make] Error 2
Eugen
Add Eugen to Cc, since he still is officially listed as maintainer of the at91 stuff.
Greets Alex
Durai Manickam KR (4): configs: at91: sam9x60_curiosity: update sam9x60_curiosity_mmc_defconfig configs: at91: sam9x60_curiosity: Add sam9x60_curiosity_nandflash_defconfig ARM: dts: at91: sam9x60_curiosity: Enable NAND support ARM: dts: at91: sam9x60_curiosity: fix eeprom compatible
arch/arm/dts/at91-sam9x60_curiosity.dts | 106 +++++++++++++++++- board/atmel/sam9x60_curiosity/MAINTAINERS | 1 + configs/sam9x60_curiosity_mmc_defconfig | 14 +++ configs/sam9x60_curiosity_nandflash_defconfig | 92 +++++++++++++++ 4 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 configs/sam9x60_curiosity_nandflash_defconfig
-- 2.25.1
participants (5)
-
Alexander Dahl
-
Durai Manickam KR
-
Durai.ManickamKR@microchip.com
-
Eugen Hristev
-
Tom Rini