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-AM335X:U-boot 环境区域读取问题

Guru**** 2587365 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/592873/linux-processor-sdk-am335x-u-boot-environment-area-read-issue

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

我希望这是我在  刷写和读取与 nand 闪存之间的 u-boot env 区域时遇到的问题的正确区域。 下面是顺序 -我们希望您能提供任何帮助

1.我使用 u-boot 的 mkenvimage 从文本文件(例如./mkenvimage -s 8192 -o env.bin env.txt)生成二进制数据文件

2.环境变量定义为进入分区5,因此/etc/fw_env.config 将其 定义如下:

MTD 器件名称   器件偏移   量编码 大小   闪存扇区大小    扇区数

/dev/mtd5                  0x0000             0x2000      0x20000                   1.    

3.在 Linux (SD 卡)中, 将 env.bin 写入 nand flash,如下所示:

/usr/sbin/flash_erase /dev/mtd5 0

/usr/sbin/nandwrite -p /dev/mtd5 env.bin

所有这些都成功了。

然后、当我尝试从 nand flash 引导时、我会遇到以下错误:

当 u-boot 读取 env 区域时。

错误:比较错误! 失败

然后继续使用默认环境。

由于计算出的 ECC 与读取 ECC 的不同、它似乎发生了故障。

我的问题是、ECC 是如何生成的、我在哪里为 env.bin 放置有效的 ECC 计数、以便这样做

u-boot 可正确读取环境区域。

此致、

A HART

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的 Linux 版本是什么? 什么是 NAND 几何体(页面大小/备用区域大小)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们使用的是 Linux 版本3.1.0

    Micron NAND 闪存器件 MT 29F2G08 ->页面大小= 2112 (2048 + 64字节备件区)

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Adrian、
    ECC 可通过软件(代码中)或硬件(GPMC)进行计算。 ECC 类型必须在硬件/软件方面匹配、并且在内核和 uboot 之间按位和算法进行匹配。 看起来内核和 uboot 之间存在不匹配的情况。 要确认这一点、您可以在 uboot 停止、安装 MMC 卡(拾取 env.bin)并尝试从 uboot 命令行执行 nand 写入操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Adrian HART "]我们使用的是 Linux 版本3.1.0

    TI 从未发布过此版本。 我强烈建议您改用最新的 Processor SDK:   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很奇怪、因为这是 SDK 中的 Linux 内核、即 TI-SDK-AM335x-EVM-05.03.02.00

    uname -a 显示以下完整版本字符串:

    Linux AM335x-EVM 3.1.0 #1 Thu 二月9 14:58:49 CST 2012 armv7l 未知

    此致、
    A HART