AM3359的开发板都是支持nand flash的,对nor没有支持。对于NOR驱动,首先要重新配置引脚,在mux.c
文件中,把NOR pin mux重新配置和你的硬件电路对应。
第二,重新配置gpmc_init()函数,把CONFIG1-CONFIG7寄存器改为支持NOR的时序和存储空间大小。
对于SPANSION的S29GL512系列的,时序配置都相同,可以在uboot里搜索 S29GL 关键词,里面有针对
S29GL系列的通用配置,是可以直接使用的,只需要修改CONFIG7,匹配你的芯片的大小。
第三,在config.h文件中,添加CFI FLASH的支持 CONFIG_SYS_FLASH_CFI,cfi_flash.c中的通用程序
是完全支持S29GL系列的。你只需要配置一下你的芯片的CONFIG_SYS_MAX_FLASH_SECT,
CONFIG_SYS_FLASH_CFI_WIDTH等。可以在其它uboot文件的config.h中复制过来一份,修改适合自己的
参数即可。
里面的几个重要参数:
CONFIG_SYS_MAX_FLASH_SECT FLASH的最大块数,S29GL512的sector是128K大小,如果你的芯片
大小是512Mbit,那这里这个参数就要大于512即可
CONFIG_SYS_MAX_FLASH_BANKS 就是这个芯片一共有几个BANK,S29GL512系列是1个。所有的
sector都是128K。有的芯片第一个sector如果是32K,其它的sector都是128K,那么这时这个参数就是2。
CONFIG_SYS_FLASH_CFI_WIDTH FLASH数据线宽,根据硬件电路确定是FLASH_CFI_16BIT还是
FLASH_CFI_8BIT.
CONFIG_SYS_FLASH_SIZE,NOR_SECT_SIZE这些参数比较容易。其它的宏定义都不需要参数了,直接从
其它文件复制过来一份即可。