移植主要是参考该网页:
[url]http://www.cublog.cn/u2/63560/showart_514147.html[/url]
我的内核是2.6.24.4
以下是我移植过程存在的一些问题:
内核启动信息:
Cirrus Logic CS8900A driver for Linux (Modified for SMDK2410)
Unable to handle kernel paging request at virtual address e000030a
pgd = c0004000
[e000030a] *pgd=00000000
Internal error: Oops: 805 [#1]
Modules linked in:
CPU: 0 Not tainted (2.6.24.4 #5)
PC is at cs8900_probe+0xdc/0x2c0
LR is at 0xe0000300
pc : [<c001bfc0>] lr : [<e0000300>] psr: a0000013
sp : c3c19f10 ip : e000030a fp : c3c19f30
r10: 00000000 r9 : c0023854 r8 : c3c18000
r7 : c0022320 r6 : 00000002 r5 : c3c63000 r4 : 00000000
r3 : e000030a r2 : 00000000 r1 : c3ddf2a0 r0 : c3ddf2a0
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: c000717f Table: 30004000 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc3c18258)
Stack: (0xc3c19f10 to 0xc3c1a000)
9f00: c0022320 c3c19f30 c3c63000 00000000
9f20: c03602c0 c3c19f50 c3c19f34 c01f16b0 c001bef4 c3c19f50 c3c63000 00000000
9f40: 00000000 c3c19f68 c3c19f54 c01f198c c01f1620 c3c63000 c035d09c c3c19f80
9f60: c3c19f6c c001c22c c01f1958 00000000 00000000 c3c19ff4 c3c19f84 c0008c38
9f80: c001c1b4 c3c19f90 00000000 00000000 00000001 c3c19fa0 c003fea0 c003fe10
9fa0: 00000000 c3c19fb0 c002aee4 c003fe98 00000000 00000000 c0008b58 c00466a8
9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9fe0: 00000000 00000000 00000000 c3c19ff8 c00466a8 c0008b68 00000000 00000000
Backtrace:
[<c001bee4>] (cs8900_probe+0x0/0x2c0) from [<c01f16b0>] (register_netdevice+0xa)
r6:c03602c0 r5:00000000 r4:c3c63000
[<c01f1610>] (register_netdevice+0x0/0x338) from [<c01f198c>] (register_netdev+)
r6:00000000 r5:00000000 r4:c3c63000
[<c01f1948>] (register_netdev+0x0/0x54) from [<c001c22c>] (cs8900_init+0x88/0xb)
r5:c035d09c r4:c3c63000
[<c001c1a4>] (cs8900_init+0x0/0xb4) from [<c0008c38>] (kernel_init+0xe0/0x29c)
r5:00000000 r4:00000000
[<c0008b58>] (kernel_init+0x0/0x29c) from [<c00466a8>] (do_exit+0x0/0x6d4)
Code: e28ec00a e35c0201 e1a0300c 328334f6 (e1c340b0)
---[ end trace bba2f1a4ae8afd07 ]---
Kernel panic - not syncing: Attempted to kill init!
解决办法:
我在arch\arm\mach-s3c2410\mach-smdk2410.c的smdk2410_iodesc[]中
增加{vSMDK2410_ETH_IO, pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE}
在include\asm\plat-s3c24xx\Common-smdk.h中,增加了:
#define pSMDK2410_ETH_IO __phys_to_pfn(0x19000000)
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
然后编译,下载,就好了。
再在文件系统的/etc/init.d/rcS文件里
添加
/sbin/ifconfig eth0 192.168.1.119
/sbin/ifconfig lo 127.0.0.1
这样网络就没有问题了 ping主机也可以ping通了。
本文出自 “西安铁峰电子有限公司” 博客,请务必保留此出处http://ironpeak.blog.51cto.com/439173/100484