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.

[参考译文] AM625:SK-AM62x-LP 闪存 U-Boot 无法从 boot0引导到 eMMC

Guru**** 2553450 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1405760/am625-sk-am62x-lp-flash-u-boot-to-emmc-cannot-boot-from-boot0

器件型号:AM625

工具与软件:

我用 SD 卡测试了 WIC 文件,它很好。 我现在需要从 EMMC 开始。 我引用的链接是 Flash Linux 到 eMMC (ti.com)、thefinal saveenv 已替换为 boot 。 修改 am62x.env mmcdev  = 0

U-Boot SPL 2023.04-ti-g836606420854 (2024年5月9日- 05:42:45 +0000)
SYSFW ABI:3.1 (固件版本0x0009 '9.2.8--v09.02.08 (Kool Koala)')
SPL 初始堆栈使用:1856字节
尝试从 MMC1引导
身份验证已通过
身份验证已通过


U-Boot 2023.04-ti-g836606420854 (2024年5月9日- 05:42:45 +0000)

SoC:AM62X SR1.0 HS-SoC FS
型号:德州仪器(TI) AM62x LP SK
EEPROM 在80时不可用、尝试在81时读取
电路板:AM62-LP-SKEVM 版本 E2
DRAM:2GiB
内核:81个器件、33个 uClass、devicetre:单独
NAND:0 MIB
MMC:MMC@fa10000:0、MMC@fa00000:1
随处加载环境... 好的
输入:串行
输出:串行
错误:串行
net:eth0:以太网@8000000port@1
按任意键以停止自动引导:0
=> MMC 列表
MMC@fa10000: 0
MMC@fa00000: 1.
=> printenv 分区
partitions=name=rootfs、start=0、size=-、uuid=${uuuid_gpt_rootfs}
=> MMC 器件

MMC 设备0的分区映射--分区类型:EFI

Part Start LBA End LBA Name (部分开始 LBA 结束 LBA 名称)
Attributes
键入 GUID
分区 GUID
1 0x00001000 0x01da3fde "rootfs"
attrs:0x0000000000000000
类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID:6789e4c7-df5b-47dd-b262-746320c32939
=>
=>引导
切换到分区#0、好
mmc1是当前器件
器件1上的 SD/MMC
无法加载"boot.scr"
574字节、在10ms 内读取(55.7KiB/s)
从 uEnv.txt 加载 env
正在从 mmc1导入环境...
##错误:未定义"main_cpsw0_qsgmii_pyinit"
在239 ms (77.3 MiB/s)内读取19376640字节
59264字节在12ms (4.7MiB/s)内读取
工作 FDT 设置为88000000
###平展设备树在88000000时出现斑点
使用0x88000000的 FDT blob 进行引导
工作 FDT 设置为88000000
正在将设备树加载到000000008feee000,结束000000008fffff...确定
工作 FDT 设置为8feee000

正在启动内核...

…………

root@am62xx-LP-EVM:~#
root@am62xx-LP-EVM:~# lsblk
名称 MAJ:Min RM Size RO 类型安装点
mtdblock0 31:0512k 0磁盘
mtdblock1 31:1 0 2M 0磁盘
mtdblock2 31:2 0 4M 0磁盘
mtdblock3 31:3 0 256K 0磁盘
mtdblock4 31:4 0 256K 0磁盘
mtdblock5 31:5 0 95.8M 磁盘
mtdblock6 31:6 0 256K 0磁盘
mmcblk0 179:0 0 14.8G 0磁盘
`-mmcblk0p1 179:1 0 14.8G 0 part /run/media/rootfs-mmcblk0p1
mmcblk0boot0 179:32 0 31.5M 1磁盘
mmcblk0boot1 179:64 0 31.5M 1磁盘
mmcblk1 179:96 0 29.7G 0磁盘
|-mmcblk1p1 179:97 0 128M 0 part /run/media/boot-mmcblk1p1
`-mmcblk1p2 179:98 0 29.6G 0部件/
root@am62xx-LP-EVM:~#

问题1:似乎我缺少 saveenv 命令、并且还显示启动运行从 MMC2引导。 我在论坛上看到了一个相关问题、并修改了 mmcdev=0
am62x.env 的 bootpart=0:1、以显示它是从 mmc1开始的。 这些修改是否正确?
问题2:现在从 MMC1启动、但仍然需要 SD 卡。 最后、可从内核 "(/run/media/boot-mmcblk1p1)"中查看此代码
问题3:我目前只有 rootfs 分区、似乎缺少引导分区。 这是问题2的原因吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    要从 eMMC 引导、您需要运行以下命令

    => setenv mmcdev 0
    => setenv bootpart 0:1
    => boot

    如果您希望每次都从 eMMC 自动引导、可以在 U-Boot 中应用以下补丁

    diff --git a/board/ti/am62x/am62x.env b/board/ti/am62x/am62x.env
    index 32c96d83e8b..ae8ff0432b0 100644
    --- a/board/ti/am62x/am62x.env
    +++ b/board/ti/am62x/am62x.env
    @@ -14,8 +14,8 @@ run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
     
     boot_targets=mmc1 mmc0 usb pxe dhcp
     boot=mmc
    -mmcdev=1
    -bootpart=1:2
    +mmcdev=0
    +bootpart=0:1
     bootdir=/boot
     rd_spec=-
     
    

    此致、

    Prashant