完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试使用 csf 文件一起签署 u-boot 和内核映像以及 dtb 文件。
所以 u-boot 签名已经完成并且可以正常工作,除了收到一个警告。但是在内核签名时我收到如下错误。 > hab_auth_img 0x12000000 0x933348 hab 保险丝未启用 验证来自 DDR 位置 0x12000000 的图像... 坏魔法魔法=0x0 长度=0xa000 版本=0xe1 坏长度魔法=0x0 长度=0xa000 版本=0xe1 坏版本魔法=0x0 长度=0xa000 版本=0xe1 错误:无效的 IVT 结构 允许的 IVT 结构: IVT HDR = 0x4X2000D1 IVT ENTRY = 0xXXXXXXXX IVT RSV1 = 0x0 IVT DCD = 0x0 IVT BOOT_DATA = 0xXXXXXXXX IVT SELF = 0xXXXXXXXX IVT CSF = 0xXXXXXXXX IVT RSV2 = 0x0 MX6 HORIZON U-Boot > 这里我的内核 vmlinuz 大小是 hexdump -C vmlinuz-5.10.158-cip22+mel2 | 尾-n 1 00932348 所以我把它填充到 0x1000 并成功了 ##objcopy -I binary -O binary --pad-to 0x933348 --gap-fill=0x00 vmlinuz-5.10.158-cip22+mel2 vmlinuz_pad.bin 然后使用 genivt.pl 创建 ivt 下面是我的内容 #!/usr/bin/perl -w 使用严格; open(my $out, '>:raw', 'ivt.bin') or die "Unable to open: $!"; 打印 $out pack("V", 0x412000D1); # 签名 打印 $out pack("V", 0x12000000); # 加载地址 (*load_address) print $out pack("V", 0x0); # 保留 打印 $out pack("V", 0x0); # DCD 指针 打印 $out pack("V", 0x0); # 引导数据 #print $out pack("V", 0x80EEA000); # 自指针 (*ivt) 打印 $out pack("V", 0x12933348); # 自指针 (*ivt) 打印 $out pack("V", 0x12933368); # CSF 指针 (*csf) 打印 $out pack("V", 0x0); # 预留 close($out); 自指针 (ivt) 计算为加载地址 + padded_image_size(vmlinuxz) CSF 指针计算为加载地址 + padded_img_size + 0x20 然后在cmd下面使用 cat zImage_pad.bin ivt.bin > zImage_pad_ivt.bin 下面是我的csf-uboot-txt认证数据内容。 [Authenticate Data] # 用于验证图像数据的密钥槽索引 Verification index = 2 # Authenticate Start Address, Offset, Length and file # Blocks = 0x877ff400 0x00000000 0x0009ec00 "u-boot-dtb.imx" Blocks = 0x177ff400 0x00 0x00092c00 "u -boot-dtb.imx", 0x12000000 0x00 0x00932348 "vmlinuz_pad_ivt.bin" ./cst --i csf_additional_images.txt --o csf_zImage.bin将 CSF 二进制文件附加到图像的末尾: $ cat zImage_pad_ivt.bin csf_zImage.bin > zImage_signed.bin 我正在加载内核映像,如下所示。 U-Boot > load mmc 3:1 0x12000000 /boot/zImage_uboot-signed.bin 9650864 字节读取时间为 298 ms (30.9 MiB/s) MX6 HORIZON U-Boot >U-Boot > hab_auth_img 0x12000000 0x933348 hab 保险丝未启用 验证来自 DDR 位置 0x12000000 的图像... 坏魔法魔法=0x0 长度=0xa000 版本=0xe1 坏长度魔法=0x0 长度=0xa000 版本=0xe1 坏版本魔法=0x0 长度=0xa000 版本=0xe1 错误:无效的 IVT 结构 允许的 IVT 结构: IVT HDR = 0x4X2000D1 IVT ENTRY = 0xXXXXXXXX IVT RSV1 = 0x0 IVT DCD = 0x0 IVT BOOT_DATA = 0xXXXXXXXX IVT SELF = 0xXXXXXXXX IVT CSF = 0xXXXXXXXX IVT RSV2 = 0x0 MX6 HORIZON U-Boot > 有人可以检查这个问题吗,任何输入都是可观的。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36419 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4849 浏览 1 评论
6106 浏览 1 评论
6816 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4247 浏览 0 评论
644浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
640浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
642浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
728浏览 2评论
843浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:01 , Processed in 1.434239 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号