Rockchip RK3588 SD卡启动
RK3588的BOOTROM 流程
RK3588 内部都有集成一个 BOOTROM,系统上电时先会运行 BOOTROM 代码,然后 BOOTROM 代码会探测外设存储器并加载 Loader 代码。
RK3588的bootrom支持从如下接口启动系统
- SPI interface
- eMMC interface
- SD/MMC interface
BOOTROM 探测外设存储器的顺序不同,具体顺序如下,从左到右:
因为SD card是最后探测的,所以在SD card启动的时候eEMMC或者SPI NOR中不能有固件
软件修改
- kernel
dts里面的sdmmc节点下加入supports-emmc;
字段,此配置标识此插槽为 emmc 功能,为必须添加项。否则无法初始化 emmc 外设。
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-evb1-lp4x.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-evb1-lp4x.dtsi
index 5a93b3fa949c0..dd3a5aab7853b 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-evb1-lp4x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-evb1-lp4x.dtsi
@@ -647,6 +647,7 @@
};
&sdmmc {
+ supports-emmc;
status = "okay";
};
- Android
在device下面的配置PRODUCT_BOOT_DEVICE,增加sdmmc的节点fe2c0000.mmc,不同芯片平台这个节点不一样,可以在芯片的dtsi里面查看
@sys2_206:~/4_Android12_29_sdk$ cd device/rockchip/rk3588/
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 71d04b0..525bf1a 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -25,7 +25,7 @@ PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig pcie_wifi.config
#BOARD_AVB_ENABLE := true
# used for fstab_generator, sdmmc controller address
-PRODUCT_BOOT_DEVICE := fe2e0000.mmc
+PRODUCT_BOOT_DEVICE := fe2e0000.mmc,fe2c0000.mmc
改完编译update.img
制作SD卡启动卡
- SD卡要用高速的卡
- 工具:瑞芯微创建省级磁盘工具
- 工具版本:V1.69
- 工具地址在SDK的如下路径:
RKTools\windows\SDDiskTool_v1.69.zip
制作过程按下图说明操作
制作成功后将SD卡插入RK3588的机器上开机启动即可