flash大小选择和添加mtd的data分区 -- linux内核
来源:互联网 发布:unity3d encodetojpg 编辑:程序博客网 时间:2024/05/21 17:38
需要修改位置:
(1)/linux-2.6/arch/mips/rt2880/Kconfig
(2)/linux-2.6/drivers/mtd/maps/ralink-flash.h
(3)/linux-2.6/drivers/mtd/maps/ralink-spi.c
(4)/vendors/Ralink/RT5350/config/4M_32M_config.linux-2.6(make dep 后生成的config.h)
(1)添加menuconfig中选项
choiceprompt "Flash Size"default RT2880_FLASH_4Mconfig T2880_FLASH_2M bool "2M"config RT2880_FLASH_4M bool "4M"config RT2880_FLASH_8M bool "8M"config RT2880_FLASH_16M bool "16M"config RT2880_FLASH_32M bool "32M"#select RT2880_FLASH_32Mendchoice#Data分区#注释部分不无效choiceprompt "Flash Data Size"default RT2880_FLASH_DATA_320KBconfig RT2880_FLASH_DATA_0KB bool "none(0)KB"#config RT2880_FLASH_DATA_64KB# bool "0x10000(64)KB"#config RT2880_FLASH_DATA_128KB# bool "0x20000(128)KB"#config RT2880_FLASH_DATA_192KB# bool "0x30000(192)KB"#config RT2880_FLASH_DATA_256KB# bool "0x40000(256)KB"config RT2880_FLASH_DATA_320KB bool "0x50000(320)KB"config RT2880_FLASH_DATA_384KB bool "0x60000(384)KB"endchoiceconfig MTD_PHYSMAP_DATA_LEN hex default 0x0 if RT2880_FLASH_DATA_0KB default 0x10000 if RT2880_FLASH_DATA_64KB default 0x20000 if RT2880_FLASH_DATA_128KB default 0x30000 if RT2880_FLASH_DATA_192KB default 0x40000 if RT2880_FLASH_DATA_256KB default 0x50000 if RT2880_FLASH_DATA_320KB default 0x60000 if RT2880_FLASH_DATA_384KBchoice
(2)添加data分区大小,修改kernel分区大小。
#if defined (CONFIG_RT2880_FLASH_32M)#define MTD_BOOT_PART_SIZE0x40000#defineMTD_CONFIG_PART_SIZE0x20000#defineMTD_FACTORY_PART_SIZE0x20000#define MTD_DATA_PAPT_SIZE CONFIG_MTD_PHYSMAP_DATA_LEN/**/#else#if defined (RECONFIG_PARTITION_SIZE)#if !defined (MTD_BOOT_PART_SIZE)#error "Please define MTD_BOOT_PART_SIZE"#endif#if !defined (MTD_CONFIG_PART_SIZE)#error "Please define MTD_CONFIG_PART_SIZE"#endif#if !defined (MTD_FACTORY_PART_SIZE)#error "Please define MTD_FACTORY_PART_SIZE"#endif#else#define MTD_BOOT_PART_SIZE0x30000#defineMTD_CONFIG_PART_SIZE0x10000#defineMTD_FACTORY_PART_SIZE0x10000#define MTD_DATA_PAPT_SIZE CONFIG_MTD_PHYSMAP_DATA_LEN<span style="font-family: Arial, Helvetica, sans-serif;">/*添加data分区长度*/</span>#endif#endif#ifdef CONFIG_RT2880_ROOTFS_IN_FLASH#ifdef CONFIG_ROOTFS_IN_FLASH_NO_PADDING#define CONFIG_MTD_KERNEL_PART_SIZ 0#endif#define MTD_ROOTFS_PART_SIZEIMAGE1_SIZE - (MTD_BOOT_PART_SIZE + MTD_CONFIG_PART_SIZE \+ MTD_FACTORY_PART_SIZE + CONFIG_MTD_KERNEL_PART_SIZ + MTD_DATA_PAPT_SIZE)#defineMTD_KERN_PART_SIZECONFIG_MTD_KERNEL_PART_SIZ//#defineMTD_KERN_PART_SIZE0x310000#else //CONFIG_RT2880_ROOTFS_IN_ROM#define MTD_KERN_PART_SIZEIMAGE1_SIZE - (MTD_BOOT_PART_SIZE + MTD_CONFIG_PART_SIZE \+ MTD_FACTORY_PART_SIZE + MTD_DATA_PAPT_SIZE)/*计算除去data分区长度后内存分区长度*///#defineMTD_KERN_PART_SIZE0x310000#endif
(3)定义data分区
static struct mtd_partition rt2880_partitions[] = {{ name: "ALL", size: MTDPART_SIZ_FULL, offset: 0, },/* Put your own partition definitions here */ { name: "Bootloader", size: MTD_BOOT_PART_SIZE, offset: 0, }, { name: "Config", size: MTD_CONFIG_PART_SIZE, offset: MTDPART_OFS_APPEND }, { name: "Factory", size: MTD_FACTORY_PART_SIZE, offset: MTDPART_OFS_APPEND#ifdef CONFIG_RT2880_ROOTFS_IN_FLASH }, { name: "Kernel", size: MTD_KERN_PART_SIZE, offset: MTDPART_OFS_APPEND, }, { name: "RootFS", size: MTD_ROOTFS_PART_SIZE, offset: MTDPART_OFS_APPEND, #ifdef CONFIG_ROOTFS_IN_FLASH_NO_PADDING }, { name: "Kernel_RootFS", size: MTD_KERN_PART_SIZE + MTD_ROOTFS_PART_SIZE, offset: MTD_BOOT_PART_SIZE + MTD_CONFIG_PART_SIZE + MTD_FACTORY_PART_SIZE, #endif#else //CONFIG_RT2880_ROOTFS_IN_RAM }, { name: "Kernel", size: MTD_KERN_PART_SIZE, offset: MTDPART_OFS_APPEND,#endif//CONFIG_RT2880_ROOTFS_IN_FLASH#ifdef CONFIG_DUAL_IMAGE }, { name: "Kernel2", size: MTD_KERN2_PART_SIZE, offset: MTD_KERN2_PART_OFFSET, #ifdef CONFIG_RT2880_ROOTFS_IN_FLASH }, { name: "RootFS2", size: MTD_ROOTFS2_PART_SIZE, offset: MTD_ROOTFS2_PART_OFFSET, #endif#endif//CONFIG_DUAL_IMAGE/*DATA分区添加部分*/}, {name:"Date", /* mtdblock5 */size:MTD_DATA_PAPT_SIZE, offset: MTDPART_OFS_APPEND,/*偏移量,data开头位置*/ }};
0 0
- flash大小选择和添加mtd的data分区 -- linux内核
- 内核MTD分区大小计算
- 查看 linux flash 分区大小,mtd,nor,nand,partition
- 查看 linux flash 分区大小,mtd,nor,nand,partition
- uboot和内核的mtd分区保持一致
- linux 对MTD分区nand flash的烧写和读取
- uboot分区和内核MTD分区
- Linux移植添加norflash MTD分区
- Linux移植添加norflash MTD分区
- linux-2.6.35内核移植—Nand flash驱动的添加(分区)
- Linux2.6内核的vivi分区及内核MTD分区
- Linux2.6内核的vivi分区及内核MTD分区
- Linux2.6内核的vivi分区及内核MTD分区
- Linux2.6内核的vivi分区及内核MTD分区
- MTD分区、NOR flash、NAND flash 的区别
- MTD分区、NOR flash、NAND flash 的区别
- u-boot中分区和内核MTD分区关系
- u-boot中分区和内核MTD分区关系
- 手把手教你使用Git
- Java解析和修改xml文件
- Android网络通信框架Volley使用技巧汇总(一)
- unity3d 嵌入 移动MM SDK 闪退的问题
- static scoping and dynamic scoping
- flash大小选择和添加mtd的data分区 -- linux内核
- [Hibernate Search] (1) 初识Hibernate Search
- 音视频的一些基础的参数及专业名词详解
- hive优化总结
- Android系统架构剖析(一)
- iOS开发一行代码系列:一行搞定输入框
- Oracle动态SQL语句
- 第10周项目3-血型统计
- RedHat 企业版6 samba配置