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/AM3352:NAND 中的 Saveenv 失败

Guru**** 2541930 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/593562/linux-am3352-saveenv-in-nand-fails

器件型号:AM3352

工具/软件:Linux

您好!  

我们使用的是 AM3352定制板、需要从 NAND 引导。

我能够在 NAND 中写入并从 NAND 中引导电路板、但每次从 TFTP 和 NFS 获取映像时、我都需要设置 boot env、  

我想将引导环境保存到 NAND 中,但在引导时看到“*** Error - No valid Environment area found”(***错误-未找到有效的环境区域)  

/----------------- 引导日志------------------------------------------------------- /

CCCCCCCCCC
U-Boot SPL 2016.05-00312-g409aa68-M脏(2017年5月6日- 16:25:50)
尝试从 NAND 引导
未找到预期的 Linux 映像。 请检查您的 NAND 配置。
正在尝试立即启动 u-boot ...


U-Boot 2016.05-00312-g409aa68-M脏(2017年5月6日- 16:25:50 +0530)

CPU:AM335X-GP 修订版2.1
型号:TI AM335x EVM
启用看门狗
DRAM:256 MIB
NAND:256 MIB
MMC:OMAP SD/MMC:0、OMAP SD/MMC:1.
***错误-未找到有效的环境区域
***警告- CRC 错误,使用默认环境

未设置。 验证第一个电子保险丝 MAC
NET:cpsw、USB_ether
按空格键可在2秒钟内中止自动引导

check# setenv netboot 'echo Booting from network...;setenv autoload no;运行 netloadimage;运行 netloadfdt;运行 netargs; bootz ${loadaddr}-${fdtaddr}';
check# setenv netargs 'setenv bootargs console=${console}${optargets}root=/dev/nfs nfsroot=10.99.8.101:${rootpath}、${nfsopts}RW IP=DHCP';
check# setenv bootfile zImage;setenv fdtfile am335x-prcheck.dtb;
Check # setenv serverip 10.99.8.101;
Check # setenv rootpath /opt/nfs/AM335x_BIG;

检查# saveenv
正在将环境保存到 NAND 中...
正在擦除冗余 NAND……
尝试擦除非块对齐的数据
正在擦除 NAN...
尝试擦除非块对齐的数据
支票号

------------------------------------------------------- /

请做不必要的事。

此致、

-- Roank

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。

    此致、

    --罗纳克

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

    对于第一个错误、您会看到:
    ***错误-未找到有效的环境区域

    在执行任何其他 u-boot 命令之前执行 saveenv 可解决此问题。

    下一个错误:
    正在将环境保存到 NAND 中...
    正在擦除冗余 NAND……
    尝试擦除非块对齐的数据
    正在擦除 NAN...
    尝试擦除非块对齐的数据
    表示您的器件未找到 NAND 或无法看到任何要添加到您的环境中的内容。 从 nand_utils.c 驱动程序打印错误:
    if ((opts->offset &(meminfo->erasesize - 1))!= 0){
    printf ("尝试擦除非块对齐的数据\n");
    返回-1;


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

    Yordan、您好!

    感谢您的回答。 )

    在第二个错误中、您说、器件找不到 NAND、或者它看不到任何要添加到您的环境中的内容。

    但是、当我执行 saveenv 时、我可以看到下面 env 部分的起始地址和结束地址是日志。

    ---------------------------------------- 日志-------------------------------------------------------

    检查# mtdparts

    器件 nand0 ,#部件= 10

    #:名称大小偏移 MASK_FLAGS
    0:NAND.SPL 0x00020000 0x00000000 0
    1:NAND.SPL.Backup1 0x00020000 0x00020000 0
    2:NAND.SPL.Backup2 0x00020000 0x00040000 0
    3:NAND.SPL.backup3 0x00020000 0x00060000 0
    4:NAND.U-BOOT-SPL-OS 0x00040000 0x00080000 0
    5:NAND.U-boot 0x00100000 0x000c0000 0
    6:NAND.u-boot-env 0x00020000 0x001c0000 0
    7:NAND.u-boot-env.backup10x00020000 0x001e0000 0
    8:NAND.kernel 0x00800000 0x00200000 0
    9:NAND.FILE-SYSTEM 0x0f600000 0x00a00000 0

    活动分区:nand0、0 -(NAND.SPL) 0x00020000 @ 0x00000000

    默认值:
    mtdds:nand0=nand.0
    mtdparts:mtdparts=nand.0:128k (NAND.SPL)、128k (NAND.SPL.Backup1)、128k (NAND.SPL.Backup2)、128k (NAND.S
    PL.backup3)、256k (NAND.u-boot-spl-OS)、1m (NAND.u-boot)、128k (NAND.u-boot-env)、128k (NAND.u-boot-env.BA)
    ckup1)、8m (NAND.kernel)、-(NAND.file-system)


    PRCHECK# setenv netboot 'echo Booting from network...;setenv autoload no;运行 netloadimage;运行
    netloadfdt;运行 netargs;bootz ${loadaddr}-${fdtaddr}';
    PRCHECK# saveenv
    正在将环境保存到 NAND 中...
    ### CONFIG_ENV_OFFSET =1c0000 & CONFIG_ENV_OFFSET_redund =1e0000
    正在擦除冗余 NAND……
    ### opts->offset = 8ff94eb0 meminfo->erasesize = 1e0000###

    尝试擦除非块对齐的数据
    正在擦除 NAN...
    ### opts->offset = 8ff94e80 meminfo->erasesize = 1c0000###

    尝试擦除非块对齐的数据
    ------------------------------------------------------- /

    我可以轻松地在 NAND.SPL 中写入 MLO、在 NAND.u-boot 中写入 u-boot.img。

    此致、

    --罗纳克

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

    您好、Ronak、

        您的问题是否已解决?如何解决?现在我遇到了相同的问题。

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

    您好!  

    不知道线程现在处于保持状态、所以我 还没有尝试。

    很抱歉。

    此致、

    --罗纳克