zoukankan      html  css  js  c++  java
  • 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即可。

  • 相关阅读:
    Java再学习——栈(stack)和堆(heap)
    Java再学习——深究static关键字
    毕业设计进度:3月4日
    毕业设计进度:3月3日
    可视化组件:echarts柱状图添加点击事件
    毕业设计进度:2月29日
    毕业设计进度:2月28日
    毕业设计进度:2月27日
    毕业设计进度:2月26日
    毕业设计进度:2月25日
  • 原文地址:https://www.cnblogs.com/0nism/p/12380619.html
Copyright © 2011-2022 走看看