void flash_print_info (flash_info_t * info)
{
int i;
switch (info->flash_id & FLASH_VENDMASK) {
case (AMD_MANUFACT & FLASH_VENDMASK):
printf ("AMD: ");
break;
default:
printf ("Unknown Vendor ");
break;
}
switch (info->flash_id & FLASH_TYPEMASK) {
case (AMD_ID_LV400B & FLASH_TYPEMASK):
printf ("1x Amd29LV400BB (4Mbit)\n");
break;
case (AMD_ID_LV800B & FLASH_TYPEMASK):
printf ("1x Amd29LV800BB (8Mbit)\n");
break;
case (AMD_ID_LV160B &FLASH_TYPEMASK):
printf ("1x S29AL016J(2Mbyte ,16bit ,Bottom Boot Device) \n");
break;
default:
printf ("Unknown Chip Type\n");
goto Done;
break;
}
···
}
3. 在 /u-boot-1.1.6/board/mini2440/Makefile 中 ,查看是否已经增加了 flash.o 依赖
COBJS := mini2440.o flash.o
SOBJS := lowlevel_init.o
4. 编译,烧录到开发板后,测试是否移植成功
4.1. 开机打印信息如下
4.2. 输入 flinfo ,打印信息如下
35个sector与理论相同,001E0000 处为 RO ,是环境变量储存区,正确. 芯片打印信息,正确.
4.3. 设置 ip 地址 ,然后保存,打印信息如下
4.4. 重启开发板,用 printenv 打印环境变量,看看地址是否已经更改为 192.168.1.17,并且消除了 3.1 中的 bad crc 警告
重启打印信息如下,可以看出已经消除了 3.1 中 打印的 bad crc 警告信息
输入 printenv 查看环境变量,可以看出地址已经修改为 192.168.1.17
5. 至此,移植成功. Done!
这次的移植遇到了很多问题,一开始本来是想用cfi 接口的,后来为了更深入熟悉norflash... So~
在移植过程中,遇到问题可以打开uboot的调试信息,在mini2440.h中 定义 #define DEBUG 1 即可
遇到问题的过程中可以自己添加调试信息,一路追踪.
加油! Osu~