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/PROCESSOR-SDK-AM437X:AM437X CANn#39;t 使用 u-boot-2018-01从 NAND 引导

Guru**** 2549390 points
Other Parts Discussed in Thread: TPS65218

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/765578/linux-processor-sdk-am437x-am437x-cann-t-boot-from-nand-using-u-boot-2018-01

器件型号:PROCESSOR-SDK-AM437X
主题中讨论的其他器件:TPS65218

工具/软件:Linux

您好!

我正在使用 AM437X-gp-EVM 开发板。 它可以使用 u-boot-2014-07从 NAND 引导。 当我将其更新为 u-boot-2018-01时、它无法启动。 MLO 和 u-boot.img 的生成方式与 u-boot-2014-07相同、如下所示:

1)使 cross_compile=arm-linux-gnueabihf- distclean;

2) make cross_compile=arm-linux-gnueabihf- am43xx_evm_defconfig;

3)使 cross_compile=arm-linux-gnueabhif-。

在上述操作之后,我获得了 MLO 和 u-boot.img。

然后 、我引导它(NAND 中有 u-boot 2014-07)。 并在 u-boot 中将其停止、按以下方式将其更新为 u-boot-2018:

1) u-boot#:n 和 erase.chip

2) u-boot#:tftp 0x81000000 MLO;

3) u-boot#:n 并写入0x81000000 NAND.SPL

4) u-boot#:n 并写入0x81000000 NAND.SPL.Backup1;

5) u-boot#:n 并写入0x81000000 NAND.SPL.Backup2

6) u-boot#:n 并写入0x81000000 NAND.SPL.backup3

7) u-boot#:tftp 0x81000000 u-boot.img

8) u-boot#:n 并写入0x81000000 NAND.u-boot。

然后重新启动电路板、 uart0控制台中没有显示任何内容。

 以上是什么问题? 我对 u-boot-2014-07也是一样的。  需要在 u-boot-2018-01中修改哪些内容? 我将 u-boot 更新为2018-01、适用于支持 Wifi 和蓝牙的 Linux-4.14.67。   

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

    您好、user3529609、

    请应用 此帖子中的补丁、从 NAND 引导将起作用。

    此致、
    Kemal

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

    您好!
    我获得了修补程序和修补程序,编译 u-boot。 然后将 MLO 和 u-boot.img 下载到 NAND、在上电时还无法运行。 我的问题是、上电后 u-boot 不运行、串行终端中没有消息 My SDK 为 PROCESSOR-SDK-LINUX-AM437x 05_01_00_11。

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

    您是否已成功替换 u-boot.img MLO 两侧的映像、引导映像和闪存映像? 您能否尝试通过从 SD 卡加载映像来刷写 NAND、如 本帖子的第一部分所示? 您能够从 NAND 中引导的是以前的处理器 SDK 版本? 您的 AM437x GP EVM 板是哪个版本?  A 还是 B? 由于 AM437X 勘误表修订版 A、建议15、无法使用修订版 A 从 NAND 引导。 请检查 此主题以了解更多详细信息。

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

    您好!

    以前的 Processor SDK (可以从其 u-boot 成功引导)版本是 ,u-boot 版本为 我不知道 AM437x GP EVM 板版本是 A 或 B (我们从中国的 TI 代理商 Teronlong 那里获得)。 我将尝试通过从 SD 卡加载映像来闪存 NAND。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    电路板版本应为"B"、我通过器件版本代码 AM4379BZDNA100进行检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我使用 SDK 中的默认映像(05.01.00.11)和脚本 create-sdcard.sh 创建 SD 卡。 我将卡插入 MMC1插槽并为电路板通电、UART 终端中没有 u-boot 信息。 当我用旧卡(代理提供)替换卡时、加电时、它可以工作并在 UART 终端中显示以下消息:

    U-Boot SPL 2014.07-g10e4fe2 (2018年5月18日- 11:01:09)

    无法在0x50处探测 EEPROM

    无法获取电路板 ID。

    正在读取 u-boot.img

    正在读取 u-boot.img

    U-Boot 2014.07-g10e4fe2 (2018年5月18日-11:01:09)

    I2C:就绪

    DRAM:1 GiB

    NAND 512Mib

    MMC:OMAP SD/MMC:0、OMAP SD/MMC:1

    正在读取 uboot.env

    **无法从 MMC0:1读取"uboot.env"**

    使用默认环境

    无法在0x50处探测 EEPROM

    无法获取电路板 ID。

    网络: 未设置。 验证第一个电子保险丝 MAC

    CPsw、USB_ether

    按任意键停止自动引导:1.

    U-boot#

    我们获得的电路板可能不是确切 的 AM437x-gp-EVM 电路板。 工程师可以修改 U-boot 源文件(2014-07)以匹配其电路板。 为此、可以更改哪些文件? 我能否在 U-boot 2018中对其进行修改。 以安装此板。 是否有文档指示修改 特定电路板的 u-boot 文件?

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

    您能否应用 补丁并检查电路板是否启动?

    CD /board-support/u-boot- /
    Git 应用0001-AM437x-hardcode-EEPROM-board-name-to -AM43_GP.patch

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

    您好!

    我应用补丁、编译 MLO 和 u-boot.img 并将其下载到 NAND。 加电时、电路板可引导并在 UART 终端中显示以下消息:

    U-Boot SPL 2018.01-00444-ge782a78ca-mad9-脏(2019年1月26日-10:01:40)

    尝试从 NAND 引导

    SPL:请为您的电路板实施 spl_start_uboot()

    SPL:直接 Linux 引导未激活!

    它在这里停止。 按下键时、它应在 u-boot 状态下停止。  我现在该怎么办?

    我在旧的 u-boot 中使用以下步骤更新 NAND:

    1) Nand erase.chip

    2) tftpoot 0x82000000 MLO

    3) n 并写入0x82000000 NAND.SPL

    4) n 并写入0x82000000 NAND.SPL.Backup1

    5) n 并写入0x82000000 NAND SPL.Backup2

    6) n 并写入0x82000000 NAND.SPL.backup3

    7) tftpboot 0x82000000 u-boot.img

    8) n 并写入0x82000000 NAND.u-boot

    执行上述步骤后、我重新启动电路板、更新 u-boot 运行并在 UART 终端中显示上述消息并停止。

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

    SPL 现在尝试从 SD 卡加载 uboot.env、这就是它在该点停止的原因。 为了避免这种情况 、您需要在 U-Boot 中定义 CONFIG_ENV_is_IN_NAND、并将 U-Boot 环境加载并保存到 NAND 中、或从 menuconfig 中禁用 SPL 环境加载、如本帖子所示。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    当我从 menuconfig 中禁用 SPL/TPL 中的“支持环境”时,保存并编译 u-boot 时,会出现以下错误:
    (笑声)
    env/built-in.o:(.data.env_htab+0xc):未`对 env_FLAGS_VALIDATE'的引用
    lib/built-in.o:在函数`hsearch_r'中:
    /media/Am437x/ti-sdk-05.01.00.11/board-support/u-boot-2018.01 +gitAUTOINC+cdb1cc0a9e-gcdb1cc0a9e/lib/hashtable.c:380:未`对 env_callback_init'的引用
    /media/Am437x/ti-sdk-05.01.00.11/board-support/u-boot-2018.01 +gitAUTOINC+cdb1cc0a9e-gcdb1cc0a9e/lib/hashtable.c:382:未`对 env_FLAGS_init'的引用
    scripts/Makefile.spl:349:目标'sl/u-boot-spl'的配方失败
    maked[1]:***[spl/u-boot-spl]错误1.
    Makefile:1399:目标'sl/u-boot-spl'的配方失败
    make:***[spl/u-boot-spl]错误2.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Eddie、

    请在 U-Boot 的 menuconfig 中禁用这两个选项。
    SPL/TPL ->[]支持环境
                           []支持联网

    重新构建、重新刷新和您的电路板将正常工作。

    此致、
    Kemal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我从 menuconfig 中禁用这两个选项:save、compile 和 flash the NAND with MLO and u-boot. 它显示与以前相同的消息:
    U-Boot SPL 2018.01-00444-ge782a78ca-mad9-脏(2019年1月26日- 17:20:27)
    尝试从 NAND 引导
    SPL:请为您的电路板实施 spl_start_uboot()
    SPL:直接 Linux 引导未激活!

    我还将以下定义为 am43xx_evm.h:
    #define CONFIG_ENV_IS _IN_NAND
    #define CONFIG_ENV_OFFSET 0x00280000
    #define CONFIG_ENV_range CONFIG_ENV_SIZE

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

    您能在中#defineDEBUG /board-support/u-boot- /include/configs/am43xx_evm.h、如 本帖子中所示? 这将为我们提供更详细的信息。

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

    您好!

    我将#define debug 添加到 am43xx.evm.h、编译 u-boot、并将 MLO 和 u-boot.img 传输到 NAND。 上电时、控制台显示:

    U-Boot SPL 2018.01-00444-ge782a78ca-mad9-脏(   2019年1月27日 - 10:07:30)
    omap24_i2c_findpsc: 速度 [kHz]: 100 PSC: 0xb sscl: 0xd ssch: 0xF
      尝试从  NAND 引导
    SPL: NAND - 使用 HW ECC
    NAND: 使用 OMAP-ECC_BCH16_CODE_HW
    SPL: 请 为    您的电路板实施 spl_start_uboot()
    SPL: 直接 Linux 引导 未 激活!
    找  不到 mkimage 签名  - IH_magic = ffffff
    跳 转到 U-Boot
    已加载 - 跳 转到 U-Boot...
    图像 入口 点: 0x80800000
    就此打住。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否压缩并附加旧 U-Boot 的源代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请参考旧的 u-boot 以进行连接。

    唯一修改的位置 是在 am43xx_evm.h 中:

    添加了:

    #define CONFIG_ENV_IS _IN_NAND

    #define CONFIG_ENV_OFFSET 0x00280000

    #define CONFIG_ENV_range CONFIG_ENV_SIZE

    和备注折线:

    #if 0

    #define CONFIG_ENV_IT_IN_FAT

    #define FAT_ENV_interface               "MMC"

    #define FAT_ENV_DEVICE_AND_PART_"0            :1"

    #define FAT_ENV_file                             "uboot.env"

    #define CONFIG_FAT_WRITE

    #endif

    e2e.ti.com/.../U_2D00_Boot_2D00_2014.07.rar

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

    尊敬的 Kemal R. Shakir:

    我很想得到您的支持。 如果有任何信息需要尝试、请不要犹豫、请告诉我、我会很高兴地这样做。

    从 NAND 中加电时 ,旧的 u-boot 在  控制台中显示如下消息:

     

    U-Boot 2014.07 (  2018年10月20 日- 17:05:17)

    I2C:   就绪
    DRAM:  1 GiB
    NAND:  512 MiB
    MMC:   OMAP SD/MMC: 0、 OMAP SD/MMC: 1.
    *** 警告 -  CRC 错误, 使用 默认 环境

    无法  在    0x50处探测 EEPROM
    无法  获取 电路板 ID。
    网络:     未 设置。  验证 第一 个电子保险丝 MAC
    CPsw、 USB_ether
    按 任意 键  停止 自动引导:  0  
    U-Boot#  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、user3529609、

    请应用 补丁并检查 U-Boot 是否加载。
    我不知道是谁修改了你所连接的 U-boot、但他做得很好。 跟踪他的变化非常容易。 干得不错。

    CD /board-support/u-boot- /
    Git 应用0001-AM437x-NAND-DEVICE RELATED configs-set-up.patch

    此致、
    Kemal

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

    您好,

    此修补程序可解决我的问题。 我在 NAND 中更新了 MLO 和 u-boot.img、加电时、它可以正常工作、并在控制台中显示以下消息:

    U-Boot 2018.01-00444-ge782a78ca9-m脏(   2019年1月30 日- 10:21:10 +0800)

    CPU  : AM437X-GP 1.2版  
    型号: TI AM437x GP EVM
    DRAM:  1 GiB
    PMIC:  TPS65218
    NAND:  512 MiB
    MMC:   OMAP SD/MMC: 0
    MMC:  无卡 存在
    ** 设备  MMC 0 **错误
     使用默认 环境

    网络:     未 设置。  验证 第一 个电子保险丝 MAC
    CPsw、 USB_ether
    按 任意 键  停止 自动引导:  0  
    =>
    非常感谢!
    顺便说一下、如果我将来可能更新到最新的 SDK (u-boot)、我是否必须在电路板中将此间距设置为 u-boot?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、您将会看到、因为您的电路板不包含 EEPROM 来识别自身、并且具有不同的 NAND 芯片。 在 本补丁中、我将这两个补丁和您为将 U-Boot 环境保留在 NAND 中所做的更改组合在一起。

    CD /board-support/u-boot- /
    Git 应用0001-AM437x-Custom-board-NAND-and-Board-name-settings.patch

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

    尊敬的 Kemal R. Shakir:

    非常感谢您的支持。

      当 ubi 文件系统加载到 NAND 时,我们遇到了另一个问题,内核出现紧急情况。 我将在春节后的这个论坛上给大家看,因为我们将在这里度假。  我怀疑问题也可能出在 不同的 NAND 中。 假期后、我将提供有关该问题的详细信息、希望您能为我们提供支持。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的。 祝你度过快乐的假期。 我们将在假期结束后检查内核严重错误。