2440超详细uboot移植笔记(十)------支持NOR FLASH

你好!这里是风筝的博客,

欢迎和我一起交流。


之前我们修改了可以NOR FLASH 启动uboot,但是会发现:

Falsh: 0 Bytes

说明此时uboot并没有识别出 NOR FLASH,现在我们来修改修改

 

a.在cfi_flash.c(路径:drivers/mtd/cfi_flash.c)里写上定义:

#define _DEBUG1

这是一个宏开关,这样我们即可以看到一些uboot启动信息,会看到:

JEDEC PROBE: ID c2 2249 0

这是我们NOR FLASH的ID.

 

b.在jedec_flash.c 文件(路径:drivers\mtd\jedec_flash.c) 里的jedec_table数组最后那里加上新的型号信息:

{/*JZ2440:JEDEC PROBE:NOR: ID c2 2249 0     NAND:ID f0 ea00 0*/
.mfr_id = (u16)MX_MANUFACT,
.dev_id = 0x2249,
.name = "JZ2440",
.uaddr = {/*解锁地址*/
[1] = MTD_UADDR_0x0555_0x02AA /* x16 */
},
.DevSize = SIZE_2MiB,/*总大小*/
.CmdSet = P_ID_AMD_STD,
.NumEraseRegions= 4,
.regions = {
ERASEINFO(16*1024, 1),
ERASEINFO(8*1024, 2),
ERASEINFO(32*1024, 1),
ERASEINFO(64*1024, 31),
}
},

这里也是按照手册来的。

 

 

c.在smdk2440.h里找到:

 

#define CONFIG_SYS_MAX_FLASH_SECT (19)

这里最大FLASH扇区数CONFIG_SYS_MAX_FLASH_SECT是19,

而我们用的NORFLASH的扇区数是35,超过了最大扇区数限制

所以这个我们可以修改成128

 

d.注释掉:

#define _DEBUG1

 

 

e. 修改sp指针:

在uboot2016.11版本,执行完board_init_f后有一句:

ldr sp, [r9, #GD_START_ADDR_SP] /* sp = gd->start_addr_sp */,

所以不用我们设置了......

 

 

你可能感兴趣的:(uboot,u-boot,移植)