免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6016 | 回复: 4
打印 上一主题 下一主题

ARM IXP425上移植MVL内核的问题![启动问题已经解决,附解决方案] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-12 16:40 |只看该作者 |倒序浏览
首先描述一下需求,要将MontaVista Linux for IXP425的内核移植到一个主芯片是IXP425BD的板子上面。这套MVL曾经成功地运行在一套基于IXP425的板子上,这次是要迁移到一款全新的硬件上。

首先使用原来可以成功运行的kernel配置进行配置,我使用的是MVL3.0,其内核版本是2.4.18。
注:由于两款硬件的SDRAM大小不同,以前的SDRAM是256M,新硬件的SDRAM是128M,因此修改配置文件中的kernel cmdline,内容如下:
  1. console=ttyS0,115200 root=/dev/ram rw ip=off mem=128M@0x00000000 initrd=0x00800000,8M
复制代码

然后执行一下命令:
  1. make ixdp425_config
  2. make oldconfig
  3. make dep
  4. make zImage
复制代码

成功,得到vmlinux和zImage,用file命令检查vmlinux文件,显示:
  1. file vmlinux
  2. vmlinux: ELF 32-bit MSB executable, ARM, Version 1 (ARM), statically linked, not stripped
复制代码

确认为可以在ARM上执行的文件。然后连接硬件,启动到RedBoot系统,执行以下命令:

  1. RedBoot> load -r -v -b 0x11600000 zImage
  2. Using default protocol (TFTP)
  3. |
  4. Raw file loaded 0x11600000-0x116ada3f, assumed entry at 0x11600000
  5. RedBoot> fis list
  6. Name              FLASH addr  Mem addr    Length      Entry point
  7. RedBoot           0x50000000  0x50000000  0x00060000  0x00000000
  8. RedBoot config    0x50FC0000  0x50FC0000  0x00001000  0x00000000
  9. FIS directory     0x50FE0000  0x50FE0000  0x00020000  0x00000000
  10. mac               0x50060000  0x10000000  0x00020000  0x10000000
  11. zimage            0x50080000  0x11600000  0x00100000  0x11600000
  12. ramdisk           0x50180000  0x10800000  0x00600000  0x10800000
  13. param             0x505E0000  0x00100000  0x00020000  0x10800000
  14. RedBoot> go 0x11600000
  15. Uncompressing Linux.................................................. done, boot
  16. ing the kernel.
复制代码


到此,系统就没有反映了。
网上搜索了一下,发现有三种情况遇到此问题:
1、一部分同仁们在cmdline中的console定义错误,将ttyS0写成了tty0,这样将输出定向到了标准终端,而不是串口;
2、一部分同仁在省级到2.6.10以上内核时还是错误的定义了console输出,2.6.10后的串口名据说变成ttySC0了,我也没试过2.6.10的内核;
3、还有一部分人在升级到2.6.10后,使用一个叫做skyeye的工具模拟,好像那样会牵扯到一个memory.h和lubbock.c中的关于内存基地址的定义问题,需要修改基地址中的0xa0000000为0xc00000000。

以上三种情况均与我不同,因此暂时还是一筹莫展!

如果有哪位兄弟碰到过类似情况,或者有什么思路,还望赐教!

[ 本帖最后由 Jobs.AE@ 于 2006-1-13 11:20 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-01-13 09:42 |只看该作者
原帖由 Jobs.AE@ 于 2006-1-12 16:40 发表
首先描述一下需求,要将MontaVista Linux for IXP425的内核移植到一个主芯片是IXP425BD的板子上面。这套MVL曾经成功地运行在一套基于IXP425的板子上,这次是要迁移到一款全新的硬件上。

首先使用原来可以成功运 ...


我遇到的情况几乎与你一样……只是不是用的MontaVista Linux for IXP425,而是用的snapgear3.2,还用了国内一家工控厂家的开发包,找不着原因,后来直接向厂家技术人员要了一个编译好的内核……

这块水平太低,只好打算去买一块“开发板+开发套件”的包,这样省事些……

论坛徽章:
0
3 [报告]
发表于 2006-01-13 11:16 |只看该作者
这个问题我已经解决了,分享一下。

对比了硬件厂家提供的软件包,其中在arch/arm/boot目录下,Makefile中有以下定义点:
  1. ifeq ($(CONFIG_ARCH_IXP425),y)
  2. ZRELADDR        = 0x00008000
  3. PARAMS_PHYS        = 0x00000100
  4. endif
复制代码

这与厂家提供的地址不同,这几个地址是kernel imgae解压缩后的地址,硬件相关,因此需要修改一致:
然后还有arch/arm/boot/compressed目录下的head-xscale.S文件,这个文件是初始化是调用的汇编,与芯片相关的,MVL提供的和厂商提供的不一样,因此用厂商提供的该文件替换。
然后就是注意kernel配置中的CMDLINE的设置,就OK了!

重新编译内核,加载,OK,系统启动成功。

但是现在碰到了新的问题,启动后系统报出如下错误:
  1. [error] No ISR registered to service interrupt
复制代码

正在解决中。。。

论坛徽章:
0
4 [报告]
发表于 2006-01-13 23:19 |只看该作者
最终解决了问题!

[error] No ISR registered to service interrupt

这个报错是由于一个模块没有加载成功造成的,重新编译modules后,替换到ramdisk中,就OK了!

论坛徽章:
0
5 [报告]
发表于 2006-12-14 13:53 |只看该作者
我也碰到了很多问题

  1. RedBoot> load -r -v -b 0x02600000 Image
  2. Using default protocol (TFTP)
  3. |
  4. Raw file loaded 0x02600000-0x026cd2e7, assumed entry at 0x02600000
  5. RedBoot> load -r -v -b 0x00800000 dramdisk.gz
  6. Using default protocol (TFTP)
  7. -
  8. Raw file loaded 0x00800000-0x013dfd96, assumed entry at 0x00800000
  9. RedBoot> exec 0x02600000
  10. Using base address 0x00800000 and length 0x00bdfd98
  11. Uncompressing Linux........................................................... .

  12. Error: a
复制代码


  1. ifeq ($(CONFIG_ARCH_IXP425),y)
  2. ZRELADDR        = 0x00008000
  3. PARAMS_PHYS        = 0x00000100
  4. endif
复制代码

具体是什么地址?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP