前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全志R329Tina安全启动校验linux/rootfs失败直接重启如何解决?

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

作者头像
阿志小管家
发布2024-02-02 15:42:52
1080
发布2024-02-02 15:42:52
举报

问题描述

客户发现在安全启动时,如果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, reboot\n");
+                       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, reboot\n");
+                       reset_cpu(0);
                }
        }
 #endif /*CONFIG_SUNXI_SECURE_BOOT*/

原贴链接:https://bbs.aw-ol.com/topic/670/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档