arm64: versal: Add octal spi flash mini u-boot configuration
authorAshok Reddy Soma <ashok.reddy.soma@amd.com>
Wed, 16 Nov 2022 14:11:55 +0000 (07:11 -0700)
committerMichal Simek <michal.simek@amd.com>
Tue, 22 Nov 2022 14:02:07 +0000 (15:02 +0100)
Add configuration file for mini u-boot configuration which runs on a
smaller footprint from on chip memory(OCM). This configuration has
required CONFIG's enabled to support octal spi flash and uses DCC terminal
for console output. Add required dts for octal spi flash mini u-boot
configuration.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20221116141155.14788-4-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
arch/arm/dts/Makefile
arch/arm/dts/versal-mini-ospi-single.dts [new file with mode: 0644]
arch/arm/dts/versal-mini-ospi.dtsi [new file with mode: 0644]
configs/xilinx_versal_mini_ospi_defconfig [new file with mode: 0644]

index 7d3cac0..43951a7 100644 (file)
@@ -383,6 +383,7 @@ dtb-$(CONFIG_ARCH_VERSAL) += \
        versal-mini.dtb \
        versal-mini-emmc0.dtb \
        versal-mini-emmc1.dtb \
+       versal-mini-ospi-single.dtb \
        versal-mini-qspi-single.dtb \
        xilinx-versal-virt.dtb
 dtb-$(CONFIG_ARCH_VERSAL_NET) += \
diff --git a/arch/arm/dts/versal-mini-ospi-single.dts b/arch/arm/dts/versal-mini-ospi-single.dts
new file mode 100644 (file)
index 0000000..23f6e47
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Xilinx Versal QSPI single DTS
+ *
+ * Copyright (C) 2018-2020 Xilinx, Inc.
+ */
+
+#include "versal-mini-ospi.dtsi"
+
+/ {
+       model = "Xilinx Versal MINI OSPI SINGLE";
+};
+
+&flash0 {
+       spi-rx-bus-width = <8>;
+};
diff --git a/arch/arm/dts/versal-mini-ospi.dtsi b/arch/arm/dts/versal-mini-ospi.dtsi
new file mode 100644 (file)
index 0000000..a4b76e2
--- /dev/null
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * dts file for Xilinx Versal Mini OSPI Configuration
+ *
+ * (C) Copyright 2018-2019, Xilinx, Inc.
+ *
+ * Siva Durga Prasad <siva.durga.paladugu@xilinx.com>
+ * Michal Simek <michal.simek@xilinx.com>
+ */
+
+/dts-v1/;
+
+/ {
+       compatible = "xlnx,versal";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       model = "Xilinx Versal MINI OSPI";
+
+       clk125: clk125 {
+               compatible = "fixed-clock";
+               #clock-cells = <0x0>;
+               clock-frequency = <125000000>;
+       };
+
+       dcc: dcc {
+               compatible = "arm,dcc";
+               status = "okay";
+               u-boot,dm-pre-reloc;
+       };
+
+       amba: amba {
+               u-boot,dm-pre-reloc;
+               compatible = "simple-bus";
+               #address-cells = <0x2>;
+               #size-cells = <0x2>;
+               ranges;
+
+               ospi: spi@f1010000 {
+                       compatible = "cadence,qspi", "cdns,qspi-nor";
+                       status = "okay";
+                       reg = <0 0xf1010000 0 0x10000 0 0xc0000000 0 0x20000000>;
+                       clock-names = "ref_clk", "pclk";
+                       clocks = <&clk125 &clk125>;
+                       bus-num = <2>;
+                       num-cs = <1>;
+                       cdns,fifo-depth = <256>;
+                       cdns,fifo-width = <4>;
+                       cdns,is-dma = <1>;
+                       cdns,trigger-address = <0xc0000000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       flash0: flash@0 {
+                               compatible = "n25q512a", "micron,m25p80",
+                                            "jedec,spi-nor";
+                               reg = <0x0>;
+                               spi-tx-bus-width = <8>;
+                               spi-rx-bus-width = <8>;
+                               spi-max-frequency = <20000000>;
+                       };
+               };
+       };
+
+       aliases {
+               serial0 = &dcc;
+               spi0 = &ospi;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200";
+       };
+
+       memory@fffc0000 {
+               device_type = "memory";
+               reg = <0x0 0xfffc0000 0x0 0x40000>;
+       };
+};
diff --git a/configs/xilinx_versal_mini_ospi_defconfig b/configs/xilinx_versal_mini_ospi_defconfig
new file mode 100644 (file)
index 0000000..2c4e210
--- /dev/null
@@ -0,0 +1,72 @@
+CONFIG_ARM=y
+CONFIG_SYS_CONFIG_NAME="xilinx_versal_mini_qspi"
+CONFIG_COUNTER_FREQUENCY=100000000
+CONFIG_ARCH_VERSAL=y
+CONFIG_TEXT_BASE=0xFFFC0000
+CONFIG_SYS_MALLOC_LEN=0x2000
+CONFIG_SYS_MALLOC_F_LEN=0x500
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x80
+# CONFIG_DM_GPIO is not set
+CONFIG_DEFAULT_DEVICE_TREE="versal-mini-ospi-single"
+CONFIG_SYS_PROMPT="Versal> "
+CONFIG_SYS_MEM_RSVD_FOR_MMU=y
+CONFIG_VERSAL_NO_DDR=y
+# CONFIG_PSCI_RESET is not set
+CONFIG_SYS_LOAD_ADDR=0x8000000
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xFFFE0000
+# CONFIG_EXPERT is not set
+# CONFIG_AUTOBOOT is not set
+CONFIG_SYS_CONSOLE_INFO_QUIET=y
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_BOARD_EARLY_INIT_R=y
+# CONFIG_BOARD_LATE_INIT is not set
+# CONFIG_CMDLINE_EDITING is not set
+# CONFIG_AUTO_COMPLETE is not set
+# CONFIG_SYS_LONGHELP is not set
+# 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_LOADB is not set
+# CONFIG_CMD_LOADS is not set
+# 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_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_SF_DEFAULT_SPEED=30000000
+CONFIG_SPI_FLASH_SOFT_RESET=y
+CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
+CONFIG_SPI_FLASH_GIGADEVICE=y
+CONFIG_SPI_FLASH_ISSI=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_MT35XU=y
+CONFIG_ARM_DCC=y
+CONFIG_SOC_XILINX_VERSAL=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_CADENCE_QSPI=y
+CONFIG_HAS_CQSPI_REF_CLK=y
+CONFIG_CQSPI_REF_CLK=200000000
+CONFIG_CADENCE_OSPI_VERSAL=y
+# CONFIG_LMB is not set