Skip to contentSkip to conversation

FDDI (defxx) and Linux/PA = HPMC

parisc-linux Max Grabert 1 participant 2 messages Apr 10, 2005 – Apr 11, 2005 1 message not in the archive Network drivers

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

On Apr 10, 2005 9:20 PM, Max Grabert <[email protected]> wrote:

[...]

Quoted 4 lines

I'm trying to get FDDI working on Linux/PA.

So I put a DEFPA card into my c3k (2.6.12-rc2-pa1, 32bit, gcc-3.4, Debian/testing), but it didn't get far:

Sorry, hat to reply to myself, forgot to attach a 'ser pim' output ...

Note the driver (defxx.c) is quite old, but is reported to work on x86 and 2.6 (and ppc on 2.4).

HTH,
Max

defxx: v1.07 2004/08/14 Lawrence V. Stefani and others
0000:01:04.0: DEFPA at I/O addr = 0x12100, IRQ = 21, Hardware addr = CB-F8-00-00-00-00 0000:01:04.0: registered as fddi0

Backtrace:
 [<10113640>] inl+0x38/0x44
 [<10688584>] dfx_init+0x60/0xc4
 [<1010397c>] init+0xa4/0x238
 [<1010bc5c>] ret_from_kernel_thread+0x1c/0x24

High Priority Machine Check (HPMC): Code=1 regs=105c7080 (Addr=00000000)

YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
PSW: 00000000000001101111111100001111 Not tainted

r00-03  00000000 106d1010 10113640 00000001
r04-07  00000000 0030a310 ffffffed 00000000
r08-11  105d40d0 000f41fa 3adf4500 106c03c8
r12-15  105d41f8 3b9aca00 106c0010 105d6010
r16-19  f00008c4 f000017c f0000174 fee00000
r20-23  4fa028a4 00000001 1031ec2c 00000000
r24-27  00000000 00000c80 10706480 105bd010
r28-31  fee00c80 111bf8d4 111f4180 10113640
sr0-3   00000000 00000000 00000000 00000000
sr4-7   00000000 00000000 00000000 00000000

IASQ: 00000000 00000000 IAOQ: 1031ec3c 1031ec40
IIR: 0f80019c ISR: a627fffb IOR: 80200c80
CPU: 0 CR30: 111f4000 CR31: 10670000
ORIG_R28: 00000000
IAOQ[0]: lba_astro_in32+0x10/0x24
IAOQ[1]: lba_astro_in32+0x14/0x24
RP(r2): inl+0x38/0x44

Kernel panic - not syncing: High Priority Machine Check (HPMC)

SER PIM:
========

Main Menu: Enter command > ser pim

PROCESSOR PIM INFORMATION

----------------- Processor 0 HPMC Information ------------------

Timestamp =
Sun Apr 10 20:41:01 GMT 2005 (20:05:04:10:20:41:01)

HPMC Chassis Codes = 2cbf0 2500b 2cbfb

General Registers 0 - 31

00-03   0000000000000000  00000000106d1010  0000000010113640  0000000000000001
04-07   0000000000000000  000000000030a310  ffffffffffffffed  0000000000000000
08-11   00000000105d40d0  00000000000f41fa  000000003adf4500  00000000106c03c8
12-15   00000000105d41f8  000000003b9aca00  00000000106c0010  00000000105d6010
16-19   00000000f00008c4  00000000f000017c  00000000f0000174  00000000fee00000
20-23   000000004fa028a4  0000000000000001  000000001031ec2c  0000000000000000
24-27   0000000000000000  0000000000000c80  0000000010706480  00000000105bd010
28-31   00000000fee00c80  00000000111bf8d4  00000000111f4180  0000000010113640

<Press any key to continue (q to quit)>

Control Registers 0 - 31

00-03   0000000000000000  0000000000000000  0000000000000000  0000000000000000
04-07   0000000000000000  0000000000000000  0000000000000000  0000000000000000
08-11   0000000000000000  0000000000000000  00000000000000c0  000000000000001f
12-15   0000000000000000  0000000000000000  000000000010b000  00000000fff80000
16-19   0000000c9c745d28  0000000000000000  000000001031ec3c  000000000f80019c
20-23   00000000a627fffb  c000000080200c80  000000ff0006ff0f  0000000080000000
24-27   0000000000662000  0000000000662000  0000000000044021  00000000f0412000
28-31   0000000055555555  0000000055555555  00000000111f4000  0000000010670000

Space Registers 0 - 7

00-03   00000000          00000000          00000000          00000000
04-07   00000000          00000000          00000000          00000000

<Press any key to continue (q to quit)>

IIA Space                    = 0x0000000000000000
IIA Offset                   = 0x000000001031ec40
Check Type                   = 0x20000000
CPU State                    = 0x9e000004
Cache Check                  = 0x00000000
TLB Check                    = 0x00000000
Bus Check                    = 0x0030103b
Assists Check                = 0x00000000
Assist State                 = 0x00000000
Path Info                    = 0x00000000
System Responder Address     = 0x000000fffee00c80
System Requestor Address     = 0xfffffffffffa0000

Floating-Point Registers 0 - 31

00-03   0000001f00000000  0000001f00000000  0000001f00000000  0000001f00000000
04-07   0000000000000000  5555555555555555  5555555555555555  5555555555555555
08-11   5555555555555555  5555555555555555  5555555555555555  5555555555555555
12-15   5555555555555555  5555555555555555  5555555555555555  5555555555555555
16-19   5555555555555555  5555555555555555  5555555555555555  5555555555555555
20-23   5555555555555555  5555555555555555  0640000003c08c00  00000000431bde83
24-27   17d7840000000000  5555555555555555  5555555555555555  5555555555555555
28-31   5555555555555555  5555555555555555  5555555555555555  5555555555555555

<Press any key to continue (q to quit)>

'9000/785 B,C,J Workstation Unarchitected (per-CPU)', rev 1, 140 bytes:

Check Summary                = 0xcb81041008000000
Available Memory             = 0x0000000040000000
CPU Diagnose Register 2      = 0x0203000000000004
CPU Status Register 0        = 0x2420c20000000000
CPU Status Register 1        = 0x8002000000000000
SADD LOG                     = 0xc10f00fffee00c80
Read Short LOG               = 0xc1af00fffee00c80
ERROR_STATUS                 = 0x0000000000100010
MEM_ADDR                     = 0x000001ff3fffffff
MEM_SYND                     = 0x0000000000000000
MEM_ADDR_CORR                = 0x000001ff3fffffff
MEM_SYND_CORR                = 0x0000000000000000
RUN_DATA_HIGH                = 0xc1bff0fffed08040
RUN_DATA_LOW                 = 0xc1bff0fffed08040
RUN_CTRL                     = 0x0000021c00001418
RUN_ADDR                     = 0xc1bff0fffed08040
System Responder Path        = 0x00ffffffffffffff

HPMC PIM Analysis Information:

Timestamp =
Sun Apr 10 20:41:01 GMT 2005 (20:05:04:10:20:41:01)

'9000/785 B,C,J Workstation HPMC PIM Analysis (per-CPU)', rev 0, 1304 bytes:

A Data I/O Fetch Timeout occurred while CPU 0 was requesting information from a device with the address 0xfffee00c80.

Memory/IO Controller Error Analysis Information:

The Memory/IO Controller only observed the Broadcast Error. It did not log any additional information about the HPMC.

<Press any key to continue (q to quit)>

----------------- Processor 0 LPMC Information ------------------

Check Type                   = 0x00000000
I/D Cache Parity Info        = 0x00000000
Cache Check                  = 0x00000000
TLB Check                    = 0x00000000
Bus Check                    = 0x00000000
Assists Check                = 0x00000000
Assist State                 = 0x00000000
Path Info                    = 0x00000000
System Responder Address     = 0x0000000000000000
System Requestor Address     = 0x0000000000000000

----------------- Processor 0 TOC Information -------------------

General Registers 0 - 31

00-03   0000000000000000  000000001053d660  0000000010126a7c  00000000106c0810
04-07   000000000002abd5  0000000000000000  00000000106c00d0  000000000010b024
08-11   0000000000000000  0000000000000000  00000000fffa0000  00000000f0408cd8
12-15   00000000f0407ef0  000000003b9aca00  00000000106c0010  00000000105d6010
16-19   00000000105c7080  00000000f000017c  00000000f0000174  00000000000458fe
20-23   0000001d86116d05  0000000000061a80  00000000101268f0  0000000d37c0837b
24-27   00000000001abb67  0000000000000000  000000000002abd5  00000000105bd010
28-31   0000000000000000  00000000006be960  00000000105c7480  0000000010126a7c

<Press any key to continue (q to quit)>

Control Registers 0 - 31

00-03   0000000000000000  0000000000000000  0000000000000000  0000000000000000
04-07   0000000000000000  0000000000000000  0000000000000000  0000000000000000
08-11   0000000000000000  0000000000000000  00000000000000c0  000000000000003f
12-15   0000000000000000  0000000000000000  000000000010b000  0000000000000000
16-19   0000001d861962a0  0000000000000000  0000000010126ac8  00000000020008b3
20-23   0000000010240001  0000000071dc7470  000000ff0004f80f  0000000080000000
24-27   0000000000662000  0000000000662000  0000000000044021  00000000f0412000
28-31   0000000055555555  0000000055555555  00000000111f4000  0000000010670000

Space Registers 0 - 7

00-03   00000000          00000000          00000000          00000000
04-07   00000000          00000000          00000000          00000000
IIA Space                    = 0x0000000000000000
IIA Offset                   = 0x0000000010126acc
CPU State                    = 0x9e000001

<Press any key to continue (q to quit)>

Memory Error Log Information:

Timestamp =
Sun Apr 10 20:41:01 GMT 2005 (20:05:04:10:20:41:01)

'9000/785 B,C,J Workstation Memory Error Log', rev 0, 64 bytes:

No memory errors logged

I/O Module Error Log Information:

Timestamp =
Sun Apr 10 20:41:01 GMT 2005 (20:05:04:10:20:41:01)

'9000/785 B,C,J Workstation IO Error Log', rev 0, 228 bytes:

Rope Word1 Word2 Word3
------ ------------ ------------

   0    0x0002e000   0x0e0cc009   0x0000000000000c80
   1    0x00000000   0x1e0cc009   0x00000000fed32048
   2    ----------   0x2e0cc009   ------------------
   3    ----------   0x3e0cc009   ------------------
   4    0x00000000   0x4e0cc009   0x00000000fed38048
   5    ----------   0x5e0cc009   ------------------
   6    0x00000000   0x6e0cc009   0x00000000fed3c048
   7    ----------   0x7e0cc009   ------------------

_______________________________________________
parisc-linux mailing list
[email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

#2 lore raw
Quoted 6 lines · Max Grabert

On Apr 10, 2005 9:20 PM, Max Grabert <[email protected]> wrote:

[...]

Quoted 2 lines

I'm trying to get FDDI working on Linux/PA.

Quoted 7 lines
Quoted 2 lines

So I put a DEFPA card into my c3k (2.6.12-rc2-pa1, 32bit, gcc-3.4, Debian/testing), but it didn't get far:

Sorry, hat to reply to myself, forgot to attach a 'ser pim' output ...

Note the driver (defxx.c) is quite old, but is reported to work on x86 and 2.6 (and ppc on 2.4).

Well, apparently the report that the driver was working on ppc is not true. The driver is not big-endian safe.

BTW, the HPMC is caused by drivers/net/defxx.c#527, which is the initialization routine for EISA cards, which is executed regardless whether there is EISA support compiled into the kernel or not. The inl() in there causes the HPMC.

Attached a patch that adresses at least the obvious big-endian issues and disables the EISA initialization if CONFIG_EISA is not defined.
With the patch my c3k boots up, detects the card and it seems to work, but I can't test it properly right now, since I don't have a second FDDI card here (yet).

Greetings,
Max

defxx.c renamed from drivers/net/defxx.c +7 -1
@@ -534,7 +534,7 @@
 	}
 	return rc;
 }
-
+
 /*
  * ================
  * = dfx_bus_init =
@@ -857,6 +857,7 @@
 		       print_name);
 		return(DFX_K_FAILURE);
 	}
+	data = cpu_to_le32(data);
 	memcpy(&bp->factory_mac_addr[0], &data, sizeof(u32));
 
 	if (dfx_hw_port_ctrl_req(bp, PI_PCTRL_M_MLA, PI_PDATA_A_MLA_K_HI, 0,
@@ -865,6 +866,7 @@
 		       print_name);
 		return(DFX_K_FAILURE);
 	}
+	data = cpu_to_le32(data);
 	memcpy(&bp->factory_mac_addr[4], &data, sizeof(u16));
 
 	/*
@@ -3433,7 +3435,11 @@
 	rc_pci = pci_module_init(&dfx_driver);
 	if (rc_pci >= 0) dfx_have_pci = 1;
 	
+#ifdef CONFIG_EISA
 	rc_eisa = dfx_eisa_init();
+#else
+	rc_eisa = -1;
+#endif
 	if (rc_eisa >= 0) dfx_have_eisa = 1;
 
 	return ((rc_eisa < 0) ? 0 : rc_eisa)  + ((rc_pci < 0) ? 0 : rc_pci); 

_______________________________________________
parisc-linux mailing list
[email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux