zoukankan      html  css  js  c++  java
  • S3C6410嵌入式应用平台构建(五)——linux-3.14.4移植到OK6410-(Nand分区问题)

    前一篇文章,我们的Linux能后启动了,只是在识别nand时候,没有获取到时钟源,导致后面的分区没哟进行。

         我们从启动的log发现:

    [06/08-11:25:41:371]s3c24xx-nand s3c6400-nand: failed to get clock
    [06/08-11:25:41:371]s3c24xx-nand: probe of s3c6400-nand failed with error –2

      于是追踪到代码:

    nandflash驱动中——s3c2410.c中


    发现在去find “nand”clock source时,获取不到,因此,我们打开S3c2410.c (driversmtd and) 

    于是打开Clk-s3c64xx.c (driversclksamsung) 

    发现在Aliases时,并没有Aliases nand,因此我试着加了以下代码:ALIAS(MEM0_NFCON, "s3c6400-nand", "nand"),

    这样的话,当去clk_get时,应该不会有问题了。

    这个机制是linux-3.10后才加的,这个问题卡了我好久。

    我们make uImage后测试如下:

    从上面我们又发现出错以下信息:

    [06/08-14:18:34:573]nand: No oob scheme defined for oobsize 218

    [06/08-14:18:34:573]------------[ cut here ]------------

    [06/08-14:18:34:574]kernel BUG at drivers/mtd/nand/nand_base.c:3732!

    原来是我们的nandflash的oobsize是218,而nand_base.c中并没有加入218的处理,因此参照6410驱动,修改nand_base.c。做如下添加:

    1. 添加nand_oob_218定义

    2. 添加case 218处理

        好了,我们再次 make uImage后,下载到板子上,启动如下:

         上面红色部分,代表nandflash已经可以识别并可以读写,已经看到分区信息。只是会有cut here,不过这个bug不影响我们的启动,如果不想看到该打印信息,我们只需要这make menucong中配置kernel hacking中设置printk level为7,默认为4即可。
         后面我们就开始做yaffs2文件系统了,并配置内核支持yaffs2文件系统。
  • 相关阅读:
    数组中删除指定某个元素(根据值删除,不是位置)
    gulp使用过程中走过的坑
    H5兼容不同屏幕尺寸
    jQuery基础——事件
    DOM的jquery操作(遍历)
    jquery的DOM操作(创建节点、插入节点、删除节点、复制节点、替换节点、包裹节点)
    gulp插件uncss的使用
    【代码总结-不定期更新】
    【Linux-学习笔记-不定期更新】
    【随时记录的一些东东-不定期更新】
  • 原文地址:https://www.cnblogs.com/lixiaoming90/p/3776227.html
Copyright © 2011-2022 走看看