From: Jonas Karlman <jonas@kwiboo.se>
To: Kever Yang <kever.yang@rock-chips.com>,
Simon Glass <sjg@chromium.org>,
Philipp Tomsich <philipp.tomsich@vrull.eu>,
Akash Gajjar <gajjar04akash@gmail.com>
Cc: u-boot@lists.denx.de, Jonas Karlman <jonas@kwiboo.se>
Subject: [PATCH 08/14] rockchip: rk3568-rock-3a: Enable boot from SPI NOR flash
Date: Sat, 22 Apr 2023 01:23:19 +0000 (UTC) [thread overview]
Message-ID: <20230422012309.402799-9-jonas@kwiboo.se> (raw)
In-Reply-To: <20230422012309.402799-1-jonas@kwiboo.se>
Add sfc and flash node to device tree and config options to enable
support for booting from SPI NOR flash on Radxa ROCK 3 Model A.
Unlike prior generation SoCs the BootRom in RK3568 can read all data and
look for idbloader at 0x8000, same as on SD and eMMC.
Use the rksd format and modify the mkimage offset to generate a bootable
u-boot-rockchip-spi.bin that can be written to 0x0 of SPI NOR flash. The
FIT image is loaded from 0x60000.
=> sf probe
SF: Detected mx25u12835f with page size 256 Bytes, erase size 4 KiB, total 16 MiB
=> load mmc 1:1 10000000 u-boot-rockchip-spi.bin
1384448 bytes read in 119 ms (11.1 MiB/s)
=> sf update $fileaddr 0 $filesize
device 0 offset 0x0, size 0x152000
1179648 bytes written, 204800 bytes skipped in 9.901s, speed 143185 B/s
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
arch/arm/dts/rk3568-rock-3a-u-boot.dtsi | 25 +++++++++++++++++++++++++
arch/arm/dts/rk356x-u-boot.dtsi | 11 +++++++++++
configs/rock-3a-rk3568_defconfig | 10 ++++++++++
3 files changed, 46 insertions(+)
diff --git a/arch/arm/dts/rk3568-rock-3a-u-boot.dtsi b/arch/arm/dts/rk3568-rock-3a-u-boot.dtsi
index b2af3b1dbed6..7cd2dc80c317 100644
--- a/arch/arm/dts/rk3568-rock-3a-u-boot.dtsi
+++ b/arch/arm/dts/rk3568-rock-3a-u-boot.dtsi
@@ -7,6 +7,10 @@
#include "rk356x-u-boot.dtsi"
/ {
+ aliases {
+ spi0 = &sfc;
+ };
+
chosen {
stdout-path = &uart2;
u-boot,spl-boot-order = "same-as-spl", &sdmmc0, &sdhci;
@@ -33,6 +37,10 @@
bootph-pre-ram;
};
+&fspi_pins {
+ bootph-pre-ram;
+};
+
&sdmmc0_bus4 {
bootph-pre-ram;
};
@@ -65,6 +73,23 @@
bootph-pre-ram;
};
+&sfc {
+ bootph-pre-ram;
+ u-boot,spl-sfc-no-dma;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ flash@0 {
+ bootph-pre-ram;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <24000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <1>;
+ };
+};
+
&sdhci {
cap-mmc-highspeed;
mmc-ddr-1_8v;
diff --git a/arch/arm/dts/rk356x-u-boot.dtsi b/arch/arm/dts/rk356x-u-boot.dtsi
index a1c2d03c52f0..c340c2bba6ff 100644
--- a/arch/arm/dts/rk356x-u-boot.dtsi
+++ b/arch/arm/dts/rk356x-u-boot.dtsi
@@ -68,3 +68,14 @@
bootph-pre-ram;
status = "okay";
};
+
+#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
+&binman {
+ simple-bin-spi {
+ mkimage {
+ args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
+ offset = <0x8000>;
+ };
+ };
+};
+#endif
diff --git a/configs/rock-3a-rk3568_defconfig b/configs/rock-3a-rk3568_defconfig
index 2e556dc2c1a2..64864a300153 100644
--- a/configs/rock-3a-rk3568_defconfig
+++ b/configs/rock-3a-rk3568_defconfig
@@ -8,15 +8,20 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000
+CONFIG_SF_DEFAULT_SPEED=24000000
+CONFIG_SF_DEFAULT_MODE=0x2000
CONFIG_DEFAULT_DEVICE_TREE="rk3568-rock-3a"
CONFIG_ROCKCHIP_RK3568=y
CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+CONFIG_ROCKCHIP_SPI_IMAGE=y
CONFIG_SPL_SERIAL=y
CONFIG_SPL_STACK_R_ADDR=0x600000
CONFIG_TARGET_EVB_RK3568=y
CONFIG_SPL_STACK=0x400000
CONFIG_DEBUG_UART_BASE=0xFE660000
CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SPL_SPI_FLASH_SUPPORT=y
+CONFIG_SPL_SPI=y
CONFIG_SYS_LOAD_ADDR=0xc00800
CONFIG_DEBUG_UART=y
CONFIG_FIT=y
@@ -34,6 +39,8 @@ CONFIG_SPL_BSS_MAX_SIZE=0x4000
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
CONFIG_SPL_STACK_R=y
+CONFIG_SPL_SPI_LOAD=y
+CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000
CONFIG_SPL_ATF=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_GPT=y
@@ -59,6 +66,8 @@ CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_XTX=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_GMAC_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
@@ -72,6 +81,7 @@ CONFIG_SPL_RAM=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_SYS_NS16550_MEM32=y
+CONFIG_ROCKCHIP_SFC=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
--
2.40.0
next prev parent reply other threads:[~2023-04-22 1:25 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-22 1:23 [PATCH 00/14] rockchip: rk35xx: Update defconfigs and enable boot from SPI NOR flash Jonas Karlman
2023-04-22 1:23 ` [PATCH 01/14] spi: rockchip_sfc: Use linux rockchip,sfc-no-dma prop Jonas Karlman
2023-05-06 9:47 ` Kever Yang
2023-04-22 1:23 ` [PATCH 02/14] rockchip: rk356x-u-boot: Add xin24m clock node to SPL Jonas Karlman
2023-05-06 9:47 ` Kever Yang
2023-04-22 1:23 ` [PATCH 03/14] rockchip: rk3566-radxa-cm3-io: Update defconfig Jonas Karlman
2023-05-06 9:47 ` Kever Yang
2023-04-22 1:23 ` [PATCH 04/14] rockchip: rk3566-radxa-cm3-io: Use pinctrl for sdmmc and sdhci in SPL Jonas Karlman
2023-05-06 9:47 ` Kever Yang
2023-04-22 1:23 ` [PATCH 05/14] rockchip: rk3568-evb: Update defconfig Jonas Karlman
2023-05-09 11:01 ` Kever Yang
2023-04-22 1:23 ` [PATCH 06/14] rockchip: rk3568-rock-3a: " Jonas Karlman
2023-05-09 11:02 ` Kever Yang
2023-04-22 1:23 ` [PATCH 07/14] rockchip: rk3568-rock-3a: Use pinctrl for sdmmc and sdhci in SPL Jonas Karlman
2023-05-09 11:02 ` Kever Yang
2023-04-22 1:23 ` Jonas Karlman [this message]
2023-05-09 11:02 ` [PATCH 08/14] rockchip: rk3568-rock-3a: Enable boot from SPI NOR flash Kever Yang
2023-04-22 1:23 ` [PATCH 10/14] rockchip: rk3588-evb: Update defconfig Jonas Karlman
2023-05-09 11:15 ` Kever Yang
2023-04-22 1:23 ` [PATCH 09/14] rockchip: rk3588: Select DM_RESET and DM_REGULATOR_FIXED in arch Kconfig Jonas Karlman
2023-05-09 11:03 ` Kever Yang
2023-04-22 1:23 ` [PATCH 11/14] rockchip: rk3588-rock-5b: Update defconfig Jonas Karlman
2023-05-09 11:16 ` Kever Yang
2023-04-22 1:23 ` [PATCH 12/14] rockchip: rk3588-rock-5b: Add bootph prop to pinctrl for uart2 and sdhci Jonas Karlman
2023-05-09 11:16 ` Kever Yang
2023-04-22 1:23 ` [PATCH 13/14] rockchip: rk3588-rock-5b: Enable boot from SPI NOR flash Jonas Karlman
2023-05-09 11:16 ` Kever Yang
2023-05-16 15:06 ` Eugen Hristev
2023-05-16 17:38 ` Jonas Karlman
2023-05-16 19:13 ` Eugen Hristev
2023-05-16 21:56 ` Jonas Karlman
2023-04-22 1:23 ` [PATCH 14/14] Revert "arm: dts: rockchip: radxa-cm3-io, rock-3a: enable regulators for usb" Jonas Karlman
2023-05-09 11:17 ` Kever Yang
2023-05-09 13:24 ` [PATCH 00/14] rockchip: rk35xx: Update defconfigs and enable boot from SPI NOR flash Kever Yang
2023-05-09 14:40 ` Jonas Karlman
2023-05-10 6:48 ` Jonas Karlman
2023-05-17 2:20 ` Kever Yang
2023-05-17 9:24 ` Eugen Hristev
2023-05-10 11:45 ` Kever Yang
2023-05-15 9:44 ` Eugen Hristev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230422012309.402799-9-jonas@kwiboo.se \
--to=jonas@kwiboo.se \
--cc=gajjar04akash@gmail.com \
--cc=kever.yang@rock-chips.com \
--cc=philipp.tomsich@vrull.eu \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox