s3c6410 内核移植 3.0.1

来源:互联网 发布:表格中数据降序 编辑:程序博客网 时间:2024/06/10 06:04

最近开发驱动程序,移植在查6410从mmc卡启动的bug, 决定从0开始移植个3.0.1的内核这样能定位mmc的问题,后面也终于得到了解决。

记录下步骤,当然首先得下载个内核,我下载的是3.0.1,

当然首先还得是先准备好环境,包括可以启动的sd卡。

准备后之后将下载的3.0.1解压出来,然后到3.0.1的目录下,第一步就是修改Makefile, 找到ARCH,让他等于arm

对s3c6410来说,和他最相近的就是6400了,所以我们到arch/arm/configs找到64100的默认config文件

然后就需要配置了,配置的话默认就好了,主要是在交叉编译链哪里选择交叉工具链,system type选项里面

选择smdk6410, 然后就可以编译了,当然编译后肯定是不行的,经过我追踪发现,原因是sd卡的初始化需要一段时间

所以,我禁止了sdio的初始化,(drivers/mmc/core/core.c mmc_rescan_try_freq)里把探测sdio的函数注释

if (0 && !mmc_attach_sdio(host))节省时间,同时呢,还在sd卡之后的函数中睡眠,用msleep就好了

我是在hid-core.c的驱动里面睡眠的,我的config里配置了这项。睡眠1秒就可以,然后把编译好的tftp传送到6410开发就可以了

bootm就可以启动了。