Hello,

> Please bounce me your patches for this; To my knowledge nobody's tried
> to build on a sparc before, and I don't have access to a PCI sparc. 

patch I have do is attached to this email (patch-sparc.txt). I can compile, but
running cause problems.

> Normally, the Configure script will just pick up the compiler and build
> flags from the kernel makefiles.  I take it this didn't work?

I have just retry, and no : it didn't work : it takes gcc for compiler. And for
compiling a kernel module, we use sparc64-linux-gcc. Adding sparc64-linux- as
prefix is enough for compiling. For linking, it try sparc64-linux-ld, which
don't exist. I have look on the other kernel module I have compiled, and the
correct link command is "ld -m elf64_sparc ...". So I do a make. When the make
stop on a bad link, I do it by hand (as there is only 2 modules to link, this
is OK for the moment ;-) ).

> Pass this oops through 'ksymoops' so we can see exactly where the crash
> is.

Attached is my last test : the original oops (oops.txt) and the output of
ksymoops (oops.output).

> Other possibilities -- around line 186 of wlan_compat.h add in a check
> for SPARC.   Many BE architechures implicitly reverse the endianness of
> data going over the PCI bus, and that screws us up.

I have try to add the check you suggest for this test (see the attached patch
if this is what you was talking about).

> Anyway;  compiling with debugging turned on (and turned up to level 4 or
> so) will help find out what's going on.

Also added : I have put a level 4 for both prism2_plx and p80211.

Thanks in advance for any help.

                Olivier
-- 
Olivier Bornet                 |      français : http://puck.ch/f
Swiss Ice Hockey Results       |      english  : http://puck.ch/e
http://puck.ch/                |      deutsch  : http://puck.ch/g
[EMAIL PROTECTED]         |      italiano : http://puck.ch/i
Get my PGP-key at http://puck.ch/pgp or at http://wwwkeys.pgp.net
--- src/include/wlan/wlan_compat.h      2002-10-01 15:20:34.000000000 +0200
+++ src/include/wlan/wlan_compat.h.patched      2002-11-06 19:40:42.000000000 
+0100
@@ -60,6 +60,7 @@
        #define WLAN_ALPHA                      5
        #define WLAN_MIPS                       6
        #define WLAN_HPPA                       7
+       #define WLAN_SPARC                      8
 /* WLAN_CPU_CORE */
        #define WLAN_I386CORE                   1
        #define WLAN_PPCCORE                    2
@@ -68,6 +69,7 @@
        #define WLAN_ALPHACORE                  5
        #define WLAN_MIPSCORE                   6
        #define WLAN_HPPACORE                   7
+       #define WLAN_SPARCCORE                  8
 /* WLAN_CPU_PART */
        #define WLAN_I386PART                   1
        #define WLAN_MPC860                     2
@@ -78,6 +80,7 @@
        #define WLAN_ALPHAPART                  7
        #define WLAN_MIPSPART                   8
        #define WLAN_HPPAPART                   9
+       #define WLAN_SPARCPART                  10
 /* WLAN_SYSARCH */
        #define WLAN_PCAT                       1
        #define WLAN_MBX                        2
@@ -89,6 +92,7 @@
        #define WLAN_ALPHAARCH                  7
        #define WLAN_MIPSARCH                   9
        #define WLAN_HPPAARCH                   10
+       #define WLAN_SPARCARCH                  11
 /* WLAN_OS */
        #define WLAN_LINUX_KERNEL               1
        #define WLAN_LINUX_USER                 2
@@ -165,6 +169,12 @@
        #define WLAN_CPU_CORE           WLAN_HPPACORE
        #define WLAN_CPU_PART           WLAN_HPPAPART
        #define WLAN_SYSARCH            WLAN_HPPAARCH
+#elif defined(__sparc__)
+       #define WLAN_CPU_FAMILY         WLAN_SPARC
+       #define WLAN_CPU_CORE           WLAN_SPARCCORE
+        #define WLAN_CPU_PART          WLAN_SPARCPART
+       #define WLAN_SYSARCH            WLAN_SPARC
+       #warning "SPARC ARCH"
 #else
        #error "No CPU identified!"
 #endif
@@ -182,7 +192,7 @@
 */
 
 #if (WLAN_HOSTIF == WLAN_PCI)
-#if ((WLAN_SYSARCH == WLAN_SKIFF) || (WLAN_SYSARCH == WLAN_PMAC))
+#if ((WLAN_SYSARCH == WLAN_SKIFF) || (WLAN_SYSARCH == WLAN_PMAC) || 
(WLAN_SYSARCH == WLAN_SPARC))
 #define REVERSE_ENDIAN
 #endif
 #endif
Nov  6 19:51:41 cool kernel: init_module: Enter
Nov  6 19:51:41 cool kernel: p80211netdev_startup: Enter
Nov  6 19:51:41 cool kernel: p80211netdev_startup: Exit
Nov  6 19:51:41 cool kernel: p80211indicate_init: Enter
Nov  6 19:51:41 cool kernel: p80211indicate_init: Exit
Nov  6 19:51:41 cool kernel: init_module: Exit
Nov  6 19:51:41 cool kernel: init_module: Enter
Nov  6 19:51:41 cool kernel: init_module: prism2_plx.o: 0.1.16-pre5 Loaded
Nov  6 19:51:41 cool kernel: init_module: dev_info is: prism2_plx
Nov  6 19:51:41 cool kernel: prism2sta_probe_plx: prism2_plx: Local Interrupt 
already enabled
Nov  6 19:51:41 cool kernel: A PLX PCI/PCMCIA interface device found, 
phymem:0x1ff00008000, phyio=0x1fe02000480, irq:6747200, mem: 0x1ff
00008000
Nov  6 19:51:41 cool kernel: Unable to handle kernel paging request at virtual 
address 0000000000008000
Nov  6 19:51:41 cool kernel: tsk->{mm,active_mm}->context = 00000000000006ce
Nov  6 19:51:41 cool kernel: tsk->{mm,active_mm}->pgd = fffff80013117000
Nov  6 19:51:41 cool kernel:               \|/ ____ \|/
Nov  6 19:51:41 cool kernel:               "@'/ .. \`@"
Nov  6 19:51:41 cool kernel:               /_| \__/ |_\
Nov  6 19:51:41 cool kernel:                  \__U_/
Nov  6 19:51:41 cool kernel: modprobe(3680): Oops
Nov  6 19:51:41 cool kernel: TSTATE: 0000004411009606 TPC: 000000000206fbcc 
TNPC: 000000000206fbd0 Y: 00000000    Not tainted
Nov  6 19:51:41 cool kernel: g0: fffff800107eef18 g1: 0000000000000001 g2: 
0000000000000000 g3: 0000000000000000
Nov  6 19:51:41 cool kernel: g4: fffff80000000000 g5: 0000000000000000 g6: 
fffff80015230000 g7: 0000000000000000
Nov  6 19:51:41 cool kernel: o0: 0000000000000077 o1: 00000000006b5f5f o2: 
0000000000000000 o3: 00000000005db400
Nov  6 19:51:41 cool kernel: o4: 000001ff00008000 o5: 0000000000000000 sp: 
fffff80015233261 ret_pc: 000000000206fbc4
Nov  6 19:51:41 cool kernel: l0: 000001ff00008000 l1: 000001ff00008000 l2: 
fffff8001061b000 l3: 0000000000000000
Nov  6 19:51:41 cool kernel: l4: 0000000000000000 l5: 0000000000000004 l6: 
0000000000000000 l7: 0000000000000008
Nov  6 19:51:41 cool kernel: i0: 000001fe02000480 i1: 0000000002087de0 i2: 
000000000206fac0 i3: fffff8001061b000
Nov  6 19:51:41 cool kernel: i4: 0000000000000000 i5: ffffffffffffffff i6: 
fffff80015233321 i7: 000000000051fc80
Nov  6 19:51:41 cool kernel: Caller[000000000051fc80]
Nov  6 19:51:42 cool kernel: Caller[000000000051fd2c]
Nov  6 19:51:42 cool kernel: Caller[0000000002070084]
Nov  6 19:51:42 cool kernel: Caller[000000000044916c]
Nov  6 19:51:42 cool kernel: Caller[0000000000410af4]
Nov  6 19:51:42 cool kernel: Caller[0000000000026a5c]
Nov  6 19:51:42 cool kernel: Instruction DUMP: 94100018  7f8f60f7  98100011 
<d20c4000> 80a26001  22400009  d00c6002  1100820f  1300820e
ksymoops 2.4.6 on sparc64 2.4.19.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.19/ (default)
     -m /boot/System.map-2.4.19 (default)

Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

00008000
Nov  6 19:51:41 cool kernel: Unable to handle kernel paging request at virtual 
address 0000000000008000
Nov  6 19:51:41 cool kernel: tsk->{mm,active_mm}->context = 00000000000006ce
Nov  6 19:51:41 cool kernel: tsk->{mm,active_mm}->pgd = fffff80013117000
Nov  6 19:51:41 cool kernel:               \|/ ____ \|/
Nov  6 19:51:41 cool kernel:               "@'/ .. \`@"
Nov  6 19:51:41 cool kernel:               /_| \__/ |_\
Nov  6 19:51:41 cool kernel:                  \__U_/
Nov  6 19:51:41 cool kernel: modprobe(3680): Oops
Nov  6 19:51:41 cool kernel: TSTATE: 0000004411009606 TPC: 000000000206fbcc 
TNPC: 000000000206fbd0 Y: 00000000    Not tainted
Using defaults from ksymoops -t elf32-sparc -a sparc
Nov  6 19:51:41 cool kernel: g0: fffff800107eef18 g1: 0000000000000001 g2: 
0000000000000000 g3: 0000000000000000
Nov  6 19:51:41 cool kernel: g4: fffff80000000000 g5: 0000000000000000 g6: 
fffff80015230000 g7: 0000000000000000
Nov  6 19:51:41 cool kernel: o0: 0000000000000077 o1: 00000000006b5f5f o2: 
0000000000000000 o3: 00000000005db400
Nov  6 19:51:41 cool kernel: o4: 000001ff00008000 o5: 0000000000000000 sp: 
fffff80015233261 ret_pc: 000000000206fbc4
Nov  6 19:51:41 cool kernel: l0: 000001ff00008000 l1: 000001ff00008000 l2: 
fffff8001061b000 l3: 0000000000000000
Nov  6 19:51:41 cool kernel: l4: 0000000000000000 l5: 0000000000000004 l6: 
0000000000000000 l7: 0000000000000008
Nov  6 19:51:41 cool kernel: i0: 000001fe02000480 i1: 0000000002087de0 i2: 
000000000206fac0 i3: fffff8001061b000
Nov  6 19:51:41 cool kernel: i4: 0000000000000000 i5: ffffffffffffffff i6: 
fffff80015233321 i7: 000000000051fc80
Nov  6 19:51:41 cool kernel: Caller[000000000051fc80]
Nov  6 19:51:42 cool kernel: Caller[000000000051fd2c]
Nov  6 19:51:42 cool kernel: Caller[0000000002070084]
Nov  6 19:51:42 cool kernel: Caller[000000000044916c]
Nov  6 19:51:42 cool kernel: Caller[0000000000410af4]
Nov  6 19:51:42 cool kernel: Caller[0000000000026a5c]
Nov  6 19:51:42 cool kernel: Instruction DUMP: 94100018  7f8f60f7  98100011 
<d20c4000> 80a26001  22400009  d00c6002  1100820f  1300820e


>>PC;  0206fbcc <[prism2_plx]prism2sta_probe_plx+10c/4a0>   <=====

>>o1; 006b5f5f <printk_buf.1+77/400>
>>o3; 005db400 <abi_table+18/230>
>>ret_pc; 0206fbc4 <[prism2_plx]prism2sta_probe_plx+104/4a0>
>>i1; 02087de0 <[prism2_plx]plx_id_tbl+80/140>
>>i2; 0206fac0 <[prism2_plx]prism2sta_probe_plx+0/4a0>
>>i7; 0051fc80 <pci_announce_device+40/80>

Trace; 0051fc80 <pci_announce_device+40/80>
Trace; 0051fd2c <pci_register_driver+6c/a0>
Trace; 02070084 <[prism2_plx]init_module+64/e0>
Trace; 0044916c <sys_init_module+6ac/780>
Trace; 00410af4 <linux_sparc_syscall32+34/40>
Trace; 00026a5c Before first symbol

Code;  0206fbc0 <[prism2_plx]prism2sta_probe_plx+100/4a0>
00000000 <_PC>:
Code;  0206fbc0 <[prism2_plx]prism2sta_probe_plx+100/4a0>
   0:   94 10 00 18       mov  %i0, %o2
Code;  0206fbc4 <[prism2_plx]prism2sta_probe_plx+104/4a0>
   4:   7f 8f 60 f7       call  fe3d83e0 <_PC+0xfe3d83e0> 00447fa0 
<printk+0/1c0>
Code;  0206fbc8 <[prism2_plx]prism2sta_probe_plx+108/4a0>
   8:   98 10 00 11       mov  %l1, %o4
Code;  0206fbcc <[prism2_plx]prism2sta_probe_plx+10c/4a0>   <=====
   c:   d2 0c 40 00       ldub  [ %l1 ], %o1   <=====
Code;  0206fbd0 <[prism2_plx]prism2sta_probe_plx+110/4a0>
  10:   80 a2 60 01       cmp  %o1, 1
Code;  0206fbd4 <[prism2_plx]prism2sta_probe_plx+114/4a0>
  14:   22 40 00 09       unknown
Code;  0206fbd8 <[prism2_plx]prism2sta_probe_plx+118/4a0>
  18:   d0 0c 60 02       ldub  [ %l1 + 2 ], %o0
Code;  0206fbdc <[prism2_plx]prism2sta_probe_plx+11c/4a0>
  1c:   11 00 82 0f       sethi  %hi(0x2083c00), %o0
Code;  0206fbe0 <[prism2_plx]prism2sta_probe_plx+120/4a0>
  20:   13 00 82 0e       sethi  %hi(0x2083800), %o1


1 warning issued.  Results may not be reliable.

Attachment: pgpDUBvgSbka1.pgp
Description: PGP signature

Reply via email to