From: Andrew de Quincey <adq_dvb@lidskialf.net>
To: lkml <linux-kernel@vger.kernel.org>
Subject: Nvidia nforce2 IRQ polarity with IO-APIC problem
Date: Sat, 26 Jul 2003 19:26:00 +0100 [thread overview]
Message-ID: <200307261926.00207.adq_dvb@lidskialf.net> (raw)
Hi, over the last week or so I have been developing a patch against 2.5.75 to
fix the IRQ problems I was having with onboard devices on my Nvidia
Nforce2-based Epox 8RDA+ motherboard.
It turned out that i386 linux was assuming all IRQs > 15 were active low,
level, and programming the IO-APIC with these parameters.
However, on my board, it turned out this was not the case. They were actually
active HIGH, level. My patch fixes the io_apic code in linux to use the IRQ
resource definitions from ACPI to setup the APIC. With this, my onboard
devices now work.
The next problem is more troublesome. PCI cards plugged into the expansion
slots do not appear to transmit IRQs (I'm testing with a Netgear MA311
wavelan card).
The PCI expansion slot IRQs are mapped to IO-APIC pins 16,17,18,19 (system
IRQ#16,17,18,19). In the ACPI IRQ resource definitions, these are defined as
active HIGH, level (whereas standard PCI IRQs are active LOW, level).
I suspected there might be an error in the ACPI definitions, so I tried
hacking my patch to force IRQs 16->19 to active low. With this hack, I do see
device IRQs, but I also see MILLIONS of spurious IRQs.... so the code in
irq.c masks off the interrupts with the message "IRQ#18: nobody cared".
I went into windows and checked how it was programming the IO-APIC. It is
programming it as per the ACPI definitions.... i.e. the PCI expansion device
IRQs are set to active HIGH, level. The PCI cards work in windows perfectly.
Checking the chip documentation for the wavelan PCI device shows that
(suprise!) it generates IRQs which are active low, level.
So.
1) The motherboard is expecting IRQs which are active HIGH, level.
2) PCI expansion devices are generating active LOW, level IRQs.
Something must be missing between these two. Does anyone have any ideas what.
As this is an nvidia chipset, I do not have documentation on the MCP-T
southbridge chipset.
reply other threads:[~2003-07-26 18:11 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=200307261926.00207.adq_dvb@lidskialf.net \
--to=adq_dvb@lidskialf.net \
--cc=linux-kernel@vger.kernel.org \
/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
all inboxes | Powered by JetHome®