zoukankan      html  css  js  c++  java
  • linux内核 mtd分区

    首先
    内核配置需要打开MTD选项

    Memory Technology Devices (MTD)  --->
    

    如果是NOR Flash,需要选择Common Flash Interface (CFI)相关的选项;而且需要配置映射首地址(和uboot中配置的flash首地址一致)、映射地址大小和位宽

    <*> CFI Flash device in physical memory map
    (0xff800000) Physical start address of flash mapping
    (0x2000000) Physical length of flash mapping
    (2)   Bank width in octets 
    

    如果是NAND Flash,需要选择NAND Flash相关的选项

    修改内核文件
    linux-2.6.15.b/drivers/mtd/maps/physmap.c

    //linux
    #define FLASH_PARTITION1_ADDR 0x00000000		//偏移地址
    #define FLASH_PARTITION1_SIZE 0x001C0000		//大小
    
    //ramdisk
    #define FLASH_PARTITION2_ADDR 0x001C0000
    #define FLASH_PARTITION2_SIZE 0x00240000
    
    //ramdisk reserve
    #define FLASH_PARTITION3_ADDR 0x00400000
    #define FLASH_PARTITION3_SIZE 0x00380000
    
    //uboot Environment
    #define FLASH_PARTITION4_ADDR 0x00780000
    #define FLASH_PARTITION4_SIZE 0x00020000
    
    //uboot
    #define FLASH_PARTITION0_ADDR 0x007A0000
    #define FLASH_PARTITION0_SIZE 0x00060000
    
    static struct mtd_partition mtd_parts[] = {
            {
                    .name =         "Bootloader",
                    .offset =       FLASH_PARTITION0_ADDR,
                    .size =         FLASH_PARTITION0_SIZE
            },
            {
                    .name =         "Kernel image",
                    .offset =       FLASH_PARTITION1_ADDR,
                    .size =         FLASH_PARTITION1_SIZE
            },
            {
                    .name =         "Initial ramdisk image",
                    .offset =       FLASH_PARTITION2_ADDR,
                    .size =         FLASH_PARTITION2_SIZE
            },
            {
                    .name =         "ramdisk reserve",
                    .offset =       FLASH_PARTITION3_ADDR,
                    .size =         FLASH_PARTITION3_SIZE
            },
            {
                    .name =         "uboot Environment",
                    .offset =       FLASH_PARTITION4_ADDR,
                    .size =         FLASH_PARTITION4_SIZE
            },
    };
    
    #define PARTITION_COUNT (sizeof(mtd_parts)/sizeof(struct mtd_partition))
    

    可参考地址https://blog.csdn.net/wenlifu71022/article/details/4334962

  • 相关阅读:
    how to pass a Javabean to server In Model2 architecture.
    What is the Web Appliation Archive, abbreviation is "WAR"
    Understaning Javascript OO
    Genetic Fraud
    poj 3211 Washing Clothes
    poj 2385 Apple Catching
    Magic Star
    关于memset的用法几点
    c++ 函数
    zoj 2972 Hurdles of 110m
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709285.html
Copyright © 2011-2022 走看看