Topic: Wired ethernet driver on chumby classic
Hi to all.
I use chumby with a wired ethernet card. It is supported and it works fine with the driver pegasus.ko that is in the distribution.
I'm developing an application that needs to know if the cable is plugged or not. The file /sys/class/net/eth0/carrier contains always the value 1. I
tried to plug the same usb device on my computer with kernel 2.6.23 and all worked fine. So I decided to patch the driver. I downloaded the linux kernel 2.6.16 from chumby.com. First of all I tried to compile the driver without any change. I compared my new driver and the old one and...they differ. When I do insmod /mnt/usb/pegasus.ko all is ok. I do ifconfig eth0 up with cable unplugged and all is still ok, but when I plug the cable I have a kernel panic!
In serial console I can read
[ 132.450000] Unable to handle kernel NULL pointer dereference at virtual address 00000013
[ 132.450000] pgd = c2698000
[ 132.450000] [00000013] *pgd=c2f0b031, *pte=00000000, *ppte=00000000
[ 132.450000] Internal error: Oops: 817 [#1]
[ 132.450000] Modules linked in: pegasus iptable_filter ip_tables ipt_REJECT x_tables rt73 asix usbnet chumby_timer fuse ppp_async ppp_generic slhc ftdi_sio usbserial usbhid snd_usb_audio snd_hwdep snd_usb_lib snd_seq_midi snd_rawmidi chumby_udma sense1 chumby_tsc2100
[ 132.450000] CPU: 0
[ 132.450000] PC is at memcpy+0xfc/0x330
[ 132.450000] LR is at 0xff
[ 132.450000] pc : [<c011537c>] lr : [<000000ff>] Not tainted
[ 132.450000] sp : c20bbec4 ip : 00000001 fp : c20bbf24
[ 132.450000] r10: c03bd4e4 r9 : c03bd0d0 r8 : c3c8b1e0
[ 132.450000] r7 : e00243d0 r6 : 20000000 r5 : 00000000 r4 : 00000180
[ 132.450000] r3 : 00000000 r2 : 0000017b r1 : c1a44801 r0 : 00000013
[ 132.450000] Flags: nzCv IRQs off FIQs on Mode SVC_32 Segment user
[ 132.450000] Control: 5317F Table: C2698000 DAC: 00000015
[ 132.450000] Process chumbyflashplay (pid: 2720, stack limit = 0xc20ba1a0)
[ 132.450000] Stack: (0xc20bbec4 to 0xc20bc000)
[ 132.450000] bec0: 00000013 00000180 c0183d6c c2c6eb00 c36f8de0 c20bbfb0 c03bd000
[ 132.450000] bee0: 00000006 0000001d 00004000 00000000 01c00180 000243d0 00000000 c03bd000
[ 132.450000] bf00: 00000000 00000000 00000037 c20bbfb0 c20ba000 40585a80 c20bbf3c c20bbf28
[ 132.450000] bf20: c0177f80 c0183a88 c3d6fa60 00000000 c20bbf64 c20bbf40 c00234fc c0177f54
[ 132.450000] bf40: c02da6ac 00000037 c20bbfb0 00000000 4058e0a0 c20ba000 c20bbf84 c20bbf68
[ 132.450000] bf60: c00237a0 c00234c0 ffffffff 0000ffff c20bbfb0 00000000 c20bbfac c20bbf88
[ 132.450000] bf80: c00233d8 c0023748 001d49e0 00000004 00000003 ffffffff 0000ffff 00000001
[ 132.450000] bfa0: 00000000 c20bbfb0 c0021b80 c0023398 00000000 40585a80 700f1456 001a7320
[ 132.450000] bfc0: 00000000 00000000 40585044 00000000 4058e0a0 701414f8 40585a80 700ef528
[ 132.450000] bfe0: 00000000 beef7660 0005d5f8 00075b5c 60000010 ffffffff 00000000 00000000
[ 132.450000] Backtrace:
[ 132.450000] [<c0183a78>] (imx21_irq+0x0/0x554) from [<c0177f80>] (usb_hcd_irq+0x3c/0x84)
[ 132.450000] [<c0177f44>] (usb_hcd_irq+0x0/0x84) from [<c00234fc>] (__do_irq+0x4c/0x8c)
[ 132.450000] r5 = 00000000 r4 = C3D6FA60
[ 132.450000] [<c00234b0>] (__do_irq+0x0/0x8c) from [<c00237a0>] (do_level_IRQ+0x68/0xc0)
[ 132.450000] r9 = C20BA000 r8 = 4058E0A0 r7 = 00000000 r6 = C20BBFB0
[ 132.450000] r5 = 00000037 r4 = C02DA6AC
[ 132.450000] [<c0023738>] (do_level_IRQ+0x0/0xc0) from [<c00233d8>] (asm_do_IRQ+0x50/0x128)
[ 132.450000] r7 = 00000000 r6 = C20BBFB0 r5 = 0000FFFF r4 = FFFFFFFF
[ 132.450000] [<c0023388>] (asm_do_IRQ+0x0/0x128) from [<c0021b80>] (__irq_usr+0x40/0x80)
[ 132.450000] r6 = 00000001 r5 = 0000FFFF r4 = FFFFFFFF
[ 132.450000] Code: e4d1e001 c4c03001 a4c04001 e052200c (e4c0e001)
[ 132.450000] Corrected 80 missed timer ticks
[ 132.490000] drivers/mfd/chumby-tsc2100.c/tsc2100_dma_play_isr(): timed-out wating for DMA to start.
[ 132.510000] Kernel panic - not syncing: Aiee, killing interrupt handler!
and then the system reboots itself.
Is there a different source for this driver? If yes where can I find it? Or how can I know if the cable is plugged or not whithout pinging.
Thank you to all.