主题 : tiny6410 nand 分区问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 59705
精华: 0
发帖: 27
金钱: 140 两
威望: 28 点
贡献值: 0 点
综合积分: 54 分
注册时间: 2011-11-28
最后登录: 2016-02-02
楼主  发表于: 2011-12-18 23:01

 tiny6410 nand 分区问题

刚购买了一块Tiny6410的板子,配了256M DDR和2G MLC flash,另购了一块SD卡,按文档说明能正常从SD卡启动系统,使用SD卡升级Linux系统之后,后发现分区信息为, cat /proc/mtd:

dev:    size   erasesize  name
mtd0: 00400000 00100000 "Bootloader"  <----------- 这里指示的uboot分区size为4MB
mtd1: 00800000 00100000 "Kernel" <----------------- 这里只是kernel分区大小为8MB
mtd2: 7f400000 00100000 "File System"

但是我发现DVD光盘里面2.6.38内核源码里头:arch/arm/mach-s3c64xx/mach-mini6410.c里面分区定义为:
struct mtd_partition mini6410_nand_part[] = {
    {
        .name        = "Bootloader",
        .offset        = 0,
        .size        = (4 * 128 *SZ_1K),   <---------------- 这里是 512KB,不是4MB
        .mask_flags    = MTD_CAP_NANDFLASH,
    },
    {
        .name        = "Kernel",
        .offset        = (4 * 128 *SZ_1K),
        .size        = (5*SZ_1M) , <---------------------- 这里是5MB,不是8MB
        .mask_flags    = MTD_CAP_NANDFLASH,
    },
    {
        .name        = "File System",
        .offset        = MTDPART_OFS_APPEND,
        .size        = MTDPART_SIZ_FULL,
    }
};

为啥不一致呢???请知道的高手解释一下
[ 此帖被garyv在2011-12-19 00:47重新编辑 ]
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-12-19 09:49
你看到的这个是SLC的分区表,MLC的应该是在 drivers/mtd/nand/s3c_nand.c
级别: 新手上路
UID: 59705
精华: 0
发帖: 27
金钱: 140 两
威望: 28 点
贡献值: 0 点
综合积分: 54 分
注册时间: 2011-11-28
最后登录: 2016-02-02
2楼  发表于: 2011-12-19 11:14

 回 1楼(911gt3) 的帖子

既然如此,为什么我看的那个文件里面定义的partition还是会add进内核呢?因为mach-mini6410.c也参与了编译,不需要啊
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
3楼  发表于: 2011-12-19 11:55
不是所有板子都是MLC