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文件系统。
  • 相关阅读:
    网页字体设置你了解吗?
    CSS 定位 (Positioning)
    常用CSS缩写语法总结
    CSS 教程
    CSS Reset(CSS重置)
    边框模拟小三角形
    CSS sprites
    border:none和border:0的区别
    css display属性
    css的postion属性
  • 原文地址:https://www.cnblogs.com/lixiaoming90/p/3776227.html
Copyright © 2011-2022 走看看