- 论坛徽章:
- 0
|
我的系统上只用了一片at49bv6416(8mB)flash.我下载了u-boot-1.1.2....u-boot-1.1.4,发现在flash.c里面定义三种flash结构at49bv1614,at49bv1614a,at49bv6416.而程序中有这么一句:
device_code = *(volatile u16 *)(CFG_FLASH_BASE + 2);我想它应该是用来自动识别flash型号的。
因为在后面:
if((device_code & FLASH_TYPEMASK) == (ATM_ID_BV6416 & FLASH_TYPEMASK))
{.......
printf("AT49BV6416(8MB):");
......
}
一般的flash里面都有产品的id吧?根据u-boot(flash.h)的定义:
#define ATM_ID_BV6416 0X000000D6
#define FLASH_TYPEMASK 0X0000FFFF,
我认为在片子里面的起始第三,四个字节里面存放着flash的id,而且后两位是D6(如果是at49bv6416的话)。
这样的话,我应该可以不对该flash.c做任何修改,只要修改其他文件。因为手头板子还没有回来,所以没法试,故先发贴问问大家。 |
|