Message ID | 1531904180-13478-1-git-send-email-siva.durga.paladugu@xilinx.com |
---|---|
State | Superseded |
Delegated to: | Michal Simek |
Headers | show |
Series | [U-Boot] arm64: zynqmp: Add QSPI flash mini u-boot configuration | expand |
On 18.7.2018 10:56, Siva Durga Prasad Paladugu wrote: > Add configuration files/dtses for mini u-boot configuration > which runs on smaller footprint of internal memory. This > configuration has only required qspi flash support and it > uses DCC as serial. > > Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> > --- > This patch is based on series > "[PATCH v6 0/5] Add support for reading memory configuration from > DT at run-time" > --- > arch/arm/dts/Makefile | 1 + > arch/arm/dts/zynqmp-mini-qspi.dts | 95 +++++++++++++++++++++++++++++++ > configs/xilinx_zynqmp_mini_qspi_defconfig | 61 ++++++++++++++++++++ > include/configs/xilinx_zynqmp_mini_qspi.h | 22 +++++++ > 4 files changed, 179 insertions(+) > create mode 100644 arch/arm/dts/zynqmp-mini-qspi.dts > create mode 100644 configs/xilinx_zynqmp_mini_qspi_defconfig > create mode 100644 include/configs/xilinx_zynqmp_mini_qspi.h > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index 9607239..b62670b 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -150,6 +150,7 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \ > zynqmp-mini-emmc0.dtb \ > zynqmp-mini-emmc1.dtb \ > zynqmp-mini-nand.dtb \ > + zynqmp-mini-qspi.dtb \ > zynqmp-zcu100-revC.dtb \ > zynqmp-zcu102-revA.dtb \ > zynqmp-zcu102-revB.dtb \ > diff --git a/arch/arm/dts/zynqmp-mini-qspi.dts b/arch/arm/dts/zynqmp-mini-qspi.dts > new file mode 100644 > index 0000000..3267021 > --- /dev/null > +++ b/arch/arm/dts/zynqmp-mini-qspi.dts > @@ -0,0 +1,95 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * dts file for Xilinx ZynqMP Mini Configuration > + * > + * (C) Copyright 2018, Xilinx, Inc. This was done in 2015. It means 2015 - 2018 > + * > + * Siva Durga Prasad <siva.durga.paladugu@xilinx.com> > + * Michal Simek <michal.simek@xilinx.com> > + */ > + > +/dts-v1/; > + > +/ { > + model = "ZynqMP MINI QSPI"; > + compatible = "xlnx,zynqmp"; > + #address-cells = <2>; > + #size-cells = <1>; > + > + aliases { > + serial0 = &dcc; > + spi0 = &qspi; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + memory@0 { This should be memory@fffc0000 > + device_type = "memory"; > + reg = <0x0 0xfffc0000 0x40000>; > + }; > + > + dcc: dcc { > + compatible = "arm,dcc"; > + status = "disabled"; > + u-boot,dm-pre-reloc; > + }; > + > + amba: amba { > + compatible = "simple-bus"; > + #address-cells = <2>; > + #size-cells = <1>; > + ranges; > + > + qspi: spi@ff0f0000 { > + compatible = "xlnx,zynqmp-qspi-1.0"; > + status = "disabled"; > + clock-names = "ref_clk", "pclk"; > + clocks = <&misc_clk &misc_clk>; > + num-cs = <1>; > + reg = <0x0 0xff0f0000 0x1000 0x0 0xc0000000 0x8000000>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + > + misc_clk: misc_clk { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <125000000>; > + }; > + }; > +}; > + > +&qspi { > + status = "okay"; > + flash@0 { > + compatible = "n25q512a11"; > + #address-cells = <1>; > + #size-cells = <1>; > + reg = <0x0>; > + spi-tx-bus-width = <1>; > + spi-rx-bus-width = <4>; > + spi-max-frequency = <10000000>; > + partition@qspi-fsbl-uboot { /* for testing purpose */ > + label = "qspi-fsbl-uboot"; > + reg = <0x0 0x100000>; > + }; > + partition@qspi-linux { /* for testing purpose */ > + label = "qspi-linux"; > + reg = <0x100000 0x500000>; > + }; > + partition@qspi-device-tree { /* for testing purpose */ > + label = "qspi-device-tree"; > + reg = <0x600000 0x20000>; > + }; > + partition@qspi-rootfs { /* for testing purpose */ > + label = "qspi-rootfs"; > + reg = <0x620000 0x5E0000>; > + }; we should probably removed this partition setting because none is using it. > + }; > +}; > + > +&dcc { > + status = "okay"; > +}; > diff --git a/configs/xilinx_zynqmp_mini_qspi_defconfig b/configs/xilinx_zynqmp_mini_qspi_defconfig > new file mode 100644 > index 0000000..745a550 > --- /dev/null > +++ b/configs/xilinx_zynqmp_mini_qspi_defconfig > @@ -0,0 +1,61 @@ > +CONFIG_ARM=y > +CONFIG_SYS_CONFIG_NAME="xilinx_zynqmp_mini_qspi" > +CONFIG_ARCH_ZYNQMP=y > +CONFIG_SYS_TEXT_BASE=0xFFFC0000 > +CONFIG_SYS_MEM_RSVD_FOR_MMU=y > +CONFIG_ZYNQMP_NO_DDR=y > +CONFIG_DEFINE_TCM_OCM_MMAP=y > +# CONFIG_CMD_ZYNQMP is not set > +CONFIG_DEFAULT_DEVICE_TREE="zynqmp-mini-qspi" > +# CONFIG_IMAGE_FORMAT_LEGACY is not set > +CONFIG_BOOTDELAY=-1 > +# CONFIG_DISPLAY_CPUINFO is not set > +# CONFIG_CMDLINE_EDITING is not set > +# CONFIG_AUTO_COMPLETE is not set > +# CONFIG_SYS_LONGHELP is not set > +CONFIG_SYS_PROMPT="ZynqMP> " > +# CONFIG_CMD_BDI is not set > +# CONFIG_CMD_CONSOLE is not set > +# CONFIG_CMD_BOOTD is not set > +# CONFIG_CMD_BOOTM is not set > +# CONFIG_CMD_BOOTI is not set > +# CONFIG_CMD_ELF is not set > +# CONFIG_CMD_FDT is not set > +# CONFIG_CMD_GO is not set > +# CONFIG_CMD_RUN is not set > +# CONFIG_CMD_IMI is not set > +# CONFIG_CMD_XIMG is not set > +# CONFIG_CMD_EXPORTENV is not set > +# CONFIG_CMD_IMPORTENV is not set > +# CONFIG_CMD_EDITENV is not set > +# CONFIG_CMD_SAVEENV is not set > +# CONFIG_CMD_ENV_EXISTS is not set > +# CONFIG_CMD_CRC32 is not set > +# CONFIG_CMD_DM is not set > +# CONFIG_CMD_FLASH is not set > +# CONFIG_CMD_LOADB is not set > +# CONFIG_CMD_LOADS is not set > +CONFIG_CMD_SF=y > +# CONFIG_CMD_ECHO is not set > +# CONFIG_CMD_ITEST is not set > +# CONFIG_CMD_SOURCE is not set > +# CONFIG_CMD_SETEXPR is not set > +# CONFIG_CMD_MISC is not set > +# CONFIG_PARTITIONS is not set > +CONFIG_OF_EMBED=y > +# CONFIG_NET is not set > +# CONFIG_DM_WARN is not set > +# CONFIG_DM_DEVICE_REMOVE is not set > +# CONFIG_MMC is not set > +CONFIG_DM_SPI_FLASH=y > +CONFIG_SPI_FLASH=y > +CONFIG_SPI_FLASH_BAR=y > +CONFIG_SF_DUAL_FLASH=y > +CONFIG_SPI_FLASH_MACRONIX=y > +CONFIG_SPI_FLASH_SPANSION=y > +CONFIG_SPI_FLASH_STMICRO=y > +CONFIG_SPI_FLASH_WINBOND=y > +CONFIG_SPI=y > +CONFIG_DM_SPI=y > +CONFIG_ZYNQMP_GQSPI=y > +# CONFIG_EFI_LOADER is not set > diff --git a/include/configs/xilinx_zynqmp_mini_qspi.h b/include/configs/xilinx_zynqmp_mini_qspi.h > new file mode 100644 > index 0000000..03d213b > --- /dev/null > +++ b/include/configs/xilinx_zynqmp_mini_qspi.h > @@ -0,0 +1,22 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Configuration for Xilinx ZynqMP QSPI Flash utility > + * > + * (C) Copyright 2018 Xilinx, Inc. > + * Michal Simek <michal.simek@xilinx.com> > + * Siva Durga Prasad Paladugu <sivadur@xilinx.com> > + */ > + > +#ifndef __CONFIG_ZYNQMP_MINI_QSPI_H > +#define __CONFIG_ZYNQMP_MINI_QSPI_H > + > +#include <configs/xilinx_zynqmp_mini.h> > + > +#define CONFIG_SYS_ICACHE_OFF > +#define CONFIG_NR_DRAM_BANKS 1 > +#define CONFIG_ENV_SIZE 1400 This is moved to Kconfig now. Look at Vipuls patch > +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + 0x20000) > +#define CONFIG_SYS_MALLOC_LEN 0x2000 > +#define CONFIG_MP We don't want this for this configuration. Thanks, Michal
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 9607239..b62670b 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -150,6 +150,7 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \ zynqmp-mini-emmc0.dtb \ zynqmp-mini-emmc1.dtb \ zynqmp-mini-nand.dtb \ + zynqmp-mini-qspi.dtb \ zynqmp-zcu100-revC.dtb \ zynqmp-zcu102-revA.dtb \ zynqmp-zcu102-revB.dtb \ diff --git a/arch/arm/dts/zynqmp-mini-qspi.dts b/arch/arm/dts/zynqmp-mini-qspi.dts new file mode 100644 index 0000000..3267021 --- /dev/null +++ b/arch/arm/dts/zynqmp-mini-qspi.dts @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * dts file for Xilinx ZynqMP Mini Configuration + * + * (C) Copyright 2018, Xilinx, Inc. + * + * Siva Durga Prasad <siva.durga.paladugu@xilinx.com> + * Michal Simek <michal.simek@xilinx.com> + */ + +/dts-v1/; + +/ { + model = "ZynqMP MINI QSPI"; + compatible = "xlnx,zynqmp"; + #address-cells = <2>; + #size-cells = <1>; + + aliases { + serial0 = &dcc; + spi0 = &qspi; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0xfffc0000 0x40000>; + }; + + dcc: dcc { + compatible = "arm,dcc"; + status = "disabled"; + u-boot,dm-pre-reloc; + }; + + amba: amba { + compatible = "simple-bus"; + #address-cells = <2>; + #size-cells = <1>; + ranges; + + qspi: spi@ff0f0000 { + compatible = "xlnx,zynqmp-qspi-1.0"; + status = "disabled"; + clock-names = "ref_clk", "pclk"; + clocks = <&misc_clk &misc_clk>; + num-cs = <1>; + reg = <0x0 0xff0f0000 0x1000 0x0 0xc0000000 0x8000000>; + #address-cells = <1>; + #size-cells = <0>; + }; + + misc_clk: misc_clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + }; + }; +}; + +&qspi { + status = "okay"; + flash@0 { + compatible = "n25q512a11"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x0>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <4>; + spi-max-frequency = <10000000>; + partition@qspi-fsbl-uboot { /* for testing purpose */ + label = "qspi-fsbl-uboot"; + reg = <0x0 0x100000>; + }; + partition@qspi-linux { /* for testing purpose */ + label = "qspi-linux"; + reg = <0x100000 0x500000>; + }; + partition@qspi-device-tree { /* for testing purpose */ + label = "qspi-device-tree"; + reg = <0x600000 0x20000>; + }; + partition@qspi-rootfs { /* for testing purpose */ + label = "qspi-rootfs"; + reg = <0x620000 0x5E0000>; + }; + }; +}; + +&dcc { + status = "okay"; +}; diff --git a/configs/xilinx_zynqmp_mini_qspi_defconfig b/configs/xilinx_zynqmp_mini_qspi_defconfig new file mode 100644 index 0000000..745a550 --- /dev/null +++ b/configs/xilinx_zynqmp_mini_qspi_defconfig @@ -0,0 +1,61 @@ +CONFIG_ARM=y +CONFIG_SYS_CONFIG_NAME="xilinx_zynqmp_mini_qspi" +CONFIG_ARCH_ZYNQMP=y +CONFIG_SYS_TEXT_BASE=0xFFFC0000 +CONFIG_SYS_MEM_RSVD_FOR_MMU=y +CONFIG_ZYNQMP_NO_DDR=y +CONFIG_DEFINE_TCM_OCM_MMAP=y +# CONFIG_CMD_ZYNQMP is not set +CONFIG_DEFAULT_DEVICE_TREE="zynqmp-mini-qspi" +# CONFIG_IMAGE_FORMAT_LEGACY is not set +CONFIG_BOOTDELAY=-1 +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_CMDLINE_EDITING is not set +# CONFIG_AUTO_COMPLETE is not set +# CONFIG_SYS_LONGHELP is not set +CONFIG_SYS_PROMPT="ZynqMP> " +# CONFIG_CMD_BDI is not set +# CONFIG_CMD_CONSOLE is not set +# CONFIG_CMD_BOOTD is not set +# CONFIG_CMD_BOOTM is not set +# CONFIG_CMD_BOOTI is not set +# CONFIG_CMD_ELF is not set +# CONFIG_CMD_FDT is not set +# CONFIG_CMD_GO is not set +# CONFIG_CMD_RUN is not set +# CONFIG_CMD_IMI is not set +# CONFIG_CMD_XIMG is not set +# CONFIG_CMD_EXPORTENV is not set +# CONFIG_CMD_IMPORTENV is not set +# CONFIG_CMD_EDITENV is not set +# CONFIG_CMD_SAVEENV is not set +# CONFIG_CMD_ENV_EXISTS is not set +# CONFIG_CMD_CRC32 is not set +# CONFIG_CMD_DM is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_LOADB is not set +# CONFIG_CMD_LOADS is not set +CONFIG_CMD_SF=y +# CONFIG_CMD_ECHO is not set +# CONFIG_CMD_ITEST is not set +# CONFIG_CMD_SOURCE is not set +# CONFIG_CMD_SETEXPR is not set +# CONFIG_CMD_MISC is not set +# CONFIG_PARTITIONS is not set +CONFIG_OF_EMBED=y +# CONFIG_NET is not set +# CONFIG_DM_WARN is not set +# CONFIG_DM_DEVICE_REMOVE is not set +# CONFIG_MMC is not set +CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH=y +CONFIG_SPI_FLASH_BAR=y +CONFIG_SF_DUAL_FLASH=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_ZYNQMP_GQSPI=y +# CONFIG_EFI_LOADER is not set diff --git a/include/configs/xilinx_zynqmp_mini_qspi.h b/include/configs/xilinx_zynqmp_mini_qspi.h new file mode 100644 index 0000000..03d213b --- /dev/null +++ b/include/configs/xilinx_zynqmp_mini_qspi.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Configuration for Xilinx ZynqMP QSPI Flash utility + * + * (C) Copyright 2018 Xilinx, Inc. + * Michal Simek <michal.simek@xilinx.com> + * Siva Durga Prasad Paladugu <sivadur@xilinx.com> + */ + +#ifndef __CONFIG_ZYNQMP_MINI_QSPI_H +#define __CONFIG_ZYNQMP_MINI_QSPI_H + +#include <configs/xilinx_zynqmp_mini.h> + +#define CONFIG_SYS_ICACHE_OFF +#define CONFIG_NR_DRAM_BANKS 1 +#define CONFIG_ENV_SIZE 1400 +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE + 0x20000) +#define CONFIG_SYS_MALLOC_LEN 0x2000 +#define CONFIG_MP + +#endif /* __CONFIG_ZYNQMP_MINI_QSPI_H */
Add configuration files/dtses for mini u-boot configuration which runs on smaller footprint of internal memory. This configuration has only required qspi flash support and it uses DCC as serial. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> --- This patch is based on series "[PATCH v6 0/5] Add support for reading memory configuration from DT at run-time" --- arch/arm/dts/Makefile | 1 + arch/arm/dts/zynqmp-mini-qspi.dts | 95 +++++++++++++++++++++++++++++++ configs/xilinx_zynqmp_mini_qspi_defconfig | 61 ++++++++++++++++++++ include/configs/xilinx_zynqmp_mini_qspi.h | 22 +++++++ 4 files changed, 179 insertions(+) create mode 100644 arch/arm/dts/zynqmp-mini-qspi.dts create mode 100644 configs/xilinx_zynqmp_mini_qspi_defconfig create mode 100644 include/configs/xilinx_zynqmp_mini_qspi.h