linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Re: Re: Status of PCI-PCI bridge on UMAX S900
@ 2000-12-29  0:16 jingai
  2000-12-29 15:09 ` Chas Williams
  0 siblings, 1 reply; 16+ messages in thread
From: jingai @ 2000-12-29  0:16 UTC (permalink / raw)
  To: debian-powerpc, linuxppc-dev


> just a short followup to the message i sent to debian-powerpc, i applied
> the following diff and was able to move my usb board to the other side of
the
>
> umax/s900 bridge w/o any ill effect:
>
> --- prom.c.000  Thu Dec 28 08:43:12 2000
> +++ prom.c      Thu Dec 28 09:06:16 2000
> @@ -1563,8 +1563,8 @@
>         }
>
>         ip = (int *) get_property(np, "AAPL,interrupts", &l);
> -       if (ip == 0)
> -               ip = (int *) get_property(np, "interrupts", &l);
> +       if (ip == 0 && np->parent != NULL)
> +               ip = (int *) get_property(np->parent, "AAPL,interrupts",
> &l);
>         if (ip != 0) {
>                 np->intrs = (struct interrupt_info *) mem_start;
>                 np->n_intrs = l / sizeof(int);

Doh!  I didn't even think to check if the second get_property() call
was returning > 0.. this fixes it!  Thanks bunches for spotting that!

> on a related, note, shouldnt the 'right' code be:
>
>     ip = (int *) get_property(np, "interrupts", &l);
>     if (ip > 0)
>     {
>         /* find and assign interrupt -- see above */
>     }
>
> pci boards should only get an interrupt if they have the interrupt
> property (which seems to be the number of interrupts, not the interrupt
number)

Seems correct to me, but I'm no kernel guru, so I'll let someone else
answer
authoritatively.

-j


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 16+ messages in thread
* Re: Re: Status of PCI-PCI bridge on UMAX S900
  2000-12-27 10:06 ` Benjamin Herrenschmidt
@ 2000-12-28  4:05 jingai
  2000-12-28 14:13 ` Chas Williams
  -1 siblings, 1 reply; 16+ messages in thread
From: jingai @ 2000-12-28  4:05 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: debian-powerpc


> >Hello, I am just curious if anyone is working on getting the PCI-PCI
> >bridge code working for the UMAX S900...
>
> If you want to give it a look by yourself, the code that gets the
> interrupt numbers is in arch/ppc/prom.c. Look at the bits that use the
> "AAPL,interrupt" property and modify it slightly so that when it can't
> find it, it looks for the parent.

Ok, I've given it a more thorough looksee, and here is what I have done:

--- prom.c  Wed Dec 27 22:54:42 2000
+++ prom.c.old  Wed Dec 27 22:04:15 2000
@@ -1566,10 +1566,6 @@
    ip = (int *) get_property(np, "AAPL,interrupts", &l);
    if (ip == 0)
        ip = (int *) get_property(np, "interrupts", &l);
-   /* JSL: HACK FOR UMAX S900 PCI-PCI BRIDGE (DECchip 21052)
-    */
-   if (ip == 0 && np->parent != NULL)
-           ip = (int *) get_property(np->parent, "AAPL,interrupts", &l);
    if (ip != 0) {
        np->intrs = (struct interrupt_info *) mem_start;
        np->n_intrs = l / sizeof(int);

I have verified that the code I added is in fact called when it probes the
two
cards in slots 3 and 4; however, *ip == 1 for both cards.  It seems as
though
the IRQ info cannot be retrieved from AAPL,interrupts, or it is just
incorrect.

I did try *manually* setting the IRQs for these cards to 25 and 26, which
as I expected, did not work... (it appears to have the same effect as
when they are set to 1, considering that is also incorrect).

If it might help, the card in slot 4 is my second ethernet card (used for
my LAN -- internal is used for DSL), and it *does* work a little --
here is output from ping:

PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=255 time=7648.2 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=255 time=6656.9 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=255 time=5657.2 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=255 time=4654.8 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=255 time=3657.5 ms
64 bytes from 192.168.1.2: icmp_seq=5 ttl=255 time=2656.7 ms
64 bytes from 192.168.1.2: icmp_seq=6 ttl=255 time=1657.8 ms
64 bytes from 192.168.1.2: icmp_seq=7 ttl=255 time=657.9 ms

--- 192.168.1.2 ping statistics ---
11 packets transmitted, 8 packets received, 27% packet loss
round-trip min/avg/max = 657.9/4155.8/7648.2 ms

As you might notice, 7648.2ms is pretty bad for a machine in the
next room :)  Not to mention the 27% packet loss..

Anyway, I think I am stepping out of my bounds here now... hopefully
this is enough information for someone to give me some more pointers
on where I should look..

/me really wishes he were a kernel guru right now :)

TIA,
Jonathan

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 16+ messages in thread
[parent not found: <j-jvNB.A.O4F.4jrR6@murphy>]
* Status of PCI-PCI bridge on UMAX S900
@ 2000-12-25  3:03 jingai
  0 siblings, 0 replies; 16+ messages in thread
From: jingai @ 2000-12-25  3:03 UTC (permalink / raw)
  To: debian-powerpc, linuxppc-dev


Hello, I am just curious if anyone is working on getting the PCI-PCI
bridge code working for the UMAX S900 (similar to 9500, but
obviously different enough to break the code).  The problem is this:
all cards not in slots 1-2 are assigned an IRQ of 1, which is
obviously wrong.  I'm not sure why slot 3 does not work, however,
unless the code just thinks the PCI bridge *is* slot 3 (which it does
appear to be that way).

If no one is currently attempting to fix it, but someone would like to,
here is all of the relevant info I can think of.  Thanks in advance for
any help.

Location of the pci bridge in /proc is:

/proc/device-tree/bandit/pci-bridge/AAPL,interrupts

colour:/home/jingai# lspci
00:0b.0 Host bridge: Apple Computer Inc. Bandit PowerPC host bridge (rev
03)
00:0d.0 Unknown mass storage controller: Promise Technology, Inc. 20267
(rev 02)
00:0e.0 USB Controller: OPTi Inc. 82C861 (rev 10)
00:0f.0 PCI bridge: Digital Equipment Corporation DECchip 21052 (rev 01)
00:10.0 Class ff00: Apple Computer Inc. Grand Central I/O (rev 02)
01:01.0 VGA compatible controller: ATI Technologies Inc Rage 128 RE
01:02.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink]
(rev 30)

colour:/home/jingai# lspci -vv
00:0b.0 Host bridge: Apple Computer Inc. Bandit PowerPC host bridge (rev
03)
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
        Latency: 32, cache line size 08

00:0d.0 Unknown mass storage controller: Promise Technology, Inc. 20267
(rev 02)
        Subsystem: Promise Technology, Inc.: Unknown device 4d33
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32
        Interrupt: pin A routed to IRQ 23
        Region 0: I/O ports at 2070 [size=8]
        Region 1: I/O ports at 2060 [size=4]
        Region 2: I/O ports at 2050 [size=8]
        Region 3: I/O ports at 2040 [size=4]
        Region 4: I/O ports at 2000 [size=64]
        Region 5: Memory at 88020000 (32-bit, non-prefetchable) [size=128K]
        Expansion ROM at 88010000 [disabled] [size=64K]
        Capabilities: [58] Power Management version 1
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0e.0 USB Controller: OPTi Inc. 82C861 (rev 10) (prog-if 10 [OHCI])
        Subsystem: OPTi Inc. 82C861
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR+
        Latency: 32, cache line size 08
        Interrupt: pin A routed to IRQ 24
        Region 0: Memory at 88000000 (32-bit, non-prefetchable) [size=4K]

00:0f.0 PCI bridge: Digital Equipment Corporation DECchip 21052 (rev 01)
(prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32, cache line size 08
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: 00001000-00001fff
        Memory behind bridge: 80800000-87ffffff
        BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-

00:10.0 Class ff00: Apple Computer Inc. Grand Central I/O (rev 02)
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR+
        Latency: 32, cache line size 08
        Region 0: Memory at f3000000 (32-bit, non-prefetchable) [size=128K]

01:01.0 VGA compatible controller: ATI Technologies Inc Rage 128 RE
(prog-if 00 [VGA])
        Subsystem: Unknown device b530:0408
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping+ SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 (2000ns min), cache line size 08
        Interrupt: pin A routed to IRQ 1
        Region 0: Memory at 84000000 (32-bit, prefetchable) [size=64M]
        Region 1: I/O ports at 1000 [size=256]
        Region 2: Memory at 80804000 (32-bit, non-prefetchable) [size=16K]
        Expansion ROM at 80840000 [disabled] [size=128K]
        Capabilities: [5c] Power Management version 1
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:02.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink]
(rev 30)
        Subsystem: 3Com Corporation 3C905C-TX Fast Etherlink for PC
Management NIC
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 (2500ns min, 2500ns max), cache line size 08
        Interrupt: pin A routed to IRQ 1
        Region 0: I/O ports at 1400 [size=128]
        Region 1: Memory at 80800000 (32-bit, non-prefetchable) [size=128]
        Expansion ROM at 80820000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold-)
                Status: D0 PME-Enable+ DSel=0 DScale=2 PME-


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2001-01-05 19:51 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-12-29  0:16 Re: Status of PCI-PCI bridge on UMAX S900 jingai
2000-12-29 15:09 ` Chas Williams
2001-01-04 19:19   ` Tibor Pausz
2001-01-04 20:41     ` Benjamin Herrenschmidt
2001-01-04 20:57       ` David Edelsohn
2001-01-04 21:17         ` Benjamin Herrenschmidt
2001-01-04 21:19           ` Benjamin Herrenschmidt
2001-01-04 22:48       ` jingai
2001-01-04 22:53         ` David Edelsohn
2001-01-05 12:58           ` jingai
2001-01-05 14:24             ` Benjamin Herrenschmidt
2001-01-04 22:26     ` Chas Williams
2001-01-05 19:51       ` Tibor Pausz
  -- strict thread matches above, loose matches on Subject: below --
2000-12-28  4:05 jingai
2000-12-28 14:13 ` Chas Williams
     [not found] <j-jvNB.A.O4F.4jrR6@murphy>
2000-12-27 10:06 ` Benjamin Herrenschmidt
2000-12-25  3:03 jingai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).