全志R329Tina安全启动校验linux/rootfs失败直接重启如何解决?

2024-02-02 15:42:52 浏览数 (1)

问题描述

客户发现在安全启动时,如果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/

0 人点赞