问题描述
客户发现在安全启动时,如果uboot中校验linux、rootfs失败,会进入uboot控制台,不符合他们的安全要求。
他们希望校验失败重启或停止运行。
问题分析
默认情况下,Tina安全启动中:
- 如果brom校验toc0(sboot)失败,会跳fel烧写;
- 如果sboot校验toc1(bl31/optee/uboot等)失败,会跳fel烧写;
- 如果uboot校验linux、rootfs失败,会进入uboot控制台。
可以根据不同客户的安全需求进行定制。
解决办法
参考下面补丁修改tina/lichee/brandy-2.0/u-boot-2018/cmd/bootm.c文件
代码语言:javascript复制diff --git a/cmd/bootm.c b/cmd/bootm.c
index 0a267b4251..887c1f0a79 100644
--- a/cmd/bootm.c
b/cmd/bootm.c
@@ -248,13 248,17 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
full = 0;
}
if (sunxi_verify_partion(&verify_pattern, rootfs_name, "rootfs", full) != 0) {
- return -1;
gd->debug_mode = 8;
printf("sunxi verify rootfs fail, rebootn");
reset_cpu(0);
}
#endif /*CONFIG_SUNXI_PART_VERIFY*/
if (sunxi_verify_os(os_load_addr,
env_get("boot_from_partion")) != 0) {
- return -1;
gd->debug_mode = 8;
printf("sunxi verify linux kernel fail, rebootn");
reset_cpu(0);
}
}
#endif /*CONFIG_SUNXI_SECURE_BOOT*/
原贴链接:https://bbs.aw-ol.com/topic/670/