Howto

Flash上のパーティション割当変更方法(Armadillo-J)

パーティションを4つに分け、boot用領域、Hermit用領域、Kernel+Userland領域の他に、192kBのデータ保存領域を作成する例を基に、パーティションの割当変更方保を説明します。

1. uClinux-distディレクトリに移動

2. linux-2.4.x/drivers/mtd/maps/armadilloj.c を編集してパーティションの数を決める

記述例

    struct mtd_partition armadilloj_partitions[] = {
    {
        .name       = "Flash/Reserved",
        .size       = RESERVED_SIZE,
        .offset     = 0,
        .mask_flags = MTD_WRITEABLE, /<em> force read-only </em>/
    },
    {
        .name       = "Flash/Hermit",
        .size       = HERMIT_SIZE,
        .offset     = MTDPART_OFS_APPEND,
        .mask_flags = MTD_WRITEABLE, /<em> force read-only </em>/
    },
    {
        .name       = "Flash/KernelUser",
        .size       = SYSTEM_SIZE,
        .offset     = MTDPART_OFS_APPEND,
    },
    {
        .name       = "Flash/DataArea",
        .size       = DATAAREA_SIZE,
        .offset     = MTDPART_OFS_APPEND,
    },
    }

※ "Flash/Reserved"と"Flash/Hermit"はブートのために必ず必要です

3. kernel-2.4.x/include/asm-armnommu/arch-netarm/hardware.h を編集して各パーティションのサイズを決める

記述例

    #define RESERVED_START (FLASH_START)
    #define RESERVED_SIZE  (0x00020000)<br>
    #define HERMIT_START   (RESERVED_START + RESERVED_SIZE)
    #define HERMIT_SIZE    (0x00020000)<br> 
    #define SYSTEM_START   (HERMIT_START + HERMIT_SIZE)
    #define SYSTEM_SIZE    (0x00190000)<br>
    #define CONFIG_START   (SYSTEM_START + SYSTEM_SIZE)
    #define CONFIG_SIZE    (0x00030000)

※ RESERVED_SIZE と HERMIT_SIZE は変更できません。また、各サイズの合計が2MBになるように計算して割り当てを行って下さい。

4. makeコマンドを入力してイメージの作成を行う

以上で、Flashのパーティション割り当てを変更したイメージが作成できます。 各パーティションは上から順に、

/dev/mtdblock0
/dev/mtdblock1
/dev/mtdblock2
/dev/mtdblock3

のデバイスノードに相当します。
(char型デバイスとしてアクセスする場合は /dev/mtd0, /dev/mtd1, /dev/mtd2, /dev/mtd3)
デバイスノードの作成方法はデバイスノードの作成方法を参照して下さい