0nism

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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即可。

posted on 2020-02-28 22:12  0nism  阅读(213)  评论(0编辑  收藏  举报