This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
但我无法 从 SD 映像中找到 sysfw.itb 文件。
sysfw.itb 是用于在 TDA4VH 平台上引导 eMMC 的必须文件或不是该文件? 在何处查找 sysfw.itb?
我在预编译的映像路径下也没有找到 sysfw.itb: /ti-processor-sdk-linux-j784s4-evm-08_06_01_02/board-support/prebuilt-images
您好
TDA4VH 使用组合的引导流程,其中 tifs + bootloader 被组合在一起。
ROM 将同时加载 tifs 和引导加载程序。
这就是在传统引导流程中使用 sysfe.itb 的原因。
此致
迪瓦卡尔
您好!
这意味着 TDA4VH 上没有单独的 sysfw.itb 文件? 它已经集成到 tiboot3.bin 或一些其他引导文件中。
在 TDA4VH 上、只需加载 tiboot3.bin、 tispl.bin 和 u-boot.img 文件?
另一个问题是 、在我们的产品中、我们需要 USB 和 eMMC 引导;对于 USB 引导、我在 TI 网站中找到了一个链接:
Q1:为何需要重建 u-boot 并编译 MLO/u-boot 二进制文件? 是否无法使用路径/ti-processor-sdk-linux-j784s4-evm-08_06_01_02/board-support/prebuilt-images 下的默认重新编译消息?
从 TI 链接、没有将 MLO 下载到电路板、为什么需要构建 MLO 二进制文件?
Q2:在何处下载 SDK、以重建 u-boot 和 MLO 二进制文件? 以及如何构建
Q3:SW3在哪里? 也不能找到哪个 USB 端口是 USB 端口、
J784S4 EVM 上的 USB 外设引导模式(SPL-DFU 引导模式)
您好
这意味着 TDA4VH 上没有单独的 sysfw.itb 文件? 它已经集成到 tiboot3.bin 或一些其他引导文件中。
[/报价]是的、它将与引导加载程序(tiboot3.bin)结合使用
[/quote][/quote][/quote][/quote]在 TDA4VH 上、只需加载 tiboot3.bin、 tispl.bin 和 u-boot.img 文件?
[/报价]是的、正确。
[/quote][/quote][/quote]Q1:为何需要重建 u-boot 并编译 MLO/u-boot 二进制文件? 是否无法使用路径/ti-processor-sdk-linux-j784s4-evm-08_06_01_02/board-support/prebuilt-images 下的默认重新编译消息?
从 TI 链接、没有将 MLO 下载到电路板、为什么需要构建 MLO 二进制文件?
[/报价]在这里 MLO/uboot 互换使用、 默认情况下、在 TI EVM 上 、DFU 模式已启用、但如果客户使用自己的 defcong 作为其定制板、那么在这种情况下 、他们需要按照上述文档中提到的说明启用此功能。
[/quote][/quote]Q2:在何处下载 SDK、以重建 u-boot 和 MLO 二进制文件? 以及如何构建
[/报价]它还包含 uBoot 源代码。
[/quote]Q3:SW3在哪里? 也不能找到哪个 USB 端口是 USB 端口、
[/报价]
此致
迪瓦卡尔
您好、Diwakar、
我按照指南在 TDA4VH EVM 电路板上尝试了 eMMC 引导流程。
完成对 eMMC 卡的写入并切换到 eMMC 引导后、 系统无法启动。
这里是我的开关设置:SW7[1:8]: 0100 0000 (SW7.2=1)、SW11[1:8]: 1000 0000 (SW11.1 = 1)
似乎分区有一些错误,你能给我一些建议来修复这个缺陷.
=>MMC 部件
MMC 设备0的分区映射--分区类型:EFI
GUID 分区表标头签名错误:0x32472641DEEE9E91!= 0x5452415020494645
find_value_gpt:***错误:无效 gpt***
GUID 分区表标头签名错误:0x0!= 0x5452415020494645
find_value_gpt:***错误:备份 gpt***无效
=> fatls MMC 0:1
**无法识别的文件系统类型**
以下是完整的下载日志:
U-Boot SPL 2021.01-g62a9e51344 (May 02 2023 - 21:12:41 +0000) ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara') SPL initial stack usage: 13472 bytes Trying to boot from MMC2 Starting ATF on ARM64 core... NOTICE: BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty NOTICE: BL31: Built : 21:12:26, May 2 2023 I/TC: I/TC: OP-TEE version: 3.20.0 (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 Tue May 2 21:12:33 UTC 2023 aarch64 I/TC: WARNING: This OP-TEE configuration might be insecure! I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html I/TC: Primary CPU initializing I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara') I/TC: HUK Initialized I/TC: Activated SA2UL device I/TC: Fixing SA2UL firewall owner for GP device I/TC: Enabled firewalls for SA2UL TRNG device I/TC: SA2UL TRNG initialized I/TC: SA2UL Drivers initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2021.01-g62a9e51344 (May 02 2023 - 21:12:53 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara') Trying to boot from MMC2 U-Boot 2021.01-g62a9e51344 (May 02 2023 - 21:12:53 +0000) SoC: J784S4 SR1.0 GP Model: Texas Instruments J784S4 EVM Board: J784S4X-EVM rev E3 DRAM: 32 GiB idle-statesFlash: 0 Bytes MMC: mmc@4f80000: 0, mmc@4fb0000: 1 Loading Environment from MMC... OK In: serial@2880000 Out: serial@2880000 Err: serial@2880000 am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000 Unidentified board claims J784S4X-EVM in eeprom header Net: eth0: ethernet@46000000port@1 Hit any key to stop autoboot: 0 => mmc list mmc@4f80000: 0 (eMMC) mmc@4fb0000: 1 => mmc dev 0 switch to partitions #0, OK mmc0(part 0) is current device => mmc part Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00000022 0x03b47fde "rootfs" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 30b2b13c-e2be-47a3-98ae-e0dd95401e4c => fatls mmc 0:1 ** Unrecognized filesystem type ** => printenv partitions partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs} => printenv uuid_gpt_disk uuid_gpt_disk=e9650bf8-064b-41a9-b3bd-aa71be8413d2 => printenv uuid_gpt_rootfs uuid_gpt_rootfs=30b2b13c-e2be-47a3-98ae-e0dd95401e4c => mmc dev 0 1 switch to partitions #1, OK mmc0(part 1) is current device => fatload mmc 1 ${loadaddr} tiboot3.bin 480294 bytes read in 30 ms (15.3 MiB/s) => mmc write ${loadaddr} 0x0 0x400 MMC write: dev # 0, block # 0, count 1024 ... 1024 blocks written: OK => fatload mmc 1 ${loadaddr} tispl.bin 992992 bytes read in 54 ms (17.5 MiB/s) => mmc write ${loadaddr} 0x400 0x1000 MMC write: dev # 0, block # 1024, count 4096 ... 4096 blocks written: OK => fatload mmc 1 ${loadaddr} u-boot.img 1191548 bytes read in 64 ms (17.8 MiB/s) => mmc write ${loadaddr} 0x1400 0x2000 MMC write: dev # 0, block # 5120, count 8192 ... 8192 blocks written: OK => mmc part Partition Map for MMC device 0 -- Partition Type: EFI GUID Partition Table Header signature is wrong: 0x32472641DEEE9E91 != 0x5452415020494645 find_valid_gpt: *** ERROR: Invalid GPT *** GUID Partition Table Header signature is wrong: 0x0 != 0x5452415020494645 find_valid_gpt: *** ERROR: Invalid Backup GPT *** => fatls mmc 0:1 ** Unrecognized filesystem type ** =>
您好
感谢您联系我们将在两周内回复此话题。
此致
迪瓦卡尔
您好
正如日志清楚地表明您未正确创建分区。
MMC 设备0的分区映射--分区类型:EFI
GUID 分区表标头签名错误:0x32472641DEEE9E91!= 0x5452415020494645
find_value_gpt:***错误:无效 gpt***
GUID 分区表标头签名错误:0x0!= 0x5452415020494645
find_value_gpt:***错误:备份 gpt***无效
=> fatls MMC 0:1
**无法识别的文件系统类型**
我建议 您查看此应用手册、
https://www.ti.com/lit/an/spracy5/spracy5.pdf?ts = 1695999126689&ref_url=https%253A%252F%252Fwww.google.com%252F
此致
您好、 Diwakar
感谢您的评论、我阅读了闪存文档并重试、但仍然无法从 eMMC 启动、这是我的完整日志。
请帮助重新检查。
U-Boot SPL 2021.01-g62a9e51344 (May 02 2023 - 21:12:41 +0000) ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 ti_i2c_eeprom_am6_get: Ignoring record id 255 SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara') SPL initial stack usage: 13472 bytes Trying to boot from MMC2 Starting ATF on ARM64 core... NOTICE: BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty NOTICE: BL31: Built : 21:12:26, May 2 2023 I/TC: I/TC: OP-TEE version: 3.20.0 (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 Tue May 2 21:12:33 UTC 2023 aarch64 I/TC: WARNING: This OP-TEE configuration might be insecure! I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html I/TC: Primary CPU initializing I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara') I/TC: HUK Initialized I/TC: Activated SA2UL device I/TC: Fixing SA2UL firewall owner for GP device I/TC: Enabled firewalls for SA2UL TRNG device I/TC: SA2UL TRNG initialized I/TC: SA2UL Drivers initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2021.01-g62a9e51344 (May 02 2023 - 21:12:53 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--1-g2249f (Chill Capybara') Trying to boot from MMC2 U-Boot 2021.01-g62a9e51344 (May 02 2023 - 21:12:53 +0000) SoC: J784S4 SR1.0 GP Model: Texas Instruments J784S4 EVM Board: J784S4X-EVM rev E2 DRAM: 32 GiB idle-statesFlash: 0 Bytes MMC: mmc@4f80000: 0, mmc@4fb0000: 1 Loading Environment from MMC... OK In: serial@2880000 Out: serial@2880000 Err: serial@2880000 am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 P orts:1 mdio_freq:1000000 Unidentified board claims J784S4X-EVM in eeprom header Net: eth0: ethernet@46000000port@1 Hit any key to stop autoboot: 0 => mmc list mmc@4f80000: 0 (eMMC) mmc@4fb0000: 1 => printenv mmcdev mmcdev=1 => setenv mmcdev 0 => mmc dev 0 switch to partitions #0, OK mmc0(part 0) is current device => mmc part Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00000022 0x03b47fde "rootfs" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: e2b6b38b-59eb-4c15-8dd7-3b2c97a80192 => printenv partitions partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs} => printenv uuid_gpt_disk ## Error: "uuid_gpt_disk" not defined => setenv uuid_gpt_disk 211482b6-7c4e-4c15-9403-34cac2d5d81f => setenv uuid_gpt_rootfs e2b6b38b-59eb-4c15-8dd7-3b2c97a80192 => gpt write mmc 0 ${partitions} Writing GPT: success! => mmc dev 0 1 switch to partitions #1, OK mmc0(part 1) is current device => setenv loadaddr 0x92000000 => fatload mmc 1 ${loadaddr} tiboot3.bin 480294 bytes read in 30 ms (15.3 MiB/s) => mmc write ${loadaddr} 0x0 0x400 MMC write: dev # 0, block # 0, count 1024 ... 1024 blocks written: OK => fatload mmc 1 ${loadaddr} tispl.bin 992992 bytes read in 55 ms (17.2 MiB/s) => mmc write ${loadaddr} 0x400 0x1000 MMC write: dev # 0, block # 1024, count 4096 ... 4096 blocks written: OK => fatload mmc 1 ${loadaddr} u-boot.img 1191548 bytes read in 63 ms (18 MiB/s) => mmc write ${loadaddr} 0x1400 0x2000 MMC write: dev # 0, block # 5120, count 8192 ... 8192 blocks written: OK => mmc partconf 0 1 1 1 => mmc bootbus 0 2 0 0 => saveenv Saving Environment to MMC... Writing to MMC(0)... OK => mmc dev switch to partitions #0, OK mmc0(part 0) is current device => mmc part Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00000022 0x03b47fde "rootfs" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: e2b6b38b-59eb-4c15-8dd7-3b2c97a80192 => fatls mmc 0:1 ** Unrecognized filesystem type ** => mmc dev 1 switch to partitions #0, OK mmc1 is current device => mmc part Partition Map for MMC device 1 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 126976 2763d721-01 0c Boot 2 129024 62204928 2763d721-02 83
写入 eMMC 卡后,似乎文件系统类型不正确,无法找到所写的文件...
我切换到 SD 卡(MMC dev 1)、发现文件可以在 SD 卡上读取、文件系统类型为 DOS。
我不确定它是根本原因,如何修复它?
=>MMC 部件
MMC 设备0的分区映射--分区类型:EFI
零件开始 LBA 结束 LBA 名称
属性
类型 GUID
分区 GUID
1 0x00000022 0x03b47fde "rootfs"
attrs:0x000000000000
类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID:e2b6b38b-59eb-4c15-8dd7-3b2c97a80192
=> fatls MMC 0:1
**无法识别的文件系统类型**
你好 , Diwakar
现在 eMMC 板可以在 tda4vh EVM 板上工作、主要原因是(应执行"MC partconf 0 1 1"和"MC bootbus 0 2 0")
感谢您的巨大帮助。 我还有两个问题:
1) 1)似乎无法读取引导区域? 引导映像区域(偏移为0x0到0x3400)是否有区域保护机制?
首先、我将 u-boot.image 写入偏移量0x1400、将 dtb 文件写入偏移量0x3400
fatload MMC 1 ${loadaddr}u-boot.img && MMC 写入${loadaddr}0x1400 0x2000
TFTP ${loadaddr}tda4/k3-j784s4-evm.dtb && MMC 写入${loadaddr}0x3400 0x400
然后读取偏移量、 0x3200 带有 len 0x400 ( MMC 读取 0x91000000 0x3200 0x400)、
这些区域似乎无法读取、读取的内容为零。
但是、如果我跳过引导区域(从0x0到0x3400的偏移量)、那么 读取 aras 是可以的。
例如、 MMC 读取 0x91000000 0x3400 0x400
2.关于引导区域部分。 对于 eMMC 引导、似乎仅创建了 rootfs 区域、并且文件系统类型不是由 fatls 标识。
所以在哪里将引导文件(tiboot3.bin、tispl.bin、u-boot.img)写入呢?
您好
然后读取偏移量、 0x3200 带有 len 0x400 ( MMC 读取 0x91000000 0x3200 0x400)、
这些区域似乎无法读取、读取的内容为零。
但是、如果我跳过引导区域(从0x0到0x3400的偏移量)、那么 读取 aras 是可以的。
[/报价]但您要将 dtb 写入:
MMC write ${loadaddr}0x3400 0x400因此
但是、如果我跳过引导区域(从0x0到0x3400的偏移量)、那么 读取 aras 是可以的。
例如、 MMC 读取 0x91000000 0x3400 0x400
[/报价]正确。
[/quote][/quote]2.关于引导区域部分。 对于 eMMC 引导、似乎仅创建了 rootfs 区域、并且文件系统类型不是由 fatls 标识。
所以在哪里将引导文件(tiboot3.bin、tispl.bin、u-boot.img)写入呢?
[/报价]您正在写入 eMMC 的 RAW boot 0分区 ,这就是您无法读取的原因。另一方面,您正在以 ext4格式写入 UDA 分区中的 rootfs。
此致
迪瓦卡尔
你好 , Diwakar
明白了、是否有办法列出 eMMC 器件上的所有文件?
例如使用 fatls 列出 SD 卡上的文件。
您好
找到了,是否有办法列出 eMMC 部件上的所有文件?
如果您要写入 RAW 分区 、则只能使用 MMC 读取 命令(如果使用的是 具有 fat 分区类型的 UDA 分区)
可以使用 fatls 命令。
此致
迪瓦卡尔
你好 , Diwakar
我找到了 eMMC UDA 分区图。
您正在写入 eMMC 的原始引导0分区 ,这就是为什么您不能读取另一方面,您正在 UDA 分区中以 ext4格式写入 rootfs。
这意味着我要将启动映像写入 UDA 的分区1?
我找到了 eMMC 布局、我的问题是在哪里可以放置我们的系统映像?
从 eMMC 布局来看、我们似乎无法使用 boot0分区的偏移0x3400、对吗? (偏移量0x3400是为环境变量和备份环境、和 sysfw 保留的。 运行时这些区域可以被写入、对吗?)
如果需要、我们可以将系统映像放在哪里? 用户分区是否合适? 如何切换到用户分区?
您好
请浏览 TDA4VH 的 SDK 文档、
BOOT0分区与 UDA 分区不同。
以上映像显示将引导映像(tiboot3.bin、tispl、u-boot.img)保留在 BOOT0分区中,并将 rootfs 保存在 UDA 分区中。
此致
迪瓦卡尔
尊敬的 Diwakar:
以上映像显示在 BOOT0分区中保留启动映像(tiboot3.bin,tispl,u-boot.img ),并在 UDA 分区中保留 rootfs。
我的问题是、是否有完整分区列表图? 谁创建了 BOOT0分区、分区的起始和长度如何?
UDA Particton 从2MB 的偏移量中扣除? 我感到困惑, 因为所有启动映像的大小都大于2MB,所以 rootfs start 应该设置为大于所有启动映像大小,对吗?
u-Boot # printenv 分区 uuuid_disk=${uuid_gpt_disk}; name=rootfs, start= 2MiB、 size=-、uuid=${uuid_gpt_rootfs}
您好
我的问题是、是否有完整分区列表图? 谁创建了 BOOT0分区、分区的起始和长度如何?
[/报价]引导分区和用户分区的大小由存储器制造商定义。
[/quote]UDA Particton 从2MB 的偏移量中扣除? 我感到困惑, 因为所有启动映像的大小都大于2MB,所以 rootfs start 应该设置为大于所有启动映像大小,对吗?
[/报价]在这里它将在 UDA 中创建另一部分、偏移为2MB、这是由您在 SDK 中定义的、其为0
Fullscreen12=> printenv partitionspartitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=> printenv partitions partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
希望这能回答您的问题。
此致
迪瓦卡尔
您好、Diwakar、
明白了、谢谢。 我的最后一个问题、在哪里适合放置我们的系统映像?
如果遵循 u-boot.img,它是从偏移量0x3400开始的,那么我们的系统映像大约是>8MB。 可能会超过 boot0分区的大小。
以及如何找到 boot0 part还是 大小?
我担心大小对于所有 TI 引导映像(tiboot3.bin、tispl.bin、u-boot.img)和我们的系统映像而言都是不够的。
或者我们应该将系统映像放在 uda 中的 rootfs 中?
哪一个是更好的选择?
您好
以及如何找到 boot0 part还是 大小?
[/报价]该信息应来自 eMMC 供应商、但为了快速检查、您可以引导至链接并运行 lsblk 命令
此处引导为31MB
[/quote]或者我们应该将系统映像放在 uda 中的 rootfs 中?
[/报价]我们通常建议将引导映像保留在 boot0分区中、因为与 UDA 相比、它是原始访问并且速度很快
并在 UDA 中保留 rootfs。
但如果您有优于 eMMC 的 OSPI、因为 ospi 比 eMMC 快得多。
此致
迪瓦卡尔
您好,Diwakar:
我们通常建议将引导映像保留在 boot0分区中、因为与 UDA 相比、它是原始访问并且速度很快
并在 UDA 中保留 rootfs、
[/报价]感谢您的评论、现在很明显、我们还将把我们的系统映像放在 boot0分区中、位于偏移0x3400的 uboot.image 后面、
31MB 足以容纳所有映像。
我现在没有问题了、再次感谢您对该表单的大力支持。