精华内容
下载资源
问答
  • nandflash 分区

    千次阅读 2009-07-14 10:33:00
    http://blog.csdn.net/nick_TS16949/archive/2009/07/14/4346647.aspx 关于nandflash分区问题,由于在文件系统/MBR方面的欠缺让我走了许多弯路,虽然在网上搜了很多关于nandflash分区的文章,但我都没有成功。...

    以下内容是本人经验总结,如需转贴请注明出处!

    http://blog.csdn.net/nick_TS16949/archive/2009/07/14/4346647.aspx

     

     

     

     

    关于nandflash分区问题,由于在文件系统/MBR方面的欠缺让我走了许多弯路,虽然在网上搜了很多关于nandflash分区的文章,但我都没有成功。 在经过1个星期的修改/测试终于搞定了,所以现在把经验和步骤贴出来跟大家分享下。

     

    一、实现分区的地方

    因为我的boot是ADS写的,不能直接使用microsoft的bootpart源代码来分区,所以分区是在flash驱动中通过调用bootpart.lib来实现的。

    另外!

    不过根据其他人的经验,ADS下实现FLASH分区可以使用uc/fs的文件系统,而且更方便的做法:实现usb host,直接通过PC拷贝nk和应用程序到flash盘下,不需要烧录!

    uc/fs分区的示意代码:

         FS_Init();

        FS_IoCtl("nf:0:", FS_CMD_FORMAT_AUTO, 0, 0);
        FS_IoCtl("nf:1:", FS_CMD_FORMAT_AUTO, 0, 0);

     

    还有种方法就是把boopart.cpp的代码移植到ADS下,不过在移植BOOL BP_Init (LPBYTE pMemory, DWORD dwSize, LPCTSTR lpActiveReg, PPCI_REG_INFO pRegIn, PPCI_REG_INFO pRegOut)函数时遇到问题,这个PPCI_REG_INFO定义涉及到需要头文件,相当麻烦!所以放弃了,改用在os中实现分区。

     

    二、注册表部分

    之所以先贴出注册表,是因为当初我以为flash分区应该跟注册表有关,需要修改它,后来才发现这部分不需要修改。

     

    贴出我的注册表:

    ; HIVE BOOT SECTION
    [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/NandFlash]
       "Dll"="smflash.dll"
       "Order"=dword:0
       "Prefix"="DSK"
       "Profile"="FlashDisk"
       "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
       "FriendlyName"="MICHAEL NAND FLASH"
       "Index"=dword:1
       "BmlVolumedld"=dword:0
       "BmlPartitionld"=dword:8
       ;"Flags"=dword:1000     ;have changed. add

    [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk]
       "Name"="MICHAEL NAND FLASH"
       "Folder"="NandDisk"
       "DefaultFileSystem"="FATFS"
       "AutoMount"=dword:1
       "AutoPart"=dword:1
       "AutoFormat"=dword:1
       "PartitionDriver"="mspart.dll"
       "BootPhase"=dword:0
       "MountFlags"=dword:6
       "Ioctl"=dword:4

    [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk/FATFS]
      "EnableCacheWarm"=dword:0
      "Paging"=dword:1
      "Flags"=dword:00000024
      ;"MountAsBootable"=dword:1

    ; END HIVE BOOT SECTION

     

    三、代码部分怎样实现分区,调用哪些API

     总共就需要两个bootpart中的API,BP_Init(...)和BP_OpenPartition(...).

     

    贴出我的代码:

    HANDLE hPart, hPartEx;

     // Try to initialize the boot media block driver and BinFS partition.
        //
     
        if ( !BP_Init((LPBYTE)(0x803b0000 | 0x20000000), 0x21000, NULL, NULL, NULL) )
        {
            RETAILMSG(1,(L"WARNING: OEMPlatformInit failed to initialize Boot Media./r/n/r/n"));
      return;
        }
     RETAILMSG(1,(TEXT("PartNandFlash start......./r/n")));

     
     hPart = BP_OpenPartition( (RESEVER_BOLCK_NUM+1)*PAGES_PER_BLOCK, // next block of MBR
                                  //SECTOR_TO_BLOCK_SIZE(FILE_TO_SECTOR_SIZE(dwBINFSPartLength))*PAGES_PER_BLOCK, // align to block
             (40)*PAGES_PER_BLOCK,
                                  PART_DOS3_FAT,/*PART_DOS32*/
                                  TRUE,
                                  PART_OPEN_ALWAYS);

        if (hPart == INVALID_HANDLE_VALUE )
        {

                //part failed!
                return;
        }

       hPartEx = BP_OpenPartition( NEXT_FREE_LOC,
                                    USE_REMAINING_SPACE,
                                    PART_DOS32,
                                    TRUE,
                                    PART_OPEN_ALWAYS);

        if (hPartEx == INVALID_HANDLE_VALUE )
        {
            //part failed

        }

     

    其中代码部分需要特别注意的地方,我已经用红色字体标示出来了。

     

    首先需要在config.bib中定义一块RESERVED区域给BP_Init来初始化分区信息。

    比如我在config.bib中作如下定义:

    PART 803b0000  00021000  RESERVED

    然后将这个地址和大小传递给BP_Init函数,因为地址是uncached的,所以传递的时候需要与上0x20000000.

    至于保留区域的大小如何确定,有个公式:size最小需要 每扇区字节+ 每块字节+(每块扇区数*10).我的nandflash是k9f1g08,大小就是2048+64*2048+64*10 = 0x20A80, 所以分配0x21000就可以了。

    (问题:在控制面板中通过存储管理器来分区又是如何操作的? 难度是动态申请一块static空间?)

     

     

    做完以上动作,那么恭喜你,你的分区基本实现了。

    ///

    但最最需要注意的地方是在BP_OpenPartition的第一次调用的时候是用PART_DOS3_FAT, 而不是PART_DOS32 !!!!

    否则你的第二个分区将看不到。

    ///

     

     

    就是这个小小的参数搞了我快1个星期,查了N多资料和网站。。。但是至于为什么这样做到现在为止我还没有弄明白,如果哪位知道,请在后来留个言,本人非常感激!!

     

     

    展开全文
  • nand flash 分区

    2013-10-10 13:34:52
    1.如何对nand 分区。修改mtdparts环境变量就可以了么? 对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直接使用分区的名字而不必指定分区的偏移位置. set ...

    1.如何对nand 分区。修改mtdparts环境变量就可以了么?

    对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直接使用分区的名字而不必指定分区的偏移位置.

    set bootargs noinitrd console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2  mtdparts=nand_flash:128k(u-boot)ro,64k(u-boot envs),3m(kernel),30m(root.jffs2),30m(root.yaffs) 


    2 内核通过bootargs找到文件系统,bootargs中的mtdblockx即代表分区,block1,2,3代表哪个分区是如何确定的。

    事实上,bootargs中的"root=/dev/mtdblockx"只是告诉内核,root fs从第x个(x=0,1,2...)MTD分区挂载,mtdblock0对应第一个分区,mtdblock1对应第二个分区,以此类推.至于这个分区对应MTD device(NAND Flash)的哪一段范围,取决于内核读到的MTD分区信息,这个分区信息可以通过:

    1) 写死在MTD层的NAND Controller驱动或者内核其他部分代码里

    2) 通过U-boot传递给内核的命令行中的mtdparts=...部分解析得出,解析的规则同u-boot中mtdparts变量的赋值规则

    3) 其他可以让内核知道分区信息的任何办法


    3 在u-boot中给nand分区后是否要对应修改kernel的代码?

    如果你用的是通过内核命令行给MTD层传递u-boot中的MTD分区信息,那是不需要的,在这种情况下,内核读取到的分区信息始终和u-boot中的保持一致(推荐的做法)

    如果你用的是把分区信息写死在内核源代码里的方法,那最好保证它和u-boot中的保持一致,即同步修改内核的相关部分代码


    展开全文
  • nandflash分区

    千次阅读 2009-10-17 11:50:00
    参数offset 是要添加的分区的偏移(相对于整个MTD 设备的起始地址的偏移,在ARMer9 系统中不论配置的是NOR Flash,还是NAND Flash,都只注册了一个mtd_info 结构,也就是说逻辑上只有一个MTD 设

     part add 命令用于添加一个MTD 分区。
    命令的详细格式如下:
    part add name offset size flag
    参数name 是要添加的分区的分区名称;
    参数offset 是要添加的分区的偏移(相对于整个MTD 设备的起始地址的偏移,在ARMer9 系统中不论配置的是NOR Flash,还是NAND Flash,都只注册了一个mtd_info 结构,也就是说逻辑上只有一个MTD 设备,这个MTD设备的起始地址为0x00000000);
    参数size 是要添加的分区的大小,单位为字节;
    参数flag 是要添加的分区的标志,参数flag 的取值只能为以下字符串(请注意必须为大写)或者通过连接符“|”将以下字符串组合起来的组合字符串。
    这个标志表示了这个分区的用途
    “BONFS” —— 作为BONFS 文件系统的分区;
    “JFFS2” —— 作为JFFS2 文件系统的分区;
    “LOCK” —— 该分区被锁定了;
    “RAM” —— 该分区作为RAM 使用。

    请问:
    1.用part命令创建而不管flag如何的都是MTD分区吗?
    2.BONFS代表什么,RAM又代表什么,是指对sdram分区还是说这个分区用于存放ramfs?
    3.BONFS、JFFS2、LOCK、RAM在这里分别代表什么常数?
                    bon part 命令用于建立系统的BON 分区表。
    BON 分区表被保存到NANDFlash 的最后0x4000 个字节中,即在NAND Flash 的0x03FFC000 ~0x33FFFFFF 范围内,分区表起始于0x03FFC000(注意: BON 分区是只针对NAND Flash 设备的一种简单的分区管理方式)。
    命令的详细格式如下:
    bon part offsets1[flag] offsets2[flag] offsets3[flag] ⋯⋯
    参数offsetsN 是每个BON 分区的起始地址;
    flag 是跟每个BON 分区的起始地址后面的标识符,这个标识的作用是前面数值的单位,‘k’’或‘K’表示kilo,千;‘m’或‘M’表示mega,兆。
    如果再跟上‘:’,后面再跟上‘m’或‘M’,表示该分区被标记为MTD 分区,
    如果没有‘:’以及后面的字母‘m’ 或‘M’,则表示该分区被标记为BON 分区。
    bon part 命令在建立系统的BON 分区表,会检测每个分区是否有坏块
    (Samsung 的NAND Flash 芯片K9S1208U0M,一个块含32 个页,一个页有512 个字节,一个块有16K 字节,即0x4000),如果发现坏块将标记出来,并且在分区表中体现,分区的大小将减去坏快的容量,得到实际可用的分区容量。bon part info 命令执行后显示的信息中, number_of_badblock所指示的就是分区中的坏块数目。
    那我们总说的mtdblock3指的是MTD分区吗?那BON分区在什么时候用到,要不要像MTD分区那样在内核做相应的配置?
    有关vivi分区的问题
    [ 2006-11-17 16:37:00 | By: Kision ] 
      
       目标板要更新成2.6的内核,以前板子vivi上的flash分区不合理,kernel分区只有1M的空间,而2.6的核编译出来一不小心就会超过1M,因此还是研究下vivi的flash分区,增大kernel分区.
       这里先转发一下网络上看到的有关vivi分区问题分析,然后整理出自己的分区过程.
    问题:
    ##################################################################################
    您好:
        看了你blog上的一篇文章,我是刚接触NAND flash分区的问题,所以请教与你.
        flash分区一般分为5个:
        bootloader,param,kernel,root,usr
        这几个分区对应应该是mtdblock/0到mtdblock/4对吧?我常见到的bon/x又什么呢?他和mtdblock有啥关系讷?然后就是这几个分区对应的文件系统,我一般是在root烧cramfs,前四个分区32M,64Mflash后面的32M还没用,cramfs是个只读的,那这个yaffs又是怎么回事?网上说的cramfs和yaffs一起使用又是怎么回事?你说的后面几个分区以yaffs制作文件系统,怎么制作啊?
    谢谢,我才开始, 对这些有点迷惑.谢谢你的帮助.
    ##################################################################################
    回答:
    ##################################################################################
    你好,
    首先申明我的理解仅限于参考(我也很菜的说,^_^)。
    1、>>flash分区一般分为5个
        这个理解是不对的,至少不完全对。flash想分成几个区完全由于你自己的需要决定,然后在make menuconfig时间进行配置。
    2、>>bootloader,param,kernel,root,usr
         这个和上面的问题有关系,不过个人觉得你的理解还是有点问题。一般来说param不会单独去占一个分区(如果你的param是指内核启动参数的话),这个一般都是在编译内核时间就已经指定了,会放在内核image的较前位置,内核自解压的时候检测到并使用。而root与usr我不知道你的理解是什么,我的概念里不需要这样分,直接将文件系统使用yaffs或者cramfs或者jffs等使用即可,干嘛区分root和usr呢?一般我们把文件系统部分分到几个不同的flash分区存放是为了方便,但是最后使用的时候是感觉不出来的,因为逻辑上他们都回挂到根分区的某一个目录上,所以看起来和将所有的东西打成一个包挂在根下是一样的。举个例子。
    使用三个分区情况:/dev/mtdblock/0   bootloader
                                  /dev/mtdblock/1   kernel
                                  /dev/mtdblock/2 cramfs   (假设cramfs中有multimedia,guilib, etc,usr, extdata等)
    这样之需要在kernel加载后使用下面的命令(放在初始化脚本linuxrc中)
    mount -t yaffs /dev/mtdblock/2 / 即可。
    那么可能我觉得这个cranfs太大,尤其是其中的multimedia和extdata,想把他们分开怎么办呢?
    使用五个分区:       /dev/mtdblock/0   bootloader
                                  /dev/mtdblock/1   kernel
                                  /dev/mtdblock/2 yaffspart1(将guilib, etc,usr以及其他一些文件制作成yaffs文件系统)
                                  /dev/mtdblock/3 yaffspart2 (将multimedia制作成yaffs文件系统)
                                  /dev/mtdblock/4 yaffspart3(将extdata制作成yaffs文件系统)
    那么kernel起来后,需要做这样的动作(可以放在linuxrc中,也可以放在比较早执行的脚本里面):                  mount -t yaffs /dev/mtdblock/2 /
                                mkdir /multimedia
                                mkdir /extdata
                                mount -t yaffs /dev/mtdblock/3 /multimedia
                                mount -t yaffs /dev/mtdblock/4 /extdata
    为此时选择yaffs而不是cramfs呢?我想你知道答案,因为cramfs只读,没办法mkdir。当然,其他的可读写文件系统比如jffs也是可以的。当然,如果你的/下面老早就有两个空目录,multimedia和extdata,那么根文件系统也就是/dev/mtdblock/2使用cramfs也是可以的,而multimedia和extdata本身在"/"分区使用cramfs和yaffs时都可以使 用任意的其他文件系统,不一定非是yaffs,当然,前提是你得知道你究竟是不是需要在使用时在这里面进行写操作。
    3、关于bon分区和mtd分区,请参考一种bootloader(vivi)的bon分区功能,它分区时通过是否带m选项来指定是不是能和mtd分区共存。还有,一个mtd分区可以包含几个bon分区。
    4、如果你不了解yaffs,可能需要查找一下资料。简单点说,他就是一个可读写的文件系统,而且具有nand的纠错功能,在某些方面比较cramfs来说具有优势。但是他的缺点也很明显,就是不如cramfs有空间效率,因为它是不压缩的(反而会变大),也就是说一个64M的文件夹,如果你mkyaffs,可能得到80M的yaffs文件系统,但是如果使用mkcramfs,可能就是只有50M了。
    yaffs文件系统的制作和cramfs一样,需要工具,mkyaffs,就如同制作cramfs需要工具mkcramfs一样。具体在哪里找,我想你只要google一下就可以了。
    5、至于文件系统的共存,其实比较好理解。不仅仅yaffs和cramfs共存,一般还有ramfs和他们共存,这样就能在使用cramfs的文件系统中提供一个可读写的文件系统,适合用在调试阶段。方法很简单,回顾一下2里面使用5个分区的情况就知道了。
    以上是我个人的一点点理解和建议,肯定有不正确的地方,如果你发现什么错误了,请指出来告诉我。谢谢。
    changejoy
    ##################################################################################
    很感谢上面这位网友的一番分析和讲解,解答了我的某些困惑的地方.
    通过多次实验,以下为自己具体的分区过程:
    1.如果首先板子上没有烧进去vivi,则可以通过JTAG口以及jflash烧写工具软件把vivi烧进目标板上,当然有的开发板也可以在ADS1.2的环境用JTAG仿真器(如Multi-ICE),通过某个烧写程序把vivi烧进目标板,这里具体第一次怎么把vivi烧写进去就不再多述了.
    2.当把vivi烧进去后,可以通过输入part show查看MTD分区情况,这个分区表应该和后面kernel中的MTD分区保持一致,我的2.6内核源码中修改后的MTD分区表为:
    0x00000000-0x00020000 : "boot"
    0x00020000-0x00030000 : "param"
    0x00030000-0x001f0000 : "kernel"
    0x00200000-0x00400000 : "root"
    0x00400000-0x04000000 : "user"
    那么这里,我们应该将通过修改vivi的源码把MTD分区表修改成一样,修改/vivi/arch/s3c2410/smdk.c文件:
    将里面的
    #ifdef CONFIG_S3C2410_NAND_BOOT
    mtd_partition_t default_mtd_partitions[] = {
    {
       name:   "vivi",
       offset:   0,
       size:   0x00020000,
       flag:   0
    }, {
       name:   "param",
       offset:   0x00020000,
       size:   0x00010000,
       flag:   0
    }, {
       name:   "kernel",
       offset:   0x00030000,
       size:   0x00100000,
       flag:   0
    }, {
       name:   "root",
       offset:   0x00130000,
       size:   0x00200000,
       flag:   MF_BONFS
    }
    };
    #endif
    修改成如下:
    #ifdef CONFIG_S3C2410_NAND_BOOT
    mtd_partition_t default_mtd_partitions[] = {
    {
       name:   "vivi",
       offset:   0,
       size:   0x00020000,
       flag:   0
    }, {
       name:   "param",
       offset:   0x00020000,
       size:   0x00010000,
       flag:   0
    }, {
       name:   "kernel",
       offset:   0x00030000,
       size:   0x001f0000,
       flag:   0
    }, {
       name:   "root",
       offset:   0x00200000,
       size:   0x00400000,
       flag:   MF_BONFS
    }, {
       name:   "user",
       offset:   0x00400000,
       size:   0x04000000,
       flag:   0
    }
    };
    #endif
    保存文件,并重新make,生成新的vivi文件;
    3.    重新bon分区flash,这是十分必要的,相当于重新分区并格式化了整个flash区,当bon分区后flash里面的数据将全部丢失,所以要再把前面新生成的vivi烧入目标板上,当然现在就可以只通过串口把vivi烧写进去,不用像第1步那样操作烧写vivi,但是注意bon命令重新分区后千万不要断电了再烧写vivi,否则就不能通过串口烧vivi了,具体步骤如下:
    (1)这里将flash分成4个区(vivi和param只占一个区),输入bon分区命令:
          #bon part 0 192K 2M 4M
          解释一下上面的命令:
          第1个分区从0开始;
          第2个分区从0x30000(即192K)开始;
          第3个分区从0x200000(即2M)开始;
          第4个分区从0x400000(即4M)开始.
    (2)分区成功后,可以通过命令bon part info或者bon part show来查看bon分区信息,接下来不要断电,直接通过串口下载vivi,但是要注意的是,在linux下用xmodem协议下载文件很有可能出现传输过程中断线或者连不上的情况,但是在windowsXP的附件中的超级终端下通过xmodem传输文件过程却是十分的理想,所以我建议从前面的第3步一开始就都在windowsXP环境下的超级终端里进行操作,输入命令:
    #load flash vivi x
    然后点击终端窗口中的传送下的发送文件,采用xmodem协议,选择要下载的vivi码即可.
    (3)等待文件传输完毕后,输入boot重启目标板,并按住空格键重新进入vivi模式下,输入命令:
    #part show
    即可看到重新的分区表:
    vivi> part show
    mtdpart info. (5 partitions)
    name               offset         size         flag
    ------------------------------------------------
    vivi             : 0x00000000     0x00020000      0   128k
    param            : 0x00020000     0x00010000      0    64k
    kernel           : 0x00030000     0x001f0000      0     1M+960k
    root             : 0x00200000     0x00400000      4     4M
    user             : 0x00400000     0x04000000      0    64M
    vivi>
    以上就是整个分区过程了.
     
    本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/hongjiujing/archive/2007/09/18/1789193.aspx
    展开全文
  • NAND FLASH分区规划

    千次阅读 2012-12-16 23:28:24
    由于BOOTLOADRER、PARAMS以及内核、文件系统都在NAND FLASH上,因此分区就得进行统一...U-Boot中的NAND分区  文件:include/configs/开发板.h  这是Phy3250的参数,Phy3250采用32MB的NAND FLASH,扇区大小为16KB
    由于BOOTLOADRER、PARAMS以及内核、文件系统都在NAND FLASH上,因此分区就得进行统一规划。 系统的NAND FLASH分区依赖于u-boot和Linux内核两方面的设置。

    U-Boot中的NAND分区

        文件:include/configs/开发板.h
        这是Phy3250的参数,Phy3250采用32MB的NAND FLASH,扇区大小为16KB:
    189 /* Phy3250's NAND FLASH, 32MB, 16K size(Block, Sector) */
    190 //#define CFG_ENV_SIZE             0x4000      /* 1 block, 16K */
    191 //#define CFG_ENV_OFFSET        0x168000  /* Block 90       */

        如下是SmartARM3250的NAND FLASH,K9F2G08,256MB,扇区大小为128K:
    193 /* SmartARM3250's NAND FLASH, K9F2G08, 256MB, 128K size(Block, Sector) */
    194 #define CFG_ENV_SIZE           0x40000       /* 2 Block, 256K */
    195 #define CFG_ENV_OFFSET      0x180000     /* Block 12         */  
     

    Kernel中的NAND FLASH分区

        NAND FLASH规划

    分     区                                   地址范围                        扇区范围                    大    小                用     途
     Bootloader             0x0000 0000 ~ 0x0018 0000     0 ~ 11          12个扇区,1.50M               S1L和U-Boot
     param                  0x0018 0000 ~ 0x001C 0000      12~13           2个扇区,  256K                 U-Boot参数
    保留                    0x001C 0000 ~ 0x0020 0000         14~15
     Linux Kernel           0x0020 0000 ~ 0x0060 0000    16~47           32个扇区,4.00M                 Linux内核
     Rootfs                 0x0060 0000 ~ 0x1000 0000        48~2047         2000个扇区,250M           Linux文件系统   

     


    rootfs
    2047

    48
     
    共2000扇区

     Kernel
    47

    16

    共32扇区 

     保留
    15 

    14
     
    共2扇区

     param
    13
     
    12
     
    共2扇区
     
    Bootlloader
    11 

    0
     
    共12扇区

    分区实现

    在linux-2.6.27.8/arch/arm/mach-lpc32xx/board-smartarm3250.c中的实现代码:
    153 #define BLK_SIZE (0x20000) //128KB
    154 static struct mtd_partition __initdata smartarm3250_nand_partition[] = {
    155     {
    156         .name   = "smartarm3250-boot",
    157         .offset = 0,
    158         .size   = (BLK_SIZE * 12)
    159     },
    160     {
    161         .name   = "smartarm3250-ubt-prms",
    162         .offset = (BLK_SIZE * 12),
    163         .size   = (BLK_SIZE * 2)
    164     },
    165     {
    166         .name   = "smartarm3250-kernel",
    167         .offset = (BLK_SIZE * 16),
    168         .size   = (BLK_SIZE * 32)
    169     },
    170     {
    171         .name   = "smartarm3250-rootfs",
    172         .offset = (BLK_SIZE * 48),
    173         .size   = MTDPART_SIZ_FULL
    174     },
    175 };

     

     

     

    展开全文
  • nand flash分区

    千次阅读 2012-11-29 10:49:14
    因为mx53 ROM需要FCB/DBBT结构信息来支持从NAND分区启动,所以需要在Nand启动分区中更多的空间存储这些参数。 Partitions       Offset       Size       Address Range
  • 64M nandflash分区示意图

    千次阅读 2013-03-25 16:06:47
    这是我的64M的nandflash分区示意图涵盖的文件系统比较多,分区设置代码是在arch/arm/plat-s3c24xx/common-smdk.c: static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = "bootloader ...
  • Android Nand Flash 分区

    千次阅读 2015-06-25 10:10:07
    一般的嵌入式Linux开发人员是要...比如系统,内核所有保存在Nand Flash之上,断电后仍然存在,而运行后程序是装入SDRAM或Mobile DDR之类的内存设备运行。   但一般用户不大明白这几个芯片的区别,一般是就用ROM来指
  • Nand Flash分区表样例

    千次阅读 2012-04-24 09:04:06
    Nand Flash分区表样例 例一:  在128M的Nand Flash上建立分区表, 进入 arch/arm/mach-s3c2410/common-smdk.c 修改 static struct mtd_partition smdk_default_nand_part[] = {  // U-boot 256K ...
  • nandflash mtd分区

    2013-11-05 21:07:52
    转自:http://blog.sina.com.cn/s/blog_a2e8f52501016w29.html ... part add 命令用于添加一个MTD 分区。 命令的详细格式如下: part add name offset size flag ...参数name 是要添加的分区分区名称; 参
  • android flash分区(nand flash)

    千次阅读 2010-12-17 19:50:00
    android nand flash 分区及对应功能介绍
  • Nand分区及nand erase简解

    千次阅读 2016-05-17 11:35:27
    我的nand flash 32M,kernel 2.6.18, rootfs is emb linux, ...nand flash分区如下: static struct mtd_partition nand_partitions[] = {  /* bootloader (UBL, U-Boot, BBT) in sectors: 0 - 14 */  
  • Flash分区时,需要修改linux2.6.21/ arch/ mach-at91rm9200/目录中board-dk.c文件的dk_nand_partition结构。本系统将1G NAND Flash划分为1个分区。 dk_nand_partition结构如下修改: static struct mtd_...
  • ZYNQ-nand flash分区

    千次阅读 2018-02-02 10:37:29
    1.u-boot中利用mtdparts命令进行分区,添加到设备树文件dts中,bootargs=“..”中,kernerl设置...配合内核中:在对应的nand的arch/arm/mach----.c中添加分区信息。mtd-partition 结构体分区。  s3c2410_name_set为.n
  • Subject:DNW烧写FL2440 NAND Flash分区 Date: 2-Mar-2011 By: Calvinlee1984@163.com   1.DNW软件是Samsung公司为S3C2440A芯片配置的一款专用串口软件,可在Windows系统下通过USB烧写Flash。 ...
  • Eboot 中给nandflash分区实现

    千次阅读 2010-11-01 22:23:00
    什么是MBR 硬盘的0柱面、0磁头、1扇区称为主引导扇区,NANDFLASH由BLOCK和Sector组成,所以NANDFLASH的第0 BLOCK,第1 Sector为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。...
  • uboot和kernel中关于nand分区的定义

    千次阅读 2017-06-30 11:30:00
    系统的NAND FLASH分区依赖于u-boot和...U-Boot中的NAND分区 位置:include/configs/开发板.h; Kernel中的NAND FLASH分区 位置:linux-X.Y.Z/arch/arm/mach-xxxx/board-xxxxx.c中static struct mtd_partition
  • 在使用#flash_erase -j /dev/mtd6 0 0擦除对应分区后,进行挂载#mount -t jffs2 /dev/mtdblock6 /wellav_data时,报错:jffs2:Cowardly refusing to erase blocks on filesystem with no vaild JFFS2 nodes jffs2:...
  • [转]NandFlash分区实现

    千次阅读 2010-12-22 22:29:00
    NandFlash分区实现提到分区就需要知道MBR,了解分区表。什么是MBR 硬盘的0柱面、0磁头、1扇区称为主引导扇区,NANDFLASH由BLOCK和Sector组成,所以NANDFLASH的第0 BLOCK,第1 Sector为主引导扇区,FDISK程序写到...
  • QT6410移植linux-2.6.39 笔记(二)-添加NANDFLASH分区
  • Uboot和kernel对于Nandflash分区

    千次阅读 2013-09-27 09:59:33
    1. Uboot没有对Nandflash进行分区,通过bootargs参数将file system信息传递给kernel 2. 在kernel中对Nandflash分区信息: arch/arm/mach-s3c6410/mach-smdk6410.c中 struct mtd_partition s3c_partition_info...
  • cubieboard板上nand flash重新分区

    千次阅读 2013-04-15 23:05:49
    将linux装到cubieboard板上的NAND flash时需要对其进行重新分区。 sunxi-tools 下的工具“nand-part”可用来完成这个工作。 (也可以说是重写MBR,似乎之前"nand-part"官方命名就叫MBR) 默认NAND flash上是烧...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,155
精华内容 4,062
关键字:

flashnand分区