s3c6410 内核移植 3.0.1
2013-06-17 21:27
204 查看
最近开发驱动程序,移植在查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就可以启动了。
记录下步骤,当然首先得下载个内核,我下载的是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就可以启动了。
相关文章推荐
- 移植2.6.38内核到s3c6410问题
- [S3C6410]Linux2.6.28到Linux2.6.32的内核移植
- S3c6410 linux内核移植(1)---下载与配置
- 移植linux内核到s3c6410(配置内核make menuconfig)
- 移植linux内核到s3c6410(kernel 打印:Uncompressing Linux ... done , booting the kernel.后无响应问题的解决。)
- S3C6410 移植Android 内核
- S3C6410 移植Android 内核
- S3c6410 linux内核移植(3)--- usb驱动出错解决
- 移植linux内核到s3c6410(编译内核make uImage)
- S3C6410 移植Android 内核
- S3c6410 linux内核移植(4)---修改flash分区
- linux3.6.5内核移植到S3C6410
- linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)
- 移植linux内核到s3c6410(使用busybox构建initrd ramdisk)
- S3C6410 移植Android 内核
- s3c6410移植android-kernel-2.6.35内核不识别DM9000网卡
- s3c6410移植3.3.7内核
- 移植linux内核到s3c6410(板子u-boot网口link-down问题解决)
- S3c6410 linux内核移植(9)---添加adc驱动、电池电量检测之文件修改
- S3C6410 移植Android 内核