kernel 2.6.35.7向S5PV210移植

Posted 0nism

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kernel 2.6.35.7向S5PV210移植相关的知识,希望对你有一定的参考价值。

kernel 2.6.35.7向S5PV210移植

kernel 2.6.35.7向S5PV210移植

ARCH和CROSS_COMPILE配置

??不详述,改就对了。

错误1

??未出现Uncompressing Linux... done, booting the kernel.
??解压地址应当等于链接地址,否则自解压之后不可运行。
??链接的物理地址可以在head.S的开头看到。那么解压缩地址在哪呢?

//	内核运行的虚拟地址				0xC0008000
#define KERNEL_RAM_VADDR	(PAGE_OFFSET + TEXT_OFFSET)
//	内核运行的物理地址				0x30008000
#define KERNEL_RAM_PADDR	(PHYS_OFFSET + TEXT_OFFSET)

??arch/arm/mach-s5pv210/Makefile.boot其中定义了解压缩地址。

# override for SMDKV210
zreladdr-$(CONFIG_MACH_SMDKV210)	:= 0x30008000
params_phys-$(CONFIG_MACH_SMDKV210)	:= 0x30000100

??改为如上。改完之后,就可以运行解压缩了。
??之后再修改内核运行的物理地址(原本PHYS_OFFEST0x2000_0000)为0x3000_0000

错误2

Unable to handle kernel NULL pointer dereference at virtual address 00000060
Internal error: Oops: 5 [#1] PREEMPT
PC is at dev_driver_string+0xc/0x44
LR is at max8698_pmic_probe+0x150/0x32c

??说明在这两个函数出现了问题。考虑到之前uboot移植中,smdkc110使用了电源管理模块,那么这里也可以推测是电源管理模块出现了问题。
??解决办法就是在内核配置中去除该模块。直接在MENUCONFIG中搜索MAX8696,关掉就可以。

错误3

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

??panic应该是一个比较严重的错误。说白了就是没识别块设备。这里的识别应当就是inand。这里应当是驱动的问题。
??MBR往往在SD0扇区。用于描述块设备分区信息。这里不好修改。

错误4

[    1.130308] dm9000 Ethernet Driver, V1.31
[    1.133113] ERROR : resetting 
[    1.135700] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.140915] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.145941] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.150963] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.155992] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.161018] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.166041] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.171070] dm9000 dm9000.0: read wrong id 0x2b2a2928
[    1.176092] dm9000 dm9000.0: wrong id: 0x2b2a2928
[    1.180774] dm9000 dm9000.0: not found (-19).

??mach-smdkc110.csmdkc110_machine_init硬件初始化存在问题。
??smdkc110_devicessmdkc110_dm9000_set()这两个地方是和DM9000有关的,要分别去做移植。
??DM9000相关的数据配置在arch/arm/plat-s5p/devs.c中更改
??在arch/arm/mach-s5pv210/include/mach/map.h中定义了DM9000的IO基地址,和DM9000接在哪个bank有关。
??还有+2改成+4,IRQ_EINT9改成10即可。










以上是关于kernel 2.6.35.7向S5PV210移植的主要内容,如果未能解决你的问题,请参考以下文章

X210开发板(S5PV210芯片)uboot移植DM9000驱动移植

s5pv210移植Minigui3.0.12

S5PV210开发系列八_Yaffs的移植

嵌入式开发(S5PV210)——u-boot的头文件包含问题

S5PV210-kernel-内核启动过程分析

S5PV210_uart stdio移植