flash大小选择和添加mtd的data分区 -- linux内核

需要修改位置:

(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中选项

choice
	prompt "Flash Size"
	default RT2880_FLASH_4M

config 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_32M
endchoice

#Data分区	#注释部分不无效
choice
	prompt "Flash Data Size"
	default RT2880_FLASH_DATA_320KB

config 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"

endchoice	

config 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_384KB

choice
 

(2)添加data分区大小,修改kernel分区大小。

#if defined (CONFIG_RT2880_FLASH_32M)
#define MTD_BOOT_PART_SIZE	0x40000
#define	MTD_CONFIG_PART_SIZE	0x20000
#define	MTD_FACTORY_PART_SIZE	0x20000
#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_SIZE	0x30000
#define	MTD_CONFIG_PART_SIZE	0x10000
#define	MTD_FACTORY_PART_SIZE	0x10000
#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_SIZE	IMAGE1_SIZE - (MTD_BOOT_PART_SIZE + MTD_CONFIG_PART_SIZE 					+ MTD_FACTORY_PART_SIZE + CONFIG_MTD_KERNEL_PART_SIZ  + MTD_DATA_PAPT_SIZE)
#define	MTD_KERN_PART_SIZE	CONFIG_MTD_KERNEL_PART_SIZ
//#define	MTD_KERN_PART_SIZE	0x310000
#else //CONFIG_RT2880_ROOTFS_IN_ROM
#define MTD_KERN_PART_SIZE	IMAGE1_SIZE - (MTD_BOOT_PART_SIZE + MTD_CONFIG_PART_SIZE 					+ MTD_FACTORY_PART_SIZE + MTD_DATA_PAPT_SIZE)/*计算除去data分区长度后内存分区长度*/
//#define	MTD_KERN_PART_SIZE	0x310000
#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开头位置*/
        }
};
时间: 2024-09-29 04:27:29

flash大小选择和添加mtd的data分区 -- linux内核的相关文章

/proc/mtd 各个参数含义 -- linux内核

通过/proc虚拟文件系统读取MTD分区表:cat /proc/mtd mtd .name = raspi, .size = 0x00400000 (4M) .erasesize = 0x00010000 (64K) .numeraseregions = 0 Creating 6 MTD partitions on "raspi": 0x00000000-0x00400000 : "ALL" 0x00000000-0x00030000 : "Bootloa

添加自己的驱动程序到Linux内核(详解)

背景: 移植4g模块的时候,看到文档中有添加驱动到内核的步骤,于是趁着这个机会,展开有关的学习. Target :hi3531d Linux    :Linux-3.18 步骤 在自己喜欢的位置创建一个目录(前提是这个目录下面存在Kconfig以及Makefile) 为了方便演示,我们这里在 drivers 目录下面创建 demo 文件夹 原文地址:https://www.cnblogs.com/schips/p/12083004.html

在CentOS 6.5里添加一块硬盘,分区并格式化后,挂载到/data下

常用命令: [[email protected] etc]# uname –a------à查看内核版本 Linux goodluck 2.6.32-431.el6.x86_64 #1 SMPFri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email protected] etc]# cat /proc/version -----------à查看内核等版本信息 Linux version 2.6.32-431.el6.

office 字体大小选择,没有 一号二号等中文字体

一同事的电脑,office word 字体突然只有 5.5 ,6这种数字的字体,没有了一号二号五号六号这些中文的字体大小选择,此问题解决方法: 解决方法:打开开始菜单,office 语言工具,主要编辑语言默认选择中文

s3c2440 移植linux内核 添加网卡支持 yaffs2文件系统支持

三.内核的移植 说明:针对的是百问网的jz2440 gcc:4.9.1 1.移植内核 首先,下载源码包:https://www.kernel.org/ 现在时间为2014年12月20日其主界面截图为: 在此,就在下较新的稳定的版本作为尝试.在这里有个命名问题需要说明一下,最前面的2.6或者3.18是主版本号码,后面的次版本号是比如2.6.32.65中的32,再后面的比如2.6.32.65中的65是升级版本号,主版本号为奇数的是开发本比如3.17,主版本号为偶数的为稳定版比如3.18,一般情况下名

u-boot中分区和内核MTD分区关系

一.u-boot中环境变量与uImage中MTD的分区关系 分区只是内核的概念,就是说A-B地址放内核,C-D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等. 一般我们只需要分3-4个区,第一个为boot区,一个为boot参数区(传递给内核的参数),一个为内核区,一个为文件系统区.(但是有的内核就会有很多分区,比如内核参数会有两个,还有会Logo的地址) 而对于bootloader中只要能将内核下载到A~B区的A地址开始处就可以,C~D区的C起始地址下载文件系统…….这些起始地

【转】 linux内核移植和驱动添加(三)

原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED驱动的添加 1, 将led.c驱动文件拷贝到linux-3.1.4/drivers/char/目录下 [email protected]# pwd /change/linux-3.1.4/drivers/char [email protected]#  cp /mnt/hgfs/fh/driver/

十天学Linux内核之第九天---向内核添加代码

原文:十天学Linux内核之第九天---向内核添加代码 睡了个好觉,很晚才起,好久没有这么舒服过了,今天的任务不重,所以压力不大,呵呵,现在的天气真的好冷,不过实验室有空调,我还是喜欢待在这里,有一种不一样的感觉,在写了这么多天之后,自己有些不懂的页渐渐的豁然开朗了吗,而且也交到了一些朋友,真是相当开心啊.今天将介绍一下向内核中添加代码,一起来看看吧~ 先来熟悉一下文件系统,通过/dev可以访问Linux的设备,我们以men设备驱动程序为例来看看随机数是如何产生的,源代码在dirvers/cha

linux环境 添加新硬盘、分区和挂载

Linux下添加新硬盘,分区及挂载 55310阅读 0评论2012-02-08 siallen分类: 挂载好新硬盘后输入fdisk -l命令看当前磁盘信息 可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分区 进入fdisk命令,输入h可以看到该命令的帮助,按n进行分区 这里输入e即分为逻辑分区,按p即分为主分区,我们要将这块盘分为主分区即输入p 到这里输入该主分区为第几个主分区,由于是新盘我们输入1来分第一个主分区 First Cylinder