Hi Jonas,
On 2/17/24 01:22, Jonas Karlman wrote:
Similar to RK35xx the BootRom in RK3328 can read all data and look for
idbloader at 0x8000, same as it does for 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.
Signed-off-by: Jonas Karlman <jo...@kwiboo.se>
---
v2:
- No change
---
arch/arm/dts/rk3328-u-boot.dtsi | 11 +++++++++++
arch/arm/mach-rockchip/rk3328/rk3328.c | 1 +
2 files changed, 12 insertions(+)
diff --git a/arch/arm/dts/rk3328-u-boot.dtsi b/arch/arm/dts/rk3328-u-boot.dtsi
index a030f1a5e51d..4d43fe2fb51a 100644
--- a/arch/arm/dts/rk3328-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-u-boot.dtsi
@@ -133,3 +133,14 @@
&usb20_otg {
hnp-srp-disable;
};
+
+#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
+&binman {
+ simple-bin-spi {
+ mkimage {
+ args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
+ offset = <0x8000>;
+ };
+ };
+};
+#endif
Do we have a list of SoCs that need to use rkspi type for booting from
SPI flashes? I would much rather have rksd the default in
rockchip-u-boot.dtsi instead of having to add it for each and every SoC
which is not impacted by this change (which I assume should be now all
new SoCs?).
I could also imagine a Kconfig symbol just for that, one that would NOT
appear in menuconfig because it makes no sense to make it selectable (I
think this can be achieved without a prompt?), e.g. (not tested):
"""
config ROCKCHIP_SPI_IMAGE_TYPE
string
depends on ROCKCHIP_SPI_IMAGE
default "rksd"
default "rkspi" if ROCKCHIP_RK3399
help
The type passed to mkimage to generate a TPL+SPL image bootable
from SPI flash on Rockchip SoCs.
"""
and then have
"""
args = "-n", CONFIG_SYS_SOC, "-T", CONFIG_ROCKCHIP_SPI_IMAGE_TYPE;
"""
in rockchip-u-boot.dtsi instead?
I've missed those changes for other SoCs but did you explain why the SPI
image is expected to start at offset 0x8000? We don't have that in
rockchip-u-boot.dtsi by default, so offset 0 I assume.
Cheers,
Quentin