使内核支持NOR FLASH分区
发布时间:2020-12-15 07:01:02 所属栏目:百科 来源:网络整理
导读:使内核支持NOR FLASH 分区 由于华恒的NOR FLASH 的默认分区是 0x00000000 – 0x00040000 “ppcboot” 0x00040000 – 0x00140000 “kernel” 0x00140000 – 0x00540000 “ramdisk” 0x00540000 – 0x00740000 “cramfs” 0x00740000 – 0x00800000 “jffs2”
使内核支持NOR
FLASH分区
由于华恒的NOR FLASH的默认分区是 0x00000000 – 0x00040000 “ppcboot” 0x00040000 – 0x00140000 “kernel” 0x00140000 – 0x00540000 “ramdisk” 0x00540000 – 0x00740000 “cramfs” 0x00740000 – 0x00800000 “jffs2” 按照这样的分区,给内核的空间只有1M大小,若编译出的内核大于1M,就不能完整烧写进FLASH,系统是绝对启动不了的,所以,在下载内核前,我们要先让内核支持对NOR FLASH分区;步骤如下: 1. 根据网上资料,知道cfi_flagadm.c文件的驱动结构与NOR FLASH的相似,所以,我们可以修改cfi_flagadm.c驱动来实现内核对NOR FLASH分区的支持; 在2.6.14内核目录下,执行命令: # cd drivers/mtd/maps # cp cfi_flagadm.c ?HH_s3c2410.c # vim HH_s3c2410.c 找到宏定义 ?#define FLASH_PHYS_ADDR 0X40000000 ?#define FLASH_SIZE 0X400000 根据16M NOR FLASH,将其修改如下: ?#define FLASH_PHYS_ADDR 0X00000000 //FLASH起始地址 ?#define FALSH_SIZE 0x1000000 ? //FLASH大小 16M 同时,将FLASH_PARTITION0_ADDR等分区信息修改如下: ?#define FLASH_PARTITION0_ADDR 0x00000000 //bootloader分区起始地址 ?#define FLASH_PARTITION0_SIZE ?0x00040000 //bootloader分区大小256k ? ?#define FLASH_PARTITION1_ADDR 0x00040000 //kernel分区起始地址 ?#define FLASH_PARTITION1_SIZE ?0x00200000 //kernel分区大小 2MB ?#define FLASH_PARTITION2_ADDR 0x00240000 //ramdisk分区起始地址 ?#define FLASH_PARTITION2_SIZE ?0x00400000 //ramdisk分区大小 4MB ?#define FLASH_PARTITION3_ADDR 0x00640000 //jffs分区起始地址 ?#define FLASH_PARTITION3_SIZE ?0x00700000 //jffs分区大小 7MB 根据自己习惯,更改结构体实例struct mtd_partition flagadm_parts[]内的分区名称,或不修改也行; 保存退出! 2.在内核编译选项中添加HH_s3c2410的编译选项; # cd drivers/mtd/maps # vim Konfig ?在 menu “Mapping drivers for chip access” ? ?depends on MTD!=n ? ?下添加 ? ? config HH_NOR_FLASH_SUPPORT ? ? ?tristate “HH_NOR_FLASH_SUPPORT” ? ? ?help ? ? ? help ? ?保存退出! ? # vim Makefile ? ?在 # Chip mappings下添加 ? ?obj-$(CONFIG_HH_NOR_FLASH_SUPPORT) += HH_s3c2410.o ? 保存退出! ?这样,就可以在内核根目录下通过make menuconfig选择编译NOR FLASH分区驱动了; ?# make menuconfig ?Device Drivers-> ? Memory Technology Devices(MTD)-> ? ?[*] Memort Technology Device(MTD) support ? ?[*] MTD partitioning support ? ? //MTD设备分区支持 ? ?[*] Caching block device assess to MTD devices ? //未测试是否必须 ? ?Mapping drivers for chip access-> ? ? [*] HH_NOR_FLASH_SUPPORT ?这样就可以使2.6.14内核支持NOR FLASH重新分区了! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |