在u-boot中增加nor flash的支持

开发板只带有一片SSTFLASH,而u-bootat91sam9260ek中没有运行程序在norflash中的实例。花时间修改配置,将其运行在norflash中。

 

(1)       修改板子头文件mprts2.h:

/* NAND flash */

 

/* NOR flash - no real flash on this board */

//#define CONFIG_SYS_NO_FLASH

 

#define CONFIG_FLASH_CFI_LEGACY          1

#define CONFIG_SYS_FLASH_BASE              0x10000000

#define CONFIG_SYS_FLASH_CFI          1

#define CONFIG_FLASH_CFI_DRIVER           1

 

 

#define CONFIG_SYS_MAX_FLASH_SECT            128

#define CONFIG_SYS_MAX_FLASH_BANKS        1

#define CONFIG_FLASH_CFI_WIDTH            FLASH_CFI_16BIT

1)        CONFIG_SYS_NO_FLASHCONFIG_FLASH_CFI_DRIVER CONFIG_SYS_FLASH_CFI: 定义此变量表明不使用nor flashCONFIG_SYS_FLASH_CFI表示添加CFI FLASH的驱动,在MAKE过程中,生成include/autoconf.mk的时候会添加一行:

CONFIG_SYS_FLASH_CFI=y

此时,drivers/mtd/cfi_flash.c驱动将添加到编译文件中。

2)        CONFIG_FLASH_CFI_LEGACY:定义是JEDEC标准的FLASHdrivers/mtd/jedec_flash.c被添加到编译文件中。

3)        CONFIG_SYS_FLASH_BASEFLASH的访问地址。

4)        CONFIG_SYS_MAX_FLASH_SECTFLASHBLOCK数目。

5)        CONFIG_SYS_MAX_FLASH_BANKSFLASHBANKS数,表示有多少个FLASH,一般设置为1

6)        CONFIG_FLASH_CFI_WIDTHFLASH的端口宽度。

 

(2)       修改jedec_flash.c.

由于使用的FLASHJEDEC标准的FLASH,它需要使用jedec_flash驱动。碰巧驱动文件中没有我使用的FLASH型号,修改它的内容如下:

static const struct amd_flash_info jedec_table[] = {

//内容略

 

       {

              .mfr_id          = (u16)SST_MANUFACT,

              .dev_id           = SST_FLASH_ID,

              .name             = "SST_FLASH",

              .uaddr            = {

                     [1] = MTD_UADDR_0x0555_0x02AA

              },

              .DevSize = SIZE_8MiB,

              .CmdSet         = P_ID_AMD_STD,

              .NumEraseRegions= 1,

              .regions   = {

                     ERASEINFO(0x10000,128),

              }

       },

 

};

有几个参数需要说明一下:

1)  uaddr: 设置FLASH操作的前两个指令,可以查DATASHEET得出。如果是8位的端口设置“[0] ”,16位的端口设置“[1] ”的内容,如上面的那样;

2)  NumEraseRegionsERASEINFO:设置FLASH的区域,如设置的FLASH块的大小为64K字节,共128个块。也可设置多个区域,NumEraseRegions设置区域的数目。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值