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 上没有单独的 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 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 足以容纳所有映像。
我现在没有问题了、再次感谢您对该表单的大力支持。