ADSP-SC589开发板更换SPI FLASH并从flash引导内核与文件系统

前情提要:目前本人正在用ADSP-SC589开发板做开发,希望实现内核与文件系统都从SPI FLASH启动,但板子上原来的SPI FLASH太小了,于是更换了镁光的MT25QU01GBBB FLASH芯片。但是要想使开发板适配新的FLASH,需要对u-boot源码、设备树保存地址、内核保存地址以及文件系统的引导方式进行一定的修改。以下记录修改过程。

开发环境
开发板:ADSP-SC589 EZ-kit;
原有的FLASH芯片:W25Q128FV;
新的FLASH芯片:MT25QU01GBBB;
u-boot版本:经过ADI公司剪裁的u-boot,可在开发板产品页下载。

1 修改u-boot源码

新的FLASH芯片大体上可以与u-boot原来的SPI驱动兼容,但需要修改一下u-boot中的SPI FLASH ID,以使新的芯片可以被识别。

1.1 修改结构体数组spi_flash_params_table[]

结构体数组spi_flash_params_table[]位于uboot源码/driver/mtd/spi/sf_params.c文件下,它定义了u-boot支持的flash芯片的相关信息。
在这里插入图片描述
数组中元素的典型格式为

	{
   
   "W25Q128BV",	   0xef4018, 0x0,	64 * 1024,   256, RD_FULL,	    WR_QPP | SECT_4K},

"W25Q128BV":代表芯片名称;
0xef4018:前两字节代表芯片的厂商ID,后四字节代表芯片的设备ID;
0x0:代表extend ID;
64 * 1024:代表页的大小;
256:代表页的数量;
RD_FULL:读命令的枚举列表;
WR_QPP | SECT_4K:一些特殊参数。

以上信息一般都可以从芯片手册中找到。

我的MT25QU01GBBB芯片ID为0x20,设备ID为0xBB21,extend ID为0x1040,页大小为64K,页的数量为2048。

为了尽量少改写内容以免出错,我在原有芯片W25Q128FV的信息的基础上进行修改,芯片名与读命令列表、特殊参数保持不变,其余项按照MT25QU01GBBB芯片手册上的内容进行修改,最后得到:

{
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值