繁体   English   中英

U-Boot更新后saveenv失败-写入NAND…失败

[英]saveenv fails after U-Boot update - Writing to NAND… FAILED

为了能够使用Debian Wheezy运行我的eSata Sheevaplug,我必须将U-Boot升级到DENX版本。 作为逐步指南,我使用了Martin Michlmayr的读物 我使用屏幕和插头上的USB记忆棒进行了升级。 升级进展顺利,重置后,我开始使用新版本的插件。

Marvell>> version
U-Boot 2013.10 (Oct 21 2013 - 21:06:56)
Marvell-Sheevaplug - eSATA - SD/MMC
gcc (Debian 4.8.1-9) 4.8.1
GNU ld (GNU Binutils for Debian) 2.23.52.20130727
Marvell>>

在指南中编写了设置机械加工环境变量和MAC地址。 但是不幸的是,由于NAND中的坏块,saveenv失败了。 我尝试了NewIT提供的U-Boot的不同版本。 所有人的行为都相同。

Marvell>> setenv machid a76
Marvell>> saveenv
Saving Environment to NAND...
Erasing NAND...
Skipping bad block at  0x00060000                                          

Writing to NAND... FAILED!

有一些被NewIT标记为坏的块,可能是正常的。

Marvell>> nand info

Device 0: nand0, sector size 128 KiB
  Page size      2048 b
  OOB size         64 b
  Erase size   131072 b
Marvell>> nand bad

Device 0 bad blocks:
  00060000
  00120000
  00360000
  039c0000
  0c300000
  10dc0000
  1ac40000
  1f1c0000

有人知道问题是什么,我需要更改什么才能在u-boot中保存环境变量?

谢谢,schibbl

由于NAND环境变量存储的配置,128k的扇区大小以及映射环境变量存储地址的坏块,因此无法将env写入NAND。

Marvell>> nand bad

Device 0 bad blocks:
  00060000
  ...

include / configs / sheevaplug.h完美地指出了坏块。

/*
 * max 4k env size is enough, but in case of nand
 * it has to be rounded to sector size
 */
#define CONFIG_ENV_SIZE                 0x20000 /* 128k */
#define CONFIG_ENV_ADDR                 0x60000
#define CONFIG_ENV_OFFSET               0x60000 /* env starts here */

由于未使用的扇区0x80000至0x9FFFF,我将环境存储移到了那里。

/*
 * max 4k env size is enough, but in case of nand
 * it has to be rounded to sector size
 */
#define CONFIG_ENV_SIZE                 0x20000 /* 128k */
#define CONFIG_ENV_ADDR                 0x80000
#define CONFIG_ENV_OFFSET               0x80000 /* env starts here due to bad block */

谨防! 我们必须确保编译后的u-boot.kwb小于384k。 否则,我们会将u-boot写入标记为坏块的内存中,并对设备进行砌块。

使用自定义环境地址重新编译的最佳方法是使用Michlmayrs源 ,其中包括用于mmc和e-sata支持的补丁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM