2013年5月17日 星期五

nand flash 之 mtd_partition 增減

SOC: aml
OS: Android 4.1
Kernel: 3.0.8
uboot: ?

nand flash也需要劃分partition、format的, (format格式為YAFFS)
劃分partition的方式是在kernel裡實踐

劃分的重點為:
size跟offset之間要連接好,如下:
(nand flash會有bad block,所以通常會預留點空間,不過下面的有點留太多了@@)

如下, 劃分8個mtd
static struct mtd_partition normal_partition_info[] = {
    {
        .name = "logo",
        .offset = 32*SZ_1M+40*SZ_1M,
        .size = 8*SZ_1M,
    },
    {  //預留了48-(32+8)M@@
        .name = "aml_logo",
        .offset = 48*SZ_1M+40*SZ_1M,
        .size = 8*SZ_1M,
    },
    //預留了64-(48+8)M@@
        .name = "recovery",
        .offset = 64*SZ_1M+40*SZ_1M,
        .size = 8*SZ_1M,
    },
    //預留了96-(64+8)M@@
        .name = "boot",
        .offset = 96*SZ_1M+40*SZ_1M,
        .size = 8*SZ_1M,
    },
    {
        .name = "system",
        .offset = 128*SZ_1M+40*SZ_1M,
        .size = 1024*SZ_1M,
    },
    {
        .name = "cache",
        .offset = 1152*SZ_1M+40*SZ_1M,
        .size = 256*SZ_1M,
    },
    {
        .name = "userdata",
        .offset = 1408*SZ_1M+40*SZ_1M,
        .size = 1024*SZ_1M,
    },
    {
        .name = "NFTL_Part",   ( setting -> storage : 內部儲存空間的總空間)
        .offset = MTDPART_OFS_APPEND,
        .size = MTDPART_SIZ_FULL,
    },
};


拿掉一個partition:

static struct mtd_partition normal_partition_info[] = {
        .name = "aml_logo",
        .offset = 32*SZ_1M+40*SZ_1M,
        .size = 8*SZ_1M,
    },
    {
        .name = "recovery",
        .offset = 48*SZ_1M+40*SZ_1M,
        .size = 8*SZ_1M,
    },
    {
        .name = "boot",
        .offset = 64*SZ_1M+40*SZ_1M,
        .size = 8*SZ_1M,
    },
    {
        .name = "system",
        .offset = 80*SZ_1M+40*SZ_1M,
        .size = 1024*SZ_1M,
    },
    {
        .name = "cache",
        .offset = 1034*SZ_1M+40*SZ_1M,
        .size = 256*SZ_1M,
    },
    {
        .name = "userdata",
        .offset = 1290*SZ_1M+40*SZ_1M,
        .size = 1024*SZ_1M,
    },
    {
        .name = "NFTL_Part",
        .offset = MTDPART_OFS_APPEND,
        .size = MTDPART_SIZ_FULL,
    },
};


沒有留言:

張貼留言