[PATCH 0/2] enable OSPI support on AM64x

This series enables OSPI support for AM64x by setting the proper configs, and DT entries for SPL.
fixes: fa09b12dc5f6 ("arm: ti: k3: Resync dts files and bindings with Linux Kernel v5.14")
Jonathan Humphreys (2): configs: am64x_evm_*_defconfig: Enable OSPI support arm: dts: k3-am642-evm/sk: Enable OSPI support in SPL
arch/arm/dts/k3-am642-evm-u-boot.dtsi | 24 ++++++++++++++++++++++++ arch/arm/dts/k3-am642-r5-evm.dts | 5 +++++ arch/arm/dts/k3-am642-r5-sk.dts | 5 +++++ arch/arm/dts/k3-am642-sk-u-boot.dtsi | 24 ++++++++++++++++++++++++ configs/am64x_evm_a53_defconfig | 14 ++++++++++++-- configs/am64x_evm_r5_defconfig | 14 ++++++++++++-- 6 files changed, 82 insertions(+), 4 deletions(-)

Add configs to support OSPI flash.
Signed-off-by: Jonathan Humphreys j-humphreys@ti.com --- configs/am64x_evm_a53_defconfig | 14 ++++++++++++-- configs/am64x_evm_r5_defconfig | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/configs/am64x_evm_a53_defconfig b/configs/am64x_evm_a53_defconfig index 6711e691ca..27aa78a533 100644 --- a/configs/am64x_evm_a53_defconfig +++ b/configs/am64x_evm_a53_defconfig @@ -12,6 +12,7 @@ CONFIG_K3_ATF_LOAD_ADDR=0x701c0000 CONFIG_TARGET_AM642_A53_EVM=y CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80480000 +CONFIG_SF_DEFAULT_SPEED=25000000 CONFIG_ENV_SIZE=0x20000 CONFIG_DM_GPIO=y CONFIG_SPL_DM_SPI=y @@ -57,8 +58,11 @@ CONFIG_SPL_NET_VCI_STRING="AM64X U-Boot A53 SPL" CONFIG_SPL_POWER_DOMAIN=y CONFIG_SPL_RAM_SUPPORT=y CONFIG_SPL_RAM_DEVICE=y +# CONFIG_SPL_SPI_FLASH_TINY is not set +CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y CONFIG_SPL_SPI_LOAD=y -CONFIG_SYS_SPI_U_BOOT_OFFS=0x280000 +CONFIG_SYS_SPI_U_BOOT_OFFS=0x300000 +CONFIG_SPL_THERMAL=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_SYS_MAXARGS=64 CONFIG_CMD_ASKENV=y @@ -109,8 +113,13 @@ CONFIG_SPL_MMC_SDHCI_ADMA=y CONFIG_MMC_SDHCI_AM654=y CONFIG_MTD=y CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_SFDP_SUPPORT=y +CONFIG_SPI_FLASH_SOFT_RESET=y +CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_STMICRO=y +CONFIG_SPI_FLASH_S28HX_T=y +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +CONFIG_SPI_FLASH_MTD=y CONFIG_MULTIPLEXER=y CONFIG_MUX_MMIO=y CONFIG_PHY_TI_DP83867=y @@ -142,6 +151,7 @@ CONFIG_CADENCE_QSPI=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_TI_SCI=y +CONFIG_DM_THERMAL=y CONFIG_USB=y CONFIG_DM_USB_GADGET=y CONFIG_SPL_DM_USB_GADGET=y diff --git a/configs/am64x_evm_r5_defconfig b/configs/am64x_evm_r5_defconfig index 56df6a4a19..199c7c9a9d 100644 --- a/configs/am64x_evm_r5_defconfig +++ b/configs/am64x_evm_r5_defconfig @@ -10,6 +10,7 @@ CONFIG_SOC_K3_AM642=y CONFIG_TARGET_AM642_R5_EVM=y CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x7019b800 +CONFIG_SF_DEFAULT_SPEED=25000000 CONFIG_ENV_SIZE=0x20000 CONFIG_ENV_OFFSET=0x680000 CONFIG_DM_GPIO=y @@ -63,8 +64,11 @@ CONFIG_SPL_POWER_DOMAIN=y CONFIG_SPL_RAM_SUPPORT=y CONFIG_SPL_RAM_DEVICE=y CONFIG_SPL_REMOTEPROC=y +# CONFIG_SPL_SPI_FLASH_TINY is not set +CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y CONFIG_SPL_SPI_LOAD=y -CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000 +CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000 +CONFIG_SPL_THERMAL=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_MAXARGS=64 @@ -117,8 +121,11 @@ CONFIG_SPL_MMC_SDHCI_ADMA=y CONFIG_MMC_SDHCI_AM654=y CONFIG_MTD=y CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_SFDP_SUPPORT=y +CONFIG_SPI_FLASH_SOFT_RESET=y +CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y CONFIG_SPI_FLASH_SPANSION=y -CONFIG_SPI_FLASH_STMICRO=y +CONFIG_SPI_FLASH_S28HX_T=y CONFIG_PHY_TI_DP83867=y CONFIG_TI_AM65_CPSW_NUSS=y CONFIG_PHY=y @@ -142,6 +149,8 @@ CONFIG_REMOTEPROC_TI_K3_ARM64=y CONFIG_RESET_TI_SCI=y CONFIG_SPECIFY_CONSOLE_INDEX=y CONFIG_DM_SERIAL=y +CONFIG_SOC_DEVICE=y +CONFIG_SOC_DEVICE_TI_K3=y CONFIG_SOC_TI=y CONFIG_SPI=y CONFIG_DM_SPI=y @@ -149,6 +158,7 @@ CONFIG_CADENCE_QSPI=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_TI_SCI=y +CONFIG_DM_THERMAL=y CONFIG_TIMER=y CONFIG_SPL_TIMER=y CONFIG_OMAP_TIMER=y

Add bootph DT tags to enable OSPI in SPL. Set OSPI regs for R5 SPL to address OSPI's boot region.
Signed-off-by: Jonathan Humphreys j-humphreys@ti.com --- arch/arm/dts/k3-am642-evm-u-boot.dtsi | 24 ++++++++++++++++++++++++ arch/arm/dts/k3-am642-r5-evm.dts | 5 +++++ arch/arm/dts/k3-am642-r5-sk.dts | 5 +++++ arch/arm/dts/k3-am642-sk-u-boot.dtsi | 24 ++++++++++++++++++++++++ 4 files changed, 58 insertions(+)
diff --git a/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/arch/arm/dts/k3-am642-evm-u-boot.dtsi index b843078243..f7ab9f9a30 100644 --- a/arch/arm/dts/k3-am642-evm-u-boot.dtsi +++ b/arch/arm/dts/k3-am642-evm-u-boot.dtsi @@ -182,3 +182,27 @@ &cpsw_port2 { status = "disabled"; }; + +&ospi0_pins_default { + bootph-all; +}; + +&fss { + bootph-all; +}; + +&ospi0 { + bootph-all; + + flash@0 { + bootph-all; + + partitions { + bootph-all; + + partition@3fc0000 { + bootph-all; + }; + }; + }; +}; diff --git a/arch/arm/dts/k3-am642-r5-evm.dts b/arch/arm/dts/k3-am642-r5-evm.dts index 64b3c3af63..6825c07df3 100644 --- a/arch/arm/dts/k3-am642-r5-evm.dts +++ b/arch/arm/dts/k3-am642-r5-evm.dts @@ -120,3 +120,8 @@ /delete-property/ assigned-clock-parents; /delete-property/ power-domains; }; + +&ospi0 { + reg = <0x00 0x0fc40000 0x00 0x100>, + <0x00 0x60000000 0x00 0x8000000>; +}; diff --git a/arch/arm/dts/k3-am642-r5-sk.dts b/arch/arm/dts/k3-am642-r5-sk.dts index daa483a781..60d747ddd5 100644 --- a/arch/arm/dts/k3-am642-r5-sk.dts +++ b/arch/arm/dts/k3-am642-r5-sk.dts @@ -103,3 +103,8 @@ /delete-property/ assigned-clock-parents; /delete-property/ power-domains; }; + +&ospi0 { + reg = <0x00 0x0fc40000 0x00 0x100>, + <0x00 0x60000000 0x00 0x8000000>; +}; diff --git a/arch/arm/dts/k3-am642-sk-u-boot.dtsi b/arch/arm/dts/k3-am642-sk-u-boot.dtsi index 2eb227c1d0..cbf1cd9cb1 100644 --- a/arch/arm/dts/k3-am642-sk-u-boot.dtsi +++ b/arch/arm/dts/k3-am642-sk-u-boot.dtsi @@ -211,3 +211,27 @@ &serdes_refclk { bootph-all; }; + +&ospi0_pins_default { + bootph-all; +}; + +&fss { + bootph-all; +}; + +&ospi0 { + bootph-all; + + flash@0 { + bootph-all; + + partitions { + bootph-all; + + partition@3fc0000 { + bootph-all; + }; + }; + }; +};

On Thu, Feb 22, 2024 at 11:24:38PM -0600, Jonathan Humphreys wrote:
Add bootph DT tags to enable OSPI in SPL. Set OSPI regs for R5 SPL to address OSPI's boot region.
Signed-off-by: Jonathan Humphreys j-humphreys@ti.com
arch/arm/dts/k3-am642-evm-u-boot.dtsi | 24 ++++++++++++++++++++++++ arch/arm/dts/k3-am642-r5-evm.dts | 5 +++++ arch/arm/dts/k3-am642-r5-sk.dts | 5 +++++ arch/arm/dts/k3-am642-sk-u-boot.dtsi | 24 ++++++++++++++++++++++++ 4 files changed, 58 insertions(+)
diff --git a/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/arch/arm/dts/k3-am642-evm-u-boot.dtsi index b843078243..f7ab9f9a30 100644 --- a/arch/arm/dts/k3-am642-evm-u-boot.dtsi +++ b/arch/arm/dts/k3-am642-evm-u-boot.dtsi @@ -182,3 +182,27 @@ &cpsw_port2 { status = "disabled"; };
+&ospi0_pins_default {
- bootph-all;
+};
+&fss {
- bootph-all;
+};
+&ospi0 {
- bootph-all;
- flash@0 {
bootph-all;
partitions {
bootph-all;
partition@3fc0000 {
bootph-all;
};
};
- };
+};
Do we really need these tags on the partition table? And if so, do we need them in main U-Boot, or just SPL?

Tom Rini trini@konsulko.com writes:
On Thu, Feb 22, 2024 at 11:24:38PM -0600, Jonathan Humphreys wrote:
Add bootph DT tags to enable OSPI in SPL. Set OSPI regs for R5 SPL to address OSPI's boot region.
Signed-off-by: Jonathan Humphreys j-humphreys@ti.com
arch/arm/dts/k3-am642-evm-u-boot.dtsi | 24 ++++++++++++++++++++++++ arch/arm/dts/k3-am642-r5-evm.dts | 5 +++++ arch/arm/dts/k3-am642-r5-sk.dts | 5 +++++ arch/arm/dts/k3-am642-sk-u-boot.dtsi | 24 ++++++++++++++++++++++++ 4 files changed, 58 insertions(+)
diff --git a/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/arch/arm/dts/k3-am642-evm-u-boot.dtsi index b843078243..f7ab9f9a30 100644 --- a/arch/arm/dts/k3-am642-evm-u-boot.dtsi +++ b/arch/arm/dts/k3-am642-evm-u-boot.dtsi @@ -182,3 +182,27 @@ &cpsw_port2 { status = "disabled"; };
+&ospi0_pins_default {
- bootph-all;
+};
+&fss {
- bootph-all;
+};
+&ospi0 {
- bootph-all;
- flash@0 {
bootph-all;
partitions {
bootph-all;
partition@3fc0000 {
bootph-all;
};
};
- };
+};
Do we really need these tags on the partition table? And if so, do we need them in main U-Boot, or just SPL?
Tom, these are the OSPI phy calibration patterns. I added them as they are in the J721e u-boot.dtsi and both use the same OSPI interface.
However, I dug into this more and the upstream Cadence OSPI driver isn't calibrating the phys.
I will respin this series to remove the .dtsi nodes, and add a patch to the J721e series to remove it from there as well.
Thanks for catching.
-- Tom
participants (3)
-
Jon Humphreys
-
Jonathan Humphreys
-
Tom Rini