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.

[参考译文] Linux/AM4378:eMMC 引导失败

Guru**** 2549980 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/724762/linux-am4378-emmc-boot-fails

器件型号:AM4378

工具/软件:Linux

尊敬的:

我们广泛地基于 AM437x-gp-EVM 设计了电路板、并使用 SDK  4.01.运行良好。

现在、我想从 eMMC 引导我的系统。  我创建了两个分区(mmcblk1p1和 mmcblk1p2)。 按照以下准则。

  1. eMMC 是/dev/mmcblk1. 以这种方式设置格式:
  2. fdisk /dev/mmcblk1
  3. O-这将清除现有分区
  4. P -这列出了卡上的所有分区表(不应该有)
  5. N -创建新分区
  6. p -主分区
  7. 1-分区号
  8. 2048 -第一个扇区的默认值
  9. +16M -最后一个扇区/分区大小
  10. t -更改分区类型(选择分区1)
  11. E -将分区类型更改为"W95 FAT16 (LBA)"
  12. A -为所选分区设置可引导标志(1)
  13. N -创建新分区
  14. p -主分区
  15. 2-分区号
  16. 按 Enter 键选择第一个扇区的默认(下一个可用)值
  17. 按 Enter 键选择最后一个扇区的默认(最后)值
  18. P -这列出了卡上的所有分区表(应该有两个分区表)
  19. w -将上述所有更改写入磁盘
  20. umount /dev/mmcblk1p1;mkfs.vfat -F 16 /dev/mmcblk1p1 -格式化第一个分区
  21. umount /dev/mmcblk1p2;mkfs.ext4 /dev/mmcblk1p2 -格式化第二个分区。

正确格式化。 然后、我从 root@AM437X-EVM 复制了下面给出的文件:

# mkdir 引导

  • # mount /dev/mmcblk1p1 boot
  • # CP MLO 引导
  • # cp u-boot.img boot
  • #umount 引导

复制的文件系统如下所示

  • # mkdir root
  • # mount /dev/mmcblk1p2 root
  •  cp -r /usr/bin/rootfs /* root
  • # umount root

这两个分区都已完成,并复制了所有文件。

我使用了 SDK 2.0 uboot 源代码并生成了 MLO 和 u-boot.img 并复制到我的 eMMC 第一个分区。

我已编辑"am43xx.h"中的以下行

#define FAT_ENV_DEVICE_AND_PART_"1:1"     从     #define FAT_ENV_DEVICE_AND_PART_"0:1"  

我已经从         下面函数中的粗体行下面的"bootpart=0:2\0"中编辑了"bootpart=1:2\0"\

#define CONFIG_Extra ENV_SETTINGS \
DEFAULT_LINUX_BOOT_ENV \
DEFAULT_MMC_TI_args \
"Fdtfile=undefined\0"\
"bootpart=1:2\0"\
"bootdir=/boot\0"\
"BootFile=zImage\0"\

请找到我随附的"am43xx.h"

e2e.ti.com/.../4382.am43xx_5F00_evm.h

现在、我移除了 SD 卡并从 eMMC 引导、我只收到下面给出的一行消息

U-Boot SPL 2015.07-00114-gf8d68d1-脏污(2018年9月03日- 15:12:44)  

它不启动。 请从 eMMC 浏览"am43xx.h"文件。

"am43xx.h"中是否有错误?  如何解决此问题?

此致、

Winiston.P

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

    您好 Winiston.P、

    如果您中#defed debug /board-support/u-boot- /include/configs/ti_armv7_omap.h 此时您将看到电路板残桩的原因。

    此致、
    Kemal

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

    尊敬的 Kemal:

    正如您说过的、我在  "u-boot- /include/configs/ti_armv7_omap.h "。 并编译了 u-boot 源代码。 现在我在启动时没有收到任何消息。  

    "U-Boot SPL 2015.07-00114-gf8d68d1-DISAGE (2018年9月03日- 15:12:44)"   此消息也消失。

     

    在"am43xx.h"文件中是否有从 eMMC 引导的错误?

     

    此致、

    Winiston.P

     

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

    如果您没有定义调试、该怎么办? MLO 随后是否打印任何消息? 是否确定调试标志会导致这种情况?

    您的 am43xx.h 文件中没有错误。 都是正确的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Kemal:
    是的、当然可以。 我在"u-boot- /include/configs/ti_armv7_omap.h "。 声明后、控制台端口中没有消息。 如果我删除#define debug,我将收到一条消息,就像我所说的那样。

    请检查以下 uboot 编译过程。

    1.转至 uboot 源目录
    cd ~/ti-processor-sdk-linux-AM437X-EVM-02.00.00.00.00.00.00.00.00.00/ board-support/u-boot-2015.07+gitAUTOINC+d49aa5effA/

    2.配置电路板
    导出路径=/home/futura/ti-processor-sdk-linux-am437x-evm-02.00.00.00/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$path

    3.删除目录
    RM -RF ./am43xx_evm

    编译 uboot 源文件
    使 cross_compile=arm-linux-gnueabihf- O=am43xx_evm am43xx_evm_config 全部为
    (或)
    使 cross_compile=arm-linux-gnueabihf- arch=arm O=am43xx_evm am43xx_evm_config 全部为

    5.检查 uboot sorce 目录下的 am43xx_evm 目录并找到"u-boot.img"和"MLO"

    6.将 u-boot.img 和 MLO 复制到引导分区。


    上述过程中是否有任何错误?

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

    仅用于测试。 您能否在 最新 的 Processor SDK 上执行这些步骤、并检查它是否打印出任何不同的消息?

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

    如果您有用于从 eMMC 引导的“MLO 和 u-boot.img”,请将其发送给我。
    这样我就可以确认它是否从 eMMC 引导?

    此致、
    Winiston.P
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Kemal:
    我已经安装了此 SDK。 我在最新的 SDK 5.00.00.15中尝试了相同的步骤。 但我根本没有收到任何消息。
    我是否应该编辑"am43xx.h"以外的内容?

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

    听起来像是 EEPROM 问题。 您能否使用这些映像检查电路板是否启动? 这些来自最新的 Processor SDK、该 SDK 具有启用的调试和硬编码的 AM43_GP EEPROM 板名称。

    e2e.ti.com/.../PLSDK5.0_5F00_DB_5F00_EN_5F00_AM43_5F005F00_GP_5F00_EPPROM_5F00_HC_5F00_BOOT_5F00_PARTITION.tar.xz

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

    尊敬的 Kemal:

    感谢您的快速帮助。 正如您说过的、这是 EEPROM 问题。 现在我已经对 EEPROM 进行了编程。 它开始工作。 谢谢 Kemal。

    此致、

    Winiston.P