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.

[参考译文] SK-AM62P-LP:使用 SD 卡将 Linux 刷写到 eMMC

Guru**** 2553450 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1370973/sk-am62p-lp-flash-linux-to-emmc-using-sd-card

器件型号:SK-AM62P-LP

工具与软件:

您好!

我尝试使用 SD 卡将 Linux 刷写到 eMMC、方法是使用以下命令

SD 卡引导模式中的引导开关

U-Boot # printenv 分区
UID_DISC=${uuuid_gpt_disk};name=rootfs、start=2MiB、size=-、uuid=${uuuuid_gpt_rootfs}

U-Boot # setenv uuid_gpt_disk 4e42d27d-8f56-4952-9e47-8f8b34260a90
U-Boot # setenv uuid_gpt_rootfs eddd2fba-6351-42df-8779-53a02d99c2cc
U-Boot # GPT 写 MMC 0 ${partitions}/* 是否从 eMMC 列表获取器件索引*/

=>MMC 部件
=> MMC 开发0 1
=> fatload MMC 1 ${loadaddr}tiboot3.bin
=> MMC 写入${loadaddr}0x0 0x400
=> fatload MMC 1 ${loadaddr}tispl.bin
=> MMC 写入${loadaddr}0x400 0x1000
=> fatload MMC 1 ${loadaddr}u-boot.img
=> MMC 写入${loadaddr}0x1400 0x2000

=>MMC partconf 0 1 1
=> MMC bootbus 0 2 0 0

引导开关从 SD 卡引导模式更改为 eMMC 引导模式并卸载 SD 卡。

=> setenv mmcdev 0
=> setenv bootpart 0:1
=>引导

但它未启动、并且出现以下错误:

=>引导
切换到分区#0,确定
mmc0 (第0部分)是当前器件
在器件0上找到 SD/MMC
无法设置块设备
无法设置块设备
##错误:"main_cpsw0_qsgmii_phyinit"未定义
无法设置块设备
无法设置块设备
libfdt FDT_check_header ():FDT_ERR_BADMAGIC
未配置 FDT 存储器地址。 请配置
通过"FDT addr "添加 FDT 地址

"命令。
正在中止!
错误的 Linux ARM64图像魔法!
切换到分区#0,确定
mmc0 (第0部分)是当前器件
切换到分区#0,确定
mmc1是当前器件
正在扫描 MMC 1:1...
无 EFI 系统分区
无 EFI 系统分区
无法保留 EFI 变量
未定义引导顺序
EFI 启动管理器:无法加载任何映像
正在启动 USB...
总线 usb@31100000:generic_phy_get_bulk:no phys property
寄存器1000840网络端口1
启动控制器
USB xHCI 1.10
正在扫描总线 USB@31100000设备... 找到1个 USB 设备
正在扫描存储设备的 USB ... 找到0个存储设备

设备0:未知设备
以太网@8000000port@1等待 PHY 自动协商完成......... 超时!
am65_cpsw_nuss_port Ethernet@8000000port@1:PHY_startup 失败
am65_cpsw_nuss_port 以太网@8000000port@1:am65_cpsw_start 结束错误
缺少环境变量:pxeuuid
检索文件:pxelinux.cfg /01-1c-63-49-22-4F-24

我检查了以下 e2e 主题:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1346743/am625-emmc-boot-failed/5133532#5133532

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1343571/sk-am62b-p1-sk-am62b-p1/5127114#5127114

根据这些线程、我尝试了命令=> ls MMC 0:1  

LS MMC 0:2、但我们得到的是输出。

=> ls MMC 0:1
=> ls MMC 0:2
**无效的分区2**
找不到分区 MMC 0:2

请帮我纠正这个问题。  

此致、

维拉潘迪扬五世

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

    尊敬的 Veerapandiyan:

    它无法引导、因为您尚未在 eMMC 中刷写任何 Rootfs。

    请参阅以下指南

    https://dev.ti.com/tirex/explore/node?node=A__AXeWNLEW2jak3KzsCN3BA__AM62P-ACADEMY__fp5YxRM__LATEST

    此致、

    普拉桑特

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

    尊敬的 Prashant:

    是的、我尝试过这种方法和它的启动。

    我创建了两个分区并添加了此文件 tisdk-default-image-am62pxx-evm.tar.xz 两个分块中的空间。

    我将二进制文件复制到 boot0和 boot1, 第一个分区,对于 boot0和1,引导都可以正常工作,但对于第二个分区,无法引导。

    这是否可行?

    如果是,如何做?

    我已附上分区列表的屏幕截图、供您参考



    此致
    维拉潘迪扬五世

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

    尊敬的 Veeranpandiyan:

    "=> ls MMC 0:2"输出显示 rootfs 没有在第二个分区中刷写。 如果刷写了它、您将获得与"=> ls MMC 0:1"的输出相同的输出。

    请将 rootfs 刷写到第二个分区、然后以下命令应引导 Linux

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

    此致、

    普拉桑特

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

    尊敬的 Prashant:

    是的、现在它从不同的分区引导。

    电路板上有两个针对 eMMC 的 boot0和 boot1。 我附上了屏幕截图供您参考。

    当我       在 U-boot 中发出此命令(MMC partconf 0 1 1 1)时、它会从引导0进行引导

    (MMC  partconf  0  1 2  1) 。  

    但我需要它直接引导、而不在 U-boot 中提供命令。 如何执行该操作?

    在某些情况下、boot0已崩溃、则需要从 boot1自动引导。 如何执行该操作?



    谢谢!

    此致
    维拉潘迪扬五世

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

    尊敬的 Veeranpandiyan:

    但是我需要它直接引导而不在 U-boot 中提供命令。 如何进行此操作?

    如果从 Boot0引导 tiboot3.bin 失败、则 ROM 不支持从 boot1分区自动引导。

    若要进一步了解从 eMMC 引导 ROM、您可以参考以下主题

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1368735/am6441-emmc-boot-a-b-management

    此致、

    普拉桑特