NANO2410 CS8900 debugging

1. 内核启动过程中CS8900驱动始终没有加载

最终发现跟device注册有关,修改mach_smdk2410.c文件如下:

/* CS8900 */

static struct resource s3c_cs89x0_resources[] = {
	[0] = DEFINE_RES_MEM(0x19000000, SZ_1M),
	[1] = DEFINE_RES_IRQ(IRQ_EINT9),
};

static struct platform_device s3c2410_cs89x0 = {
	.name		= "cirrus,cs8900",
	.id		= -1,
	.num_resources	= ARRAY_SIZE(s3c_cs89x0_resources),
	.resource	= s3c_cs89x0_resources,
};


static struct platform_device *smdk2410_devices[] __initdata = {
	&s3c_device_ohci,
	&s3c_device_lcd,
	&s3c_device_wdt,
	&s3c_device_i2c0,
	&s3c_device_iis,
	&s3c2410_cs89x0,
	&s3c_device_usbgadget,
	&s3c_device_usb_hsudc,
	&s3c_device_sdi,	
};

然后CS8900driver能够正常启动并检测到设备。

2. 当设置eth0时,kernel crash

root@nano2410# ifconfig eth0 hw ether 48:02:AA:BB:CC:DD
root@nano2410#ifconfig eth0 up
irq 57: nobody cared (try booting with the "irqpoll" option)
CPU: 0 PID: 70 Comm: ifconfig Not tainted 5.3.0-g15fb8d921-dirty #39
Hardware name: SMDK2410
Backtrace:
[<c000df10>] (dump_backtrace) from [<c000e1f8>] (show_stack+0x18/0x24)
 r7:00000001 r6:00000039 r5:00000000 r4:c06f80c4
[<c000e1e0>] (show_stack) from [<c055db74>] (dump_stack+0x20/0x30)
[<c055db54>] (dump_stack) from [<c00562dc>] (__report_bad_irq+0x2c/0xd0)
[<c00562b0>] (__report_bad_irq) from [<c005663c>] (note_interrupt+0x248/0x2ac)
 r9:c06ff1f0 r8:c06f6934 r7:00000001 r6:00000039 r5:00000000 r4:c06f80c4
[<c00563f4>] (note_interrupt) from [<c0053408>] (handle_irq_event_percpu+0x58/0x84)
 r10:00000000 r9:c06ff1f0 r8:c06f6934 r7:00000001 r6:c06f80c4 r5:00000000
 r4:c06e7008 r3:00000000
[<c00533b0>] (handle_irq_event_percpu) from [<c0053464>] (handle_irq_event+0x30/0x4c)
 r6:0000ffff r5:c1802400 r4:c06f80c4
[<c0053434>] (handle_irq_event) from [<c0057450>] (handle_edge_irq+0xe0/0x1d0)
 r5:c1802400 r4:c06f80c4
[<c0057370>] (handle_edge_irq) from [<c005282c>] (generic_handle_irq+0x34/0x50)
 r5:c1802400 r4:00000000
[<c00527f8>] (generic_handle_irq) from [<c0286f74>] (s3c_irq_demux+0xd4/0x160)
[<c0286ea0>] (s3c_irq_demux) from [<c0052b3c>] (__handle_domain_irq+0x74/0xe8)
 r10:60000013 r9:c1206000 r8:c1808000 r7:00000001 r6:c1207c08 r5:c0715020
 r4:000001b9 r3:c0286ea0
[<c0052ac8>] (__handle_domain_irq) from [<c0286bf4>] (s3c24xx_handle_irq+0xbc/0x174)
 r9:c1206000 r8:c1808000 r7:c05bce90 r6:0000ffff r5:c1207b18 r4:c073da90
[<c0286b38>] (s3c24xx_handle_irq) from [<c0009a5c>] (__irq_svc+0x5c/0x78)
Exception stack(0xc1207b18 to 0xc1207b60)
7b00:                                                       00400100 000040a1
7b20: c0715640 60000013 00000000 00000002 00000000 00000001 c1808000 c1206000
7b40: 60000013 c1207bac c1207bb0 c1207b68 c001d670 c000a0fc 60000013 ffffffff
 r7:c1207b4c r6:ffffffff r5:60000013 r4:c000a0fc
[<c000a088>] (__do_softirq) from [<c001d670>] (irq_exit+0x98/0xac)
 r10:60000013 r9:c1206000 r8:c1808000 r7:00000001 r6:00000000 r5:c0715020
 r4:00000000
[<c001d5d8>] (irq_exit) from [<c0052b44>] (__handle_domain_irq+0x7c/0xe8)
[<c0052ac8>] (__handle_domain_irq) from [<c0286bf4>] (s3c24xx_handle_irq+0xbc/0x174)
 r9:c1206000 r8:00000039 r7:c05bce90 r6:0000ffff r5:c1207c08 r4:c073da90
[<c0286b38>] (s3c24xx_handle_irq) from [<c0009a5c>] (__irq_svc+0x5c/0x78)
Exception stack(0xc1207c08 to 0xc1207c50)
7c00:                   c06f80c4 00000000 00000000 00000000 c06f80c4 c1058600
7c20: 00000000 c06e7008 00000039 c06f8150 60000013 c1207c9c c1207c58 c1207c58
7c40: c0055368 c0055014 60000013 ffffffff
 r7:c1207c3c r6:ffffffff r5:60000013 r4:c0055014
[<c0054cb8>] (__setup_irq) from [<c00556a8>] (request_threaded_irq+0xd4/0x168)
 r10:c06f80d4 r9:00000000 r8:00000039 r7:00000000 r6:00000000 r5:c06f80c4
 r4:c1058600
[<c00555d4>] (request_threaded_irq) from [<c0376fc4>] (net_open+0x84/0x55c)
 r10:00000000 r9:00000001 r8:00000000 r7:00000000 r6:c05ad444 r5:c06e7008
 r4:c1007000 r3:00000000
[<c0376f40>] (net_open) from [<c04787f8>] (__dev_open+0xf4/0x180)
 r6:c05ad444 r5:c06e7008 r4:c1007000
[<c0478704>] (__dev_open) from [<c0478c04>] (__dev_change_flags+0x16c/0x1d4)
 r7:00001002 r6:00001043 r5:c06e7008 r4:c1007000
[<c0478a98>] (__dev_change_flags) from [<c0478c8c>] (dev_change_flags+0x20/0x58)
 r9:c1206000 r8:c1a9780c r7:00001002 r6:c1007134 r5:00000000 r4:c1007000
[<c0478c6c>] (dev_change_flags) from [<c04fc944>] (devinet_ioctl+0x618/0x768)
 r9:c1206000 r8:c1a9780c r7:c06e7008 r6:00000000 r5:c101f3c0 r4:c1207e00
[<c04fc32c>] (devinet_ioctl) from [<c04fecf4>] (inet_ioctl+0x1f0/0x36c)
 r10:00000000 r9:c1206000 r8:00000051 r7:c0710b98 r6:00008914 r5:c06e7008
 r4:becdcc68
[<c04feb04>] (inet_ioctl) from [<c0452578>] (sock_ioctl+0x398/0x584)
 r9:c1206000 r8:c0710b98 r7:c1871e80 r6:becdcc68 r5:c06e7008 r4:00008914
[<c04521e0>] (sock_ioctl) from [<c00e82a0>] (do_vfs_ioctl+0xa8/0x8b4)
 r9:c1206000 r8:00000003 r7:c1871e80 r6:c141da30 r5:becdcc68 r4:c06e7008
[<c00e81f8>] (do_vfs_ioctl) from [<c00e8ae8>] (ksys_ioctl+0x3c/0x64)
 r10:00000000 r9:c1206000 r8:becdcc68 r7:00008914 r6:00000003 r5:c1871e80
 r4:c1871e80
[<c00e8aac>] (ksys_ioctl) from [<c00e8b20>] (sys_ioctl+0x10/0x1c)
 r9:c1206000 r8:c00091e4 r7:00000036 r6:becdcc68 r5:becdce5c r4:001f1e2d
[<c00e8b10>] (sys_ioctl) from [<c0009000>] (ret_fast_syscall+0x0/0x50)
Exception stack(0xc1207fa8 to 0xc1207ff0)
7fa0:                   001f1e2d becdce5c 00000003 00008914 becdcc68 001f1e2d
7fc0: 001f1e2d becdce5c becdcc68 00000036 00000000 00000000 001c75bc 00000000
7fe0: becdcf55 becdcc38 0000bda8 0000913c
handlers:
[<d45e8675>] net_interrupt
Disabling IRQ #57
cs89x0: eth0: EEPROM is configured for unavailable media
ifconfig: SIOCSIFFLAGS: Resource temporarily unavailable
root@nano2410#

经搜索,
添加链接描述
这篇文章给了详细的解释。

3. EEPROM is configured for unavailable media

root@nano2410#ifconfig eth0 192.168.0.3
cs89x0: eth0: EEPROM is configured for unavailable media
ifconfig: SIOCSIFFLAGS: Resource temporarily unavailable
root@nano2410#ifconfig eth0 192.168.0.3 up
cs89x0: eth0: EEPROM is configured for unavailable media
ifconfig: SIOCSIFFLAGS: Resource temporarily unavailable
root@nano2410#

经搜索,
【linux】linux内核移植错误记录
这篇文章给了详细的解释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值