u-boot-2014.10移植第22天----添加nand flash命令支持(四)

在移植U-Boot 2014.10过程中遇到nand flash的坏块标记问题。通过分析nand_bbt.c和nand_util.c文件,成功解决了MTD Erase failure错误。添加了恢复出厂设置的函数,并重新扫描坏块。使用nand bad和markbad命令进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决问题:

nand0: MTD Erase failure: -5  

drivers/mtd/nand/nand_bbt.c文件中初始化bbt

/*
     * Allocate memory (2bit per block) and clear the memory bad block
     * table.
     */
    this->bbt = kzalloc(len, GFP_KERNEL);
    if (!this->bbt)
        return -ENOMEM;

每个block用2个比特表示是否为坏块。

nand_scan_bbt

------>nand_memory_bbt

----------->create_bbt

---------------->scan_block_fast

下面的两个函数用来查看和标记上面说的每个block的2比特位。初步分析坏块时2比特位置为11。

static inline uint8_t bbt_get_entry(struct nand_chip *chip, int block)
{
    uint8_t entry = chip->bbt[block >> BBT_ENTRY_SHIFT];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fulinux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值