原创 【原创】Linux2.6.28.6移植到S3C2440——2

2009-8-28 09:50 2856 6 6 分类: MCU/ 嵌入式

4 修改NANDFlash驱动<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


a)      修改arch/arm/plat-s<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3c24xx/common-smdk.c这是SMDK2410HSMDK2440的共用代码      NANDFlash分区信息约在109行处smdk_default_nand_part[]结构体中如果BootloaderUBOOT则比较好办因为UBOOT作为BootloaderNAND分区表是由Linux内核载入的内核中分成什么样就是什么样。若是VIVI的话,则VIVI的分区必须和内核中这里的分区一致。


static struct mtd_partition smdk_default_nand_part[] = {   


         [0] = {


                   .name       = "Boot Agent",                 //分区名字


                   .offset       = 0,                     //分区起始地址


                   .size = SZ_64K*3,              //分区大小这里第一个分区的大小我是


                                                        //根据ubootstart.S中重定向代码段                                                             //拷贝的大小确定为192KB,0x30000


         },       // 对于SZ_64K这些定义大小的宏定义在arch/arm/include/asm/Sizes.h


         [1] = {


                   .name       = "BootLoader Param Agent",


                   .offset       = SZ_64K*3,             


//uboot/include/configs/hgateway.h


//#define CONFIG_ENV_OFFSET 0x30000得到


                   .size = SZ_64K,                 


//uboot/include/configs/hgateway.h


//#define CONFIG_ENV_SIZE                 0x10000得到


         },


         [2] = {


                   .name       = "Kernel Agent",


                   .offset      = SZ_256K,


                   .size = SZ_1M*3,


         },


         [3] = {                 //剩下的划为一个区


                   .name       = "File System Agent",


                   .offset       = SZ_256K+ SZ_1M*3,      //0x340000


                   .size = 0x03cc0000,           //60MB+744KB


         }


};



b)      修改arch/arm/plat-s3c24xx/common-smdk.cNANDFlash的读写匹配时间约在140行处,结构体smdk_nand_info


static struct s3c2410_platform_nand smdk_nand_info = {


       .tacls              = 20,


       .twrph0          = 60,


       .twrph1          = 20,


       .nr_sets   = ARRAY_SIZE(smdk_nand_sets),


       .sets        = smdk_nand_sets,


};   


//此三个参数根据芯片手册知晓看了老半天了没有看明白这三个值到底怎么确认


c)      在配置菜单中添加对NANDFlash的支持, #make menuconfig然后在配置菜单中选Device Drivers——Memory Techonlogy Device(MTC)support——MTD partitioning support——NAND Device Support——NAND Flash support for S3C2410/S3C2440 SoC然后保存配置菜单。


d)      然后就是去掉一些没必要的选项和设备驱动,去掉所有的调试开关,对内核进行裁剪

——STAGE2
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条