From: Ralf Baechle <ralf@linux-mips.org>
To: Stanislaw Skowronek <sskowron@ET.PUT.Poznan.PL>
Cc: linux-mips@linux-mips.org
Subject: Re: Xtalk bridge IRQs
Date: Sat, 24 Apr 2004 20:19:59 +0200 [thread overview]
Message-ID: <20040424181959.GB21153@linux-mips.org> (raw)
In-Reply-To: <Pine.GSO.4.10.10404241914160.10450-100000@helios.et.put.poznan.pl>
On Sat, Apr 24, 2004 at 07:14:32PM +0200, Stanislaw Skowronek wrote:
> I've got a problem with Xtalk-PCI bridge IRQs. The IOC3 should send an
> interrupt before transmitting a packet. I don't know if it sends it or
> not, but for sure it does not arrive to me. The power button interrupt,
> which is also routed via the bridge, works OK, so the IRQ router part of
> the bridge is correctly services. However, I can't get any PCI interrupts.
The way that PCI interrupts work on IP27 is: A device's INTA pin is
connected to the BRIDGE ASIC. When a device's interrupt line is asserted,
the bridge ASIC will store a value which consists of 0x100 | intnum into
another register; the address of that other register can be configured per
device in the BRIDGE chip. The value is usuall the xtalk address of another
register in the HUB ASIC. For HUB the value 0x100 | intnum would mean to
set bit intnum in the interrupt pending register. The BRIDGE chip
can also be configured to send an interrupt clear packet if the PCI
interrupt is deasserted again; it's a good idea to have this enabled since
otherwise writing race-free interrupt handlers is a PITA. The HUB
chip then asserts one of the CPU interrupt lines if a bit is set in the
interrupt pending register and mask0/mask1 register for the CPU.
For a single node system this could be slightly simplified - no idea if
SGI did that for the HEART design. Anyway, in case of an Origin you'd
have to chase the interrupt through the various stages of processing:
- Interupt sent from the device?
- Interrupt asserted at BRIDGE?
- Interrupt bit set in HUB chip?
- Interrupt enabled in HUB mask register?
- Interrupt pending in the CPU's cause register?
- Interrupt bit set and EXL and ERL both clear in CPU status register?
I hope that's somehow applicable to the IP30 ...
Ralf
next prev parent reply other threads:[~2004-04-24 18:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-24 17:14 Xtalk bridge IRQs Stanislaw Skowronek
2004-04-24 18:19 ` Ralf Baechle [this message]
2004-04-24 18:34 ` Stanislaw Skowronek
2004-04-24 18:54 ` Ralf Baechle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040424181959.GB21153@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=linux-mips@linux-mips.org \
--cc=sskowron@ET.PUT.Poznan.PL \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox