首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在U更新-写入NAND之后,saveenv失败了.失败

在U更新-写入NAND之后,saveenv失败了.失败
EN

Stack Overflow用户
提问于 2014-02-12 12:36:04
回答 1查看 1.3K关注 0票数 0

为了能够使用Debian运行我的eSata Sheevaplug,我不得不将U升级到DENX版本。作为一步一步的指导,我使用了这是马丁·麦克梅尔写的。我用屏幕和插头上的USB接口进行了升级。升级进行得很好,重新设置后,我开始使用新版本的插头。

代码语言:javascript
复制
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>>

在指南中是用来设置machid环境变量和MAC地址的。但不幸的是,由于NAND的阻塞,救世主失败了。我尝试了不同版本的U也是由NewIT提供的.行为都是一样的。

代码语言:javascript
复制
Marvell>> setenv machid a76
Marvell>> saveenv
Saving Environment to NAND...
Erasing NAND...
Skipping bad block at  0x00060000                                          

Writing to NAND... FAILED!

有一些块被标记为“坏”,这可能是正常的-通过NewIT。

代码语言:javascript
复制
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中保存环境变量?

谢谢你,希伯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-17 14:40:07

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

代码语言:javascript
复制
Marvell>> nand bad

Device 0 bad blocks:
  00060000
  ...

包括/吐露/舍瓦普吕克,它完美地指向坏块。

代码语言:javascript
复制
/*
 * 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,我将env存储移到了那里。

代码语言:javascript
复制
/*
 * 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小于384 k。否则,我们将编写u引导到坏块标记内存,并将砖头设备。

使用自定义env地址重新编译的最佳方法是使用Michlmayrs消息来源,它包括用于mmc和e支持的修补程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21728146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档