打印
[i.MX]

i.MX28 NAND BOOT and JFFS2

[复制链接]
6803|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
swimchang|  楼主 | 2013-12-30 16:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
FSL_TICS_Jeremy| | 2013-12-30 16:57 | 只看该作者
你好,楼主。我会尽快将你的问题转给I.max的工程师。

使用特权

评论回复
板凳
FSL_TICS_imx| | 2013-12-30 17:44 | 只看该作者
楼主你好,我今天事情比较多,刚看到贴。给我些时间,我这正好有28的板子,我调试一下,尽快给您回复~~
希望您可以理解,谢谢:)

使用特权

评论回复
地板
swimchang|  楼主 | 2013-12-31 00:52 | 只看该作者
FSL_TICS_imx 发表于 2013-12-30 17:44
楼主你好,我今天事情比较多,刚看到贴。给我些时间,我这正好有28的板子,我调试一下,尽快给您回复~~
希 ...

我 study 了 pdf ,还是不能够理解 .. 麻烦你们了!!!

最终目的  我是 想要 将filesystem 做在 nand flash  (JFFS2)
据了解,
       JFFS2文件系统
                –JFFS文件系统是瑞典Axis通讯公司开发的一种基于Flash的日志文件系统
                –它在设计时充分考虑了Flash的读写特性和电池供电的嵌入式系统的特点,
                  在这类系统中必需确保在读取档案时•如果系统突然断电,其档案的可靠性不受到影响
                  对Red Hat的Davie Woodhouse进行改进后,形成了JFFS2。
               •主要改善了存取策略以提高FLASH的抗疲劳性,同时也优化了碎片整理性能,
                增加了数据压缩功能。
               –需要注意的是,当文件系统已满或接近满时,JFFS2会大大放慢执行速度。
                 这是因为碎片收集的问题。相对于EXT2fs而言,JFFS2在嵌入式设备中更受欢迎。

使用特权

评论回复
5
FSL_TICS_imx| | 2013-12-31 17:16 | 只看该作者
本帖最后由 FSL_TICS_imx 于 2013-12-31 17:19 编辑

楼主你好,在文档MX28_EVK_Linux_User_Guide.pdf中提到从NAND启动。这里的主要方式是先从SD卡启动,然后将bootstream 和 filesystem写到NAND上。在这里说一下i.mx28比较特殊,与别的i.mx产品有些不同,这里的bootstream就是它的bootloader。
NAND 以 K9F1G08U08 Samsung 128MB NAND为例
在ltib的选项中的设置:
1、在选择platform configuration时候,不要选择 "Build mfg firmware"

2、在package list选项中一定要选择 kobs-ng, boot stream和 mtd-utils
3、在 target image generation options, 确保 jffs2 erase block size 设置符合所使用的NAND大小(例如:K9F1G08U08的erase block size为128K)

4、使得第一个 two kernel command line options under the bootstream configuration look like this:
(noinitrd console=ttyAM0,115200 root=/dev/mtdblock1 rootfstype=jffs2 rw rootwait fec_mac=00:08:02:6B:A3:1A gpmi)
(noinitrd console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait fec_mac=00:08:02:6B:A3:1A gpmi)
T这是默认的从NAND启动,但是也是也允许先从SD卡启动通过使用开发板上的按键KEY1。
5、编译好以后,确保bootstream编译正确,运行命令: ./ltib -p imx-bootlets -f


Run the mk_mx28_sd script (IMX28_LINUX_SCRIPTS)from the ltib directory with the SD card enumerated on the host.
Copy the ltib/rootfs.jffs2 file to the SD card's Linux filesystem partition.
Insert the SD card into the EVK, put DIP block in NAND boot mode, and hold KEY1 down while applying power. This will force it to load kernel and filesystem off of the SD card.
当板子启动,并登陆进入系统后执行如下命令:
flash_eraseall /dev/mtd0
kobs-ng init /boot/imx28_linux.sb   (烧写bootstream image到 Flash)

flash_eraseall /dev/mtd1
nandwrite /dev/mtd1 rootfs.jffs2
sync
断电

移除SD卡,重新上电,然后就可以从NAND启动了。

使用特权

评论回复
6
FSL_TICS_imx| | 2013-12-31 17:20 | 只看该作者
楼主你好,关于NAND启动你也可以用UBIFS。

使用特权

评论回复
7
FSL_TICS_imx| | 2013-12-31 18:10 | 只看该作者
本帖最后由 FSL_TICS_imx 于 2013-12-31 18:12 编辑

楼主你好,这是我看我们的文档,给你解释的,我们公司的官网上的这个文档貌似有些问题,应该有更简单的方法,直接将bootstream 和 filesystem通过MFGTool烧写到NAND上,应该可以直接启动的,但是需要修改ucl.xml文件以及driver,这个我弄好了发给你,再给你解释一下~~

使用特权

评论回复
8
swimchang|  楼主 | 2013-12-31 20:50 | 只看该作者
FSL_TICS_imx 发表于 2013-12-31 17:16
楼主你好,在文档MX28_EVK_Linux_User_Guide.pdf中提到从NAND启动。这里的主要方式是先从SD卡启动,然后将b ...

太感謝您了!! 我會嘗試看看!!
辛苦了~

使用特权

评论回复
9
swimchang|  楼主 | 2014-1-2 15:16 | 只看该作者
FSL_TICS_imx 发表于 2013-12-31 17:16
楼主你好,在文档MX28_EVK_Linux_User_Guide.pdf中提到从NAND启动。这里的主要方式是先从SD卡启动,然后将b ...

您好:
   我在执行踪面遇到几项问题点:
   文中提到
1、在选择platform configuration时候,不要选择 "Build mfg firmware"
执行./ltib   selectype
    有以下几个选项
     |---use packages in preconfig(Min profile)   << 我所選擇的
     |---Minimum bootable root filesystem
     |---Test and Development packages
     |---All supported package
     |---FSL gnome release package
     |---mfg firmware profile  

3、在 target image generation options, 确保 jffs2 erase block size 设置符合所使用的NAND大小(K9G8G08U0M 的erase block size为256K)  

4、使得第一个 two kernel command line options under the bootstream configuration look like this:
(noinitrd console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait ip=none gpmi) Default kernel command line for linux_prep                                                      
(noinitrd console=ttyAM0,115200 ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs rw gpmi) Default kernel command line for linux_prep                                             
(noinitrd console=ttyAM0,115200 fec_mac=00:08:02:6B:A3:1A root=/dev/nfs nfsroot=10.193.100.213:/data/rootfs_home/rootfs_mx28 rw ip=dhcp rootwait gpmi) Alternative kernel com
(noinitrd console=ttyAM0,115200 root=/dev/ram0 rdinit=/sbin/init fec_mac=00:08:02:6B:A3:1A gpmi) Alternative kernel command line for linux_prep


Run the mk_mx28_sd script (IMX28_LINUX_SCRIPTS)from the ltib directory with the SD card enumerated on the host.
Copy the ltib/rootfs.jffs2 file to the SD card's Linux filesystem partition.
Insert the SD card into the EVK, put DIP block in NAND boot mode, and hold KEY1 down while applying power. This will force it to load kernel and filesystem off of the SD card.

這一步驟一直不能成功~"~

使用特权

评论回复
10
FSL_TICS_imx| | 2014-1-2 17:02 | 只看该作者
楼主你好,编译好以后,你是否检查bootstream编译正确,运行命令: ./ltib -p imx-bootlets -f

使用特权

评论回复
11
FSL_TICS_imx| | 2014-1-2 17:02 | 只看该作者
本帖最后由 FSL_TICS_imx 于 2014-1-3 16:51 编辑

第4步中 package list 下Using MDDR at boot stream选项默认的是什么你就用什么就好。

使用特权

评论回复
12
swimchang|  楼主 | 2014-1-8 18:00 | 只看该作者
本帖最后由 swimchang 于 2014-1-9 08:07 编辑
FSL_TICS_imx 发表于 2013-12-31 17:16
楼主你好,在文档MX28_EVK_Linux_User_Guide.pdf中提到从NAND启动。这里的主要方式是先从SD卡启动,然后将b ...

$./mk_mx28_sd /dev/sdb
done
$sudo cp rootfs.jffs2 /media/SDcardname/

接下來將DIP選到 NAND boot 跟 按住 按鍵1   <<<< 再這一步終端機看沒有進入到下一步

在終端機看顯示0x80508002

請問這是那個操作細節錯了??

P.S 目前我使用的nand flashK9G8G08U0M

使用特权

评论回复
13
FSL_TICS_imx| | 2014-1-9 17:59 | 只看该作者
swimchang 发表于 2014-1-8 18:00
$./mk_mx28_sd /dev/sdb
done
$sudo cp rootfs.jffs2 /media/SDcardname/

樓主你好,能把你終端上顯示的詳細信息發個我一下么?我這邊還在嘗試,目前還沒有成功,所以也就一直沒有給您回,真的很抱歉,我會儘快搞定給您好的解決方法的~~

使用特权

评论回复
14
swimchang|  楼主 | 2014-1-14 14:01 | 只看该作者
FSL_TICS_imx 发表于 2014-1-9 17:59
樓主你好,能把你終端上顯示的詳細信息發個我一下么?我這邊還在嘗試,目前還沒有成功,所以也就一直沒有 ...

按照以下網址的操作方式可以順利將rootfs.jffs2燒錄至nand flash。
https://community.freescale.com/thread/312039

之後我嘗試直接power on/off 會出現,如附件錯誤訊息。
雖然多次測試(power on/off)還未導致系統死機,
但希望能了解其中緣故,還望FAE們多費心思,謝謝!!


2014-01-14_135312.png (36.75 KB )

2014-01-14_135312.png

使用特权

评论回复
15
FSL_TICS_imx| | 2014-1-14 15:07 | 只看该作者
swimchang 发表于 2014-1-14 14:01
按照以下網址的操作方式可以順利將rootfs.jffs2燒錄至nand flash。
https://community.freescale.com/thr ...

楼主你好,请问你文件系统是ext2格式的么?如果是ext2的会出现问题,建议你使用ext3的。

使用特权

评论回复
16
swimchang|  楼主 | 2014-1-14 16:22 | 只看该作者
FSL_TICS_imx 发表于 2014-1-14 15:07
楼主你好,请问你文件系统是ext2格式的么?如果是ext2的会出现问题,建议你使用ext3的。 ...

是的,SD card 內的是ext2格式,
請問,如果需要更改,是需要修改哪份檔案?

使用特权

评论回复
17
FSL_TICS_imx| | 2014-1-14 17:22 | 只看该作者
swimchang 发表于 2014-1-14 16:22
是的,SD card 內的是ext2格式,
請問,如果需要更改,是需要修改哪份檔案? ...

樓主你好,你需要使用tune2fs -j命令,將ext2轉換成ext3文件系統,在文檔MX28_EVK_Linux_User_Guide.pdf中21頁中你可以看到。

使用特权

评论回复
18
swimchang|  楼主 | 2014-1-16 14:35 | 只看该作者
總結:
1.執行./ltib -m config
        └Target Image Generation
           └Choose your root filesystem image type
              └ [X] JFFS2
              └ ( 256 )jffs2 erase block size in KB //取決於所使用的nand flash,我的目前是256
        └Package selection
           └
  • kobs-ng
               └
  • boot stream
               └
  • mtd-utils    //通常選擇了kobs-ng ,就會自動設定
            └
  • Configure the kernel  //選擇後可進入設定使用nand flash
    儲存離開。

    2.執行 ./litb
       之後會出現 kernel configuration
      <*> Device Drivers ->        <*> Memory Technology Device (MTD) support ->
                   <*> NAND Device Support ->
                          <*> GPMI NAND Flash Controller driver

    3.再執行 ./litb -p boot_stream.spec -f  //檢查

    4.製作SD card
       ./mk_mx28_sd /dev/sdx    //如果有需要可編輯mk_mx28_sd,將日誌檔案格式更換為ext2→ext3 ,ext3
       sudo cp rootfs.jffs2 /media/sdname
       sudo cp imx28_ivt_linux.sb /media/sdname

    5.SD Inster and power on
    DIP:SSP0 Mode (1001)
    [size=12.800000190734863px]flash_eraseall /dev/mtd0
    [size=12.800000190734863px]kobs-ng init /boot/imx28_ivt_linux.sb
    [size=12.800000190734863px]flash_eraseall /dev/mtd1
    [size=12.800000190734863px]nandwrite /dev/mtd1 /boot/rootfs.jffs2

    已上執行後切換DIP: NAND MODE (0100)
    重新做開機,此時就是NAND BOOT。

    以上這是多方找資料及測試的總結,如有問題歡迎提出,謝謝。

  • 使用特权

    评论回复
    19
    FSL_TICS_imx| | 2014-1-16 17:52 | 只看该作者
    非常感谢楼主分享解决方法,对于大家来说很宝贵啊~~
    这个我们这边之前也没有测试过的,学习了:)

    使用特权

    评论回复
    发新帖 我要提问
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    8

    主题

    52

    帖子

    0

    粉丝