From 34a5addb7b57cb5a0ad5940ff7ef1df7edb0ff55 Mon Sep 17 00:00:00 2001 From: Kate Liu Date: Fri, 11 Dec 2020 13:46:13 -0800 Subject: [PATCH] board: presidio: Add Parallel NAND support Set environment for Nand flash (U-boot 2020.04): - add nand flash in the device tree - add new default configuration file for G3 using parallel Nand - set nand parameters in presidio_asic.h Signed-off-by: Kate Liu Signed-off-by: Alex Nemirovsky CC: Tom Rini Reviewed-by: Tom Rini --- MAINTAINERS | 1 + arch/arm/dts/ca-presidio-engboard.dts | 14 ++++++++ configs/cortina_presidio-asic-pnand_defconfig | 33 +++++++++++++++++++ include/configs/presidio_asic.h | 9 +++++ 4 files changed, 57 insertions(+) create mode 100644 configs/cortina_presidio-asic-pnand_defconfig diff --git a/MAINTAINERS b/MAINTAINERS index f9a26ccf08..a7a62dff81 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -200,6 +200,7 @@ F: drivers/i2c/i2c-cortina.c F: drivers/i2c/i2c-cortina.h F: drivers/mtd/nand/raw/cortina_nand.c F: drivers/mtd/nand/raw/cortina_nand.h +F: configs/cortina_presidio-asic-pnand_defconfig ARM/CZ.NIC TURRIS MOX SUPPORT M: Marek Behun diff --git a/arch/arm/dts/ca-presidio-engboard.dts b/arch/arm/dts/ca-presidio-engboard.dts index eef433e768..0ab52fdfda 100644 --- a/arch/arm/dts/ca-presidio-engboard.dts +++ b/arch/arm/dts/ca-presidio-engboard.dts @@ -52,6 +52,20 @@ clock-frequency = <400000>; }; + nand: nand-controller@f4324000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "cortina,ca-nand"; + reg = <0 0xf4324000 0x3b0>, /* NAND controller */ + <0 0xf7001000 0xb4>, /* DMA_GLOBAL */ + <0 0xf7001a00 0x80>; /* DMA channel0 for FLASH */ + status = "okay"; + nand-ecc-mode = "hw"; + nand-ecc-strength = <16>; + nand-ecc-step-size = <1024>; /* Must be 1024 */ + nand_flash_base_addr = <0xe0000000>; + }; + sflash: sflash-controller@f4324000 { #address-cells = <2>; #size-cells = <1>; diff --git a/configs/cortina_presidio-asic-pnand_defconfig b/configs/cortina_presidio-asic-pnand_defconfig new file mode 100644 index 0000000000..e85cdc579e --- /dev/null +++ b/configs/cortina_presidio-asic-pnand_defconfig @@ -0,0 +1,33 @@ +CONFIG_ARM=y +# CONFIG_SYS_ARCH_TIMER is not set +CONFIG_TARGET_PRESIDIO_ASIC=y +CONFIG_SYS_TEXT_BASE=0x04000000 +CONFIG_NR_DRAM_BANKS=1 +CONFIG_ENV_SIZE=0x20000 +CONFIG_DM_GPIO=y +CONFIG_IDENT_STRING="Presidio-SoC" +CONFIG_DEFAULT_DEVICE_TREE="ca-presidio-engboard" +CONFIG_SHOW_BOOT_PROGRESS=y +CONFIG_BOOTDELAY=3 +CONFIG_USE_BOOTARGS=y +CONFIG_BOOTARGS="earlycon=serial,0xf4329148 console=ttyS0,115200 root=/dev/ram0" +CONFIG_BOARD_EARLY_INIT_R=y +CONFIG_SYS_PROMPT="G3#" +CONFIG_CMD_MTD=y +CONFIG_CMD_WDT=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_TIMER=y +CONFIG_CMD_SMC=y +CONFIG_OF_CONTROL=y +CONFIG_OF_LIVE=y +# CONFIG_NET is not set +CONFIG_DM=y +CONFIG_CORTINA_GPIO=y +# CONFIG_MMC is not set +CONFIG_MTD=y +CONFIG_MTD_RAW_NAND=y +CONFIG_CORTINA_NAND=y +CONFIG_DM_SERIAL=y +CONFIG_CORTINA_UART=y +CONFIG_WDT=y +CONFIG_WDT_CORTINA=y diff --git a/include/configs/presidio_asic.h b/include/configs/presidio_asic.h index 34235b5a00..710731efd5 100644 --- a/include/configs/presidio_asic.h +++ b/include/configs/presidio_asic.h @@ -67,4 +67,13 @@ #define CONFIG_SYS_MAXARGS 64 #define CONFIG_EXTRA_ENV_SETTINGS "silent=y\0" +/* nand driver parameters */ +#ifdef CONFIG_TARGET_PRESIDIO_ASIC + #define CONFIG_SYS_NAND_ONFI_DETECTION + #define CONFIG_SYS_MAX_NAND_DEVICE 1 + #define CONFIG_SYS_NAND_MAX_CHIPS 1 + #define CONFIG_SYS_NAND_BASE CONFIG_SYS_FLASH_BASE + #define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE } +#endif + #endif /* __PRESIDIO_ASIC_H */