Rockchip Android修改uboot分区大小的方法

5 篇文章 27 订阅

Rockchip Android修改uboot分区大小的方法

本文适用于Rockchip平台RK3566/RK3568/RK3588

U-Boot固件

RK3566/RK3568/RK3588的uboot固件格式是FIT格式由SPL负责引导。

FIT 格式

U-Boot mainline支持的一种灵活性极高的固件格式。U-Boot、trust以及mcu等固件一起打包为 uboot.img。

uboot.img 的镜像文件的magic 为"d0 0d fe ed",用命令fdtdump uboot.img 可以查看固件头。

00000000  d0 0d fe ed 00 00 06 00  00 00 00 58 00 00 04 c4  |...........X....|
00000010  00 00 00 28 00 00 00 11  00 00 00 10 00 00 00 00  |...(............|

通常为了应对OTA升级过程断电等可能导致固件损坏的情况,uboot.img做了多备份打包。

固件单份大小打包份数
FIT uboot.img2MB2

从上述表格可知,uboot.img 的大小默认是4MB。

单份大小和份数的修改方法:

  • FIT 格式:更改配置参数:CONFIG_SPL_FIT_IMAGE_KB 和 CONFIG_SPL_FIT_IMAGE_MULTIPLE。分别表示单份大小(单位:KB)和打包份数。

具体代码修改如下:

  • 修改单份大小CONFIG_SPL_FIT_IMAGE_KB 为3MB
@sys2_206:~/4_Android12_29_sdk/u-boot$ git diff
diff --git a/configs/rk3568_defconfig b/configs/rk3568_defconfig
index d2742454eb..1de98e7373 100644
//RK3568/RK3566平台
--- a/configs/rk3568_defconfig
+++ b/configs/rk3568_defconfig
@@ -218,3 +218,4 @@ CONFIG_RK_AVB_LIBAVB_USER=y
 CONFIG_OPTEE_CLIENT=y
 CONFIG_OPTEE_V2=y
 CONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y
+CONFIG_SPL_FIT_IMAGE_KB=3072
diff --git a/configs/rk3588_defconfig b/configs/rk3588_defconfig
index 49b75d6ff6..70ecc9d983 100644
//RK3588/RK3588S平台
--- a/configs/rk3588_defconfig
+++ b/configs/rk3588_defconfig
@@ -224,3 +224,4 @@ CONFIG_RK_AVB_LIBAVB_USER=y
 CONFIG_OPTEE_CLIENT=y
 CONFIG_OPTEE_V2=y
 CONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y
+CONFIG_SPL_FIT_IMAGE_KB=3072
  • 更新spl文件
    以上修改后需要同步编译更新spl固件
@sys2_206:~/4_Android12_29_sdk/u-boot$ ./make.sh rk3568 --spl-new 

拷贝编译出来的spl/u-boot-spl.bin到rkbin目录更新对应的spl文件

@sys2_206:~/4_Android12_29_sdk/u-boot$ cp spl/u-boot-spl.bin ../rkbin/bin/rk35/rk356x_spl_v1.12.bin

注意:每次同步RK的代码后都需要重新编译一次spl,避免被覆盖

uboot单份大小不够编译时会有如下报错:

********boot_merger ver 1.2********
Info:Pack loader ok.
pack loader okay! Input: /home2/liupingzhang/rk3566/RK3566_Android11.0_SDK_V1.1.1_Linux/rkbin/RKBOOT/RK3566MINIALL.ini
/home2/liupingzhang/rk3566/RK3566_Android11.0_SDK_V1.1.1_Linux/u-boot
ERROR: pack uboot.img failed! fit/uboot.itb actual: 2171904 bytes, max limit: 2097152 bytes
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loitawu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值