S3C6410嵌入式应用平台构建(五)——linux-3.14.4移植到OK6410-(Nand分区问题)

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

     咱们从启动的log发现:linux

[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 –2git

  因而追踪到代码:app

nandflash驱动中——s3c2410.c中ide


发如今去find “nand”clock source时,获取不到,所以,咱们打开S3c2410.c (drivers\mtd\nand)  svn

因而打开Clk-s3c64xx.c (drivers\clk\samsung)  oop

发如今Aliases时,并无Aliases nand,所以我试着加了如下代码:ALIAS(MEM0_NFCON, "s3c6400-nand", "nand"),测试

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

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

咱们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文件系统。
相关文章
相关标签/搜索