工具与软件:
您好、亲爱的专家。
客户在 eMMC 引导时遇到引导问题。
我们已经知道"根本原因" 是客户的 u-boot.img 大于2MB、但其 eMMC 芯片(类型:THGBMTG5D1LBAIL)引导分区"仅允许"最大大小为2MB。
我们发现一些 eMMC 器件在引导分区中具有大小限制、对吧?
除了减小引导加载程序大小、我们还有其他权变措施吗?
我们认为、唯一解决的方法是尝试从 eMMC"用户分区"引导、是可行的吗?
如何解决该问题?
谢谢你。
Gibbs
该线程从这里扩展、
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.
工具与软件:
您好、亲爱的专家。
客户在 eMMC 引导时遇到引导问题。
我们已经知道"根本原因" 是客户的 u-boot.img 大于2MB、但其 eMMC 芯片(类型:THGBMTG5D1LBAIL)引导分区"仅允许"最大大小为2MB。
我们发现一些 eMMC 器件在引导分区中具有大小限制、对吧?
除了减小引导加载程序大小、我们还有其他权变措施吗?
我们认为、唯一解决的方法是尝试从 eMMC"用户分区"引导、是可行的吗?
如何解决该问题?
谢谢你。
Gibbs
该线程从这里扩展、
您好!
[quote userid="533255" url="~/support/processors-group/processors/f/processors-forum/1452406/am625-q1-could-we-boot-u-boot-from-emmc-user-partition 但他们的 eMMC 芯片(类型:THGBMTG5D1LBAIL)引导分区"只"允许最大大小为2MB。这对于默认 U-Boot 映像而言是不够的。 如果大小为4MB、则可以遵循以下主题:
[quote userid="533255" url="~/support/processors-group/processors/f/processors-forum/1452406/am625-q1-could-we-boot-u-boot-from-emmc-user-partition 我们认为唯一解决的方法是尝试从 eMMC"用户分区"引导、是不是可以?这是可能的。 ROM 支持 eMMC UDA FS 引导模式。
此致、
Prashant
Prashant、您好!
使用 DFU 引导至 u-boot 后、如何进一步完成 eMMC UDA FS 或 eMMC UDA 原始 流程?
我们的定制电路板没有 SD 卡设计、因此我想我仍然可以使用 dfu-util 工具将图像推送到用户分区。 但是、我收到了 libusb_error_io 失败。 下面是我的步骤。
1.按如下方式创建分区:
$ setenv partitions "uuid_disk=${uuid_gpt_disk};name=boot,start=0,size=32M,uuid=${uuid_gpt_boot};name=rootfs,start=32M,size=-,uuid=${uuid_gpt_rootfs}"
$ gpt write mmc 0 ${partitions}
$ mmc part
=> mmc part
Partition Map for MMC device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000022 0x00010021 "boot"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: 4129e871-936b-40c8-afa6-ca62e11055c9
2 0x00010000 0x01da3fde "rootfs"
attrs: 0x0000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: 8eba550e-29bb-4951-986f-98b7f4dce0eb
2.设置 dfu_alt_info
$ setenv dfu_alt_info_mmc "boot part 0 1; rootfs part 0 2; tiboot3.bin fat 0 1; tispl.bin fat 0 1; u-boot.img fat 0 1; uEnv.txt fat 0 1; sysfw.itb fat 0 1"
$ setenv dfu_alt_info ${dfu_alt_info_mmc}
3.通过 dfu-util 刷写图像
$ sudo dfu-util -a tiboot3.bin -D tiboot3.bin dfu-util 0.11-dev Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to sourceforge.net/.../ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #2 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 295502 bytes Download done. dfu-util: unable to read DFU status after completion (LIBUSB_ERROR_IO) ---------------------------------------------------------------------- => dfu 0 mmc 0 generic_phy_get_bulk : no phys property ##dfu: fs_set_blk_dev error! Deferred dfu_flush() failed!dfu - Device Firmware Upgrade Usage: dfu <USB_controller> [<interface> <dev>] [list] - device firmware upgrade via <USB_controller> on device <dev>, attached to interface <interface> [list] - list available alt settings ---------------------------------------------------------------------
您好!
刷写映像3. 通过 dfu-util
这不起作用、因为在刷写任何映像之前需要对分区进行格式化。 U-Boot 不支持格式化、因此您必须引导到 Linux 来格式化分区。
在任何情况下、这些步骤都不起作用、因为 ROM 不支持从 GPT 分区引导。 它仅支持从 MBR 分区表管理的可引导 FAT 分区进行引导。 同样、您必须使用 Linux、因为 U-Boot 不支持创建 MBR 分区表。
---------------
对于 AM64x、最简单的方法是仅将 WIC 映像刷写到 eMMC UDA 分区、如下所示:
❯ pwd /home/p-shivhare/ti/psdk/am64x/09.02.01.10/filesystem/am64xx-evm ❯ xz -d tisdk-base-image-am64xx-evm.wic.xz ❯ dfu-util -a wic -D tisdk-base-image-am64xx-evm.wic dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to sourceforge.net/.../ Warning: Invalid DFU suffix signature A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 1103964160 bytes Download done. DFU state(7) = dfuMANIFEST, status(0) = No error condition is present DFU state(2) = dfuIDLE, status(0) = No error condition is present Done!
=> setenv dfu_alt_info "wic raw 0x0 0x10000000 mmcpart 0"
=> dfu 0 mmc 0
####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################DOWNLOAD ... OK
Ctrl+C to exit ...
=> mmc dev 0
switch to partitions #0, OK
mmc0(part 0) is current device
=> mmc part
Partition Map for MMC device 0 -- Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 262144 7560d2c3-01 0c Boot
2 264192 1891988 7560d2c3-02 83
=> ls mmc 0:1
EFI/
19376640 Image
610125 tiboot3-am64x-gp-evm.bin
612714 tiboot3-am64x_sr2-hs-evm.bin
612714 tiboot3-am64x_sr2-hs-fs-evm.bin
612714 tiboot3.bin
1018291 tispl.bin
1335119 u-boot.img
574 uEnv.txt
8 file(s), 1 dir(s)
=> ls mmc 0:2
<DIR> 4096 .
<DIR> 4096 ..
<DIR> 16384 lost+found
<DIR> 4096 bin
<DIR> 4096 boot
<DIR> 4096 dev
<DIR> 4096 etc
<DIR> 4096 home
<DIR> 4096 lib
<SYM> 19 linuxrc
<DIR> 4096 media
<DIR> 4096 mnt
<DIR> 4096 proc
<DIR> 4096 run
<DIR> 4096 sbin
<DIR> 4096 srv
<DIR> 4096 sys
<DIR> 4096 tmp
<DIR> 4096 usr
<DIR> 4096 var
=>
完成这些步骤后、简单地将引导模式更改为 eMMC UDA FS 应该至少能够引导 R5 SPL。 那么、对于您的自定义 EVM、您可以使用您的自定义构建映像替换默认映像。
此致、
Prashant