uboot 解决 SF: Unsupported manufacture 问题

在尝试烧录新板子上的uboot时遇到错误:SF:Unsupported manufacture。通过跟踪代码发现是uboot无法识别flash型号。解决方法是修改spi_flash_probe_stmicro()函数中的flash_table,添加对应芯片ID的条目。设置.pages_per_sector为256,表示每页256字节,.nr_sectors为128,表示128个页,以匹配64K单页大小的8M flash。
摘要由CSDN通过智能技术生成

拿了个新板子,烧了程序,uboot冒出了这个错误.跟踪了一下,发现是不识别flash型号的问题.这...,都能跑uboot了,还不识别flash??追踪了下代码,却也发现了识别flash的合理性:

总得把flash的页大小,容量告诉uboot,之后uboot的读,写才能顺利进行.

/* search the table for matches in shift and id */
        for (i = 0; i < ARRAY_SIZE(flashes); ++i)
                if (flashes[i].shift == shift && flashes[i].idcode == *idp) {
                        /* we have a match, call probe */
                        flash = flashes[i].probe(spi, idp);
                        if (flash)
                                break;
                }

在uboot报错前,它已经对这个flash进行型号判断.flashes[]是一个结构体数组,内容是

static const struct {
        const u8 shift;
        const u8 idcode;
        struct spi_flash *(*probe) (struct spi_slave *spi, u8 *idcode);
} 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值