NXP MCU 技术william hill官网
直播中

吕钢格

7年用户 970经验值
私信 关注
[问答]

LS1043ARDB怎么才做才能安全启动Yocto?

目标: 通过安全启动调出库存图像
硬件:  LS1043ARDB
图片 : LS1043ARDB 图片
构建工具: Yocto
详细信息: 我已经能够通过执行以下操作成功安全地启动引导加载程序:

  • 按照 LDSDUG 第 5.4 节中的说明为 Yocto 创建安全启动映像固件
  • 将安全启动固件写入块 8 上的 SD
  • 将 SD卡划分为 4 个分区(分区 2 为 boot,分区 4 为 root)
  • 将引导脚本、secboot_hdrs、设备树和内核 (.bin) 映像放在分区 2 中
  • 将 SD 放到开发板上并运行
  • 通过 CCS 写入 OTPK 和 SRKH 寄存器
  • 退出推迟
结果:引导加载程序出现,检测到引导脚本但无法验证引导脚本(错误 4)。实际输出见下图:
注意:板载固定 DDR
注意:2 GB DDR4,32 位,CL=11,ECC 关闭
注意:BL2:v1.5(发布):LSDK-20.04-update-290520
注意:BL2:内置:2020 年 5 月 18 日 13:52:31
注意:初始化 SEC
注意:正在验证 RSA
注意:正在验证哈希
注意:正在验证 RSA注意:
正在验证哈希
注意:BL31:v1.5(发布):LSDK-20.04-update-290520
注意:BL31:内置:5 月 13:52:31 18 2020
通知:欢迎来到 LS1043 BL31 Phase
U-Boot 2019.10+fsl+g1e55b2f9e7(2020 年 5 月 26 日 - 06:54:57 +0000)
SoC:LS1043AE Rev1.1 (0x87920011)
时钟配置:
CPU0(A53):1600 MHz CPU1(A53):1600 MHz CPU2(A53):1600 MHz
CPU3(A53):1600 MHz
总线:400 MHz DDR:1600 MT/s FMAN:500 MHz
复位配置字 (RCW):
00000000:08100010 0a000000 00000000 00000000
00000010:14550002 80004012 60640000 c1002000
000000020:00000000 00038800 00000030
: 00000000 00001100 00000096 00000001
型号:LS1043A RDB Board Board
:LS1043ARDB,从SD
CPLD启动:V2 .0
PCBA:V6.0
SERDES 参考时钟:
SD1_CLK1 = 156.25MHZ,SD1_CLK2 = 100.00MHZ
DRAM:1.9 GiB(DDR4、32 位、CL=11、ECC 关闭)
使用 SERDES1 协议:5205 (0x1455)
SEC0:RNG 实例化
FSL_SDHC:0
MMC 读取:dev # 0,block # 18944,计数 128 ...
Firmware 'Microcode version 0.0.1 for LS1021a r1.0' for 1021 V1.0
QE: uploading microcode 'Microcode for LS1021a r1.0' version 0.0.1
Flash: 128 MiB
NAND: 512 MiB
MMC: EEPROM: NXID v1
In: serial
Out: serial
Err: serial
Net:
MMC read: dev # 0, block # 18432, count 128 ...
Fman1: 上传微码版本 106.4.18
PHY重置超时
PCIe0:pcie@3400000 已禁用
PCIe1:pcie@3500000 根联合体:无链接
PCIe2:pcie@3600000 根联合体:无链接
FM1@DTSEC1、FM1@DTSEC2、FM1@DTSEC3 [PRIME]、FM1@DTSEC4、FM1@ DTSEC5、FM1@DTSEC6、FM1@TGEC1
切换到分区#0,OK
mmc0 是当前设备
正在扫描 mmc 0:1...
正在扫描 mmc 0:2...
找到 U-Boot 脚本/ls1043ardb_boot.scr
在 12 毫秒 (78.1 KiB/s) 内读取 965 字节
错误 :: 4 :: 错误的 barker 代码在标题
SEC_MON 状态转换为软故障。
SEC_MON 状态转换为非安全。
正在生成重置请求
重置...
我对三件事感到困惑:

  • 如 LSDK 内存布局中所述,我将安全启动标头放在分区 2 中。这足以让安全启动过程验证启动脚本吗?
  • LSDK 内存布局还指出 0x3000 是放置安全引导标头的位置。如何在此处放置安全启动标头?我是否需要将所有安全启动标头连接成一个二进制文件?如果是,顺序是什么?还是顺序无关紧要?
  • 是否需要额外的步骤来签署我缺少的引导脚本?

更多回帖

发帖
×
20
完善资料,
赚取积分