IP27's I/O addressing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Building off my last message on IP27's issues with PCI_PROBE_ONLY, getting
annoyed at IOC3, I discovered that an SGI-branded Tigon-II 1Gbps ethernet card
works fine in the Octane (called an AceNIC).  However, the exact same card does
not play well in an IP27 because attempting to probe the card results in a data
bus error:

[   41.779116] PCI host bridge to bus 0000:00
[   41.827659] pci_bus 0000:00: root bus resource [mem
0x920000000b200000-0x920000000b9fffff]
[   41.927164] pci_bus 0000:00: root bus resource [io
0x920000000ba00000-0x920000000bbfffff]
[   42.026636] pci_bus 0000:00: root bus resource [bus 00-ff]
[   42.093667] acenic.c: v0.92 08/05/2002  Jes Sorensen, linux-acenic@xxxxxxxxxx
[   42.093667]
http://home.cern.ch/~jes/gige/acenic.html
[   42.268604] PCI: Enabling device 0000:00:02.0 (0000 -> 0002)
[   42.336720] 0000:00:02.0: SGI AceNIC Gigabit Ethernet at 0x00400000, irq 1
[   42.429812] Slice B got dbe at 0xa80000000047a738
[   42.484468] Hub information:
[   42.519032] ERR_INT_PEND = 0x100000
[   42.560925] Hub has valid error information:
[   42.612246] Overrun is set.   Error stack may contain additional information.
[   42.697079] Hub error address is 02400208
[   42.745258] Incoming message command 0x9e
[   42.793435] Supplemental field of incoming message is 0x7f8
[   42.860464] T5 Rn (for RRB only) is 0x0
[   42.906547] Error type is Uncached Partial Read PRERR
[   42.967312] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.8.2-mipsgit-20161016 #1
[   43.055275] task: a8000000fe69ca80 task.stack: a8000000fe6a0000
[   43.126487] $ 0   : 0000000000000000 ffffffff94005ce0 9200000000400000
0000000000000004
[   43.222841] $ 4   : 000000000080a0b8 ffffffff94005ce1 0000000000000002
0000000000dd0000
[   43.319195] $ 8   : 0000000000dd0000 0000000000000000 00000000000000a5
0000000000dd0000
[   43.415550] $12   : 0000000000d90000 0000000000dd0000 0000000000dd0000
0000000000000020
[   43.511905] $16   : a8000001fc7a7000 0000000000000000 a8000001fcfd3098
a8000001fcfd3000
[   43.608260] $20   : a800000000de0000 0000000000000000 a800000000890000
a8000000008544bc
[   43.704614] $24   : 0000000000d90000 0000000000dd0000
[   43.800970] $28   : a8000000fe6a0000 a8000000fe6a3a70 a800000000889330
a80000000047a72c
[   43.897326] Hi    : 0000000000000001
[   43.940268] Lo    : 0000000000000000
[   43.983256] epc   : a80000000047a738 acenic_probe_one+0x36c/0x1964
[   44.057588] ra    : a80000000047a72c acenic_probe_one+0x360/0x1964
[   44.131929] Status: 94005ce3 KX SX UX KERNEL EXL IE
[   44.191631] Cause : 0000901c (ExcCode 07)
[   44.239808] PrId  : 00000f14 (R14000)

[snip at TLB dump]


GDB examination (take 0xa80000000047a738 and back up 4 bytes to
0xa80000000047a734):

(gdb) l *0xa80000000047a734
0xa80000000047a734 is in acenic_probe_one
(drivers/net/ethernet/alteon/acenic.c:562).
557
558             printk("Gigabit Ethernet at 0x%08lx, ", dev->base_addr);
559             printk("irq %d\n", pdev->irq);
560
561     #ifdef CONFIG_ACENIC_OMIT_TIGON_I
562             if ((readl(&ap->regs->HostCtrl) >> 28) == 4) {
563                     printk(KERN_ERR "%s: Driver compiled without Tigon I"
564                            " support - NIC disabled\n", dev->name);
565                     goto fail_uninit;
566             }
(gdb)


I'm learning that this machine doesn't like you to randomly poke at various I/O
addresses, which will trigger a HUB error.  The only safe way to access I/O
reliably on this platform, other than the IO6 devices on widget 0xf, is to use
get_dbe() and put_dbe() from asm/paccess.h, which gracefully handle the data
bus error this machine sometimes likes to throw back.  However, I don't think
trying to wrap all read[bwl]/write[bwl] calls to use get/put_dbe is a
reasonable fix.

Anyone else out there that's played around on an IP27 machine have a clue
what's going on in these instances?  I'm not running into any kind of access
control mechanism, am I?

-- 
Joshua Kinard
Gentoo/MIPS
kumba@xxxxxxxxxx
6144R/F5C6C943 2015-04-27
177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943

"The past tempts us, the present confuses us, the future frightens us.  And our
lives slip away, moment by moment, lost in that vast, terrible in-between."

--Emperor Turhan, Centauri Republic




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux