rt73 Linux kernel always crash on powerpc

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=5209

rengzhe2005

19-02-2009 02:41:45

Hi, I'am using the rt73 driver. The complie and loading are ok.but when I pluge the usb,the kernel will crash. My kernel is "inux freescale 2.6.24.6 #72 PREEMPT Wed Feb 18 160831 CST 2009 ppc unknown". Some wrong information are given

[ 23.387817] rt73 init
[ 23.390569] usbcore registered new interface driver rt73
[ 26.410408] usb 1-1 new high speed USB device using fsl-ehci and address 2
[ 26.690440] usb 1-1 configuration #1 chosen from 1 choice
[ 26.696600] rt73 idVendor = 0x148f, idProduct = 0x2573
[ 26.811505] <1>Unable to handle kernel paging request for instruction fetch
[ 26.850280] Faulting instruction address 0x00000004
[ 26.855614] Oops Kernel access of bad area, sig 11 [#1]
[ 26.860940] PREEMPT MPC5121 ADS
[ 26.864069] Modules linked in rt73
[ 26.867550] NIP 00000004 LR 00000007 CTR c01d1828
[ 26.872507] REGS df8c1bd0 TRAP 0400 Not tainted (2.6.24.6)
[ 26.878415] MSR 20009032 <EE,ME,IR,DR> CR 42282084 XER 20000000
[ 26.884764] TASK = df8bf3c0[91] 'khubd' THREAD df8c0000
[ 26.889890] GPR00 00000007 df8c1c80 df8bf3c0 00000004 c4df8220 dfb91100 00001c80 00000001
[ 26.898237] GPR08 00000008 dfb91120 c4a01000 df8c1be0 48282084 01300008 c0400000 c0400000
[ 26.906583] GPR16 00000000 c0380000 dfb73dc0 dfaa5804 00000001 c03f0000 c03f8330 dfba60a8
[ 26.914930] GPR24 df0d0000 c0420000 df8c1c68 df8c1c98 00000000 df0e0000 df0c0000 df0c0000
[ 26.923449] NIP [00000004] 0x4
[ 26.926492] LR [00000007] 0x7
[ 26.929449] Call Trace
[ 26.931883] [df8c1c80] [00000007] 0x7 (unreliable)
[ 26.936664] Instruction dump
[ 26.939621] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
[ 26.947358] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
[ 26.960215] ---[ end trace 0be86c8c4f33a8f5 ]---
Are the kernel options wrong? or any other reasons?

Spy84464

19-02-2009 18:04:51

Hello,
Since you're using a PPC, it may be an endianess problem. Vern, and other looked into this issue but I do not know if the driver is now 100% big endian proof (and that is only a supposition). How did you compile the driver? Did you use the very latest CVS tarball?

Regards,
Romain

rengzhe2005

20-02-2009 02:00:41

Thanks for your replay!
I known that the PPC is big endia,so I add -D_BIG_ENDIAN option when I cross-complie. Also I set the ARCH=powerpc and CROSS_COMPLIE={ppc-gcc}path.Everything seems to be ok.
After that,I track the driver,and I find that the crash happens when the driver read or write the register!
The driver version is rt73-cvs-2009011306.

Vern

20-02-2009 16:45:01

Cross compile? What happens if you compile *on* a PPC? If you do so, you should not need to provide anything special on the command line.[quote28eou9i5]Also I set the ARCH=powerpc and CROSS_COMPLIE={ppc-gcc}path[/quote28eou9i5]Hate to zap your English, but if you literally say "CROSS_COMPLIE", the definition will be provided, but nothing called "CROSS_COMPILE" will.

Thanks,

rengzhe2005

21-02-2009 01:48:53

I am sorry i didn't explain clearly.My PPC is an embeded system,so I must cross complie on a X86 system.
At the same time, I realize i should do more homework about english if i want my problem to be resolved successfully? lol lol

Vern

24-02-2009 16:26:01

Hi rengzhe2005,

I'm afraid in my case better English won't help.

We have gotten the driver to the point where it does build and run on an iMac G3; so basic big-endian operaion on a PPC should be OK.

I'm not an expert on cross compiling, so hopefully someone with more knowledge of those requirements than I have can help.

Thanks,