转自:http://blog.csdn.net/yming0221/article/details/6566551
硬件平台:FL2440开发板
内核版本:2.6.28
主机:ubuntu 11.04
内核版本:2.6.39
原创作品,转载请标明出处http://blog.csdn.net/yming0221/archive/2011/06/24/6566551.aspx
本来以为fl2440的nand flash大小为128M,问了客服才知道,现在FL2440使用的是现代的flash,现在都换成256M的了,只是飞凌的bootloader没有相应的修改,它使用的既不是u-boot,也不是vivi,而是自己的bootloader。现在修改bootloader源码中的nand.c
修改如下:
- //可更改删除分区,分区名字不可改
- static struct Partition NandPart[] = {
- {0, 0x00020000, "boot"}, //128K one block
- {0x00020000, 0x00060000, "bootParam"}, //384K three blocks
- {0x00080000, 0x00100000, "pic"}, //1M
- {0x00180000, 0x00380000, "MyApp"}, //3.5M
- {0x00500000, 0x00300000, "kernel"}, //3M
- {0x00800000, 0x0f000000, "fs_yaffs"}, //240M
- //{0x09e00000, 0x00080000, "eboot"}, //512K
- //{0x09e80000, 0x06400000, "wince"}, //100M
- {0, 0 , 0}
- };
使用ADS工具,重新编译bootloader,生成.bin文件,然后烧写bootloader,这样分给linux文件系统的flash 大小为240M(由于自己不用
WIN CE)
这样使linux充分利用flash,不用将许多库文件挂载成NFS了
然后修改FL2440自带的内核(大部分驱动都已经集成)修改linux/arch/arm/plat-s3c24xx/common-smdk.c
- static struct mtd_partition smdk_default_nand_part[] = {
- [0] = {
- .name = "Boot",
- .size = 0x00100000,
- .offset = 0
- },
- [1] = {
- .name =