* Re: Possible quick fix for ACPI routing problem on Nforce2 [not found] ` <200307122352.45704.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> @ 2003-07-13 1:18 ` Andrew de Quincey [not found] ` <200307130218.44398.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Andrew de Quincey @ 2003-07-13 1:18 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Hi, I've been playing about with this, and I've found what is happening. I've not yet tracked down the reason yet, but if anyone else has this problem, can they try please this fix to see if it is consistent. Anyway, IRQs > 15 get set to Active low/Level Sensitive in the IO-APIC on my board. The fix (No patch as this is NOT a proper fix): Edit arch/i386/kernel/io_apic.c Find the function io_apic_set_pci_routing() (its the last one in 2.5.74). Change the line: entry.polarity = 1; /* Low active */ To: entry.polarity = 0; /* High active */ For me, this makes everything work fine. Originally, I also forced these IRQs to be edge sensitive, but leaving them at level seems to work fine as well. Now, I assume one of the other functions in io_apic.c is _meant_ to be called to set this correctly. My next step is to track down why this is not occurring. A question: Why are these set to level/activelow in a function which is labelled to be setting up PCI IRQs? I'd assumed they were always edge/active high.. or is this not necessarily the case? ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <200307130218.44398.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>]
* Re: Re: Possible quick fix for ACPI routing problem on Nforce2 [not found] ` <200307130218.44398.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> @ 2003-07-13 5:39 ` Jurriaan [not found] ` <20030713053913.GB1284-4cpIIuwL6H0O5nXqB3HebLNAH6kLmebB@public.gmane.org> 2003-07-13 9:19 ` Re: Possible quick fix for ACPI routing problem on Nforce2 liste-9nAOAgdJVo4b1SvskN2V4Q 1 sibling, 1 reply; 10+ messages in thread From: Jurriaan @ 2003-07-13 5:39 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f From: Andrew de Quincey <adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> Date: Sun, Jul 13, 2003 at 02:18:44AM +0100 > Hi, I've been playing about with this, and I've found what is happening. > I've not yet tracked down the reason yet, but if anyone else has this > problem, can they try please this fix to see if it is consistent. > > Anyway, IRQs > 15 get set to Active low/Level Sensitive in the IO-APIC on > my board. > > The fix (No patch as this is NOT a proper fix): > Edit arch/i386/kernel/io_apic.c > Find the function io_apic_set_pci_routing() (its the last one in 2.5.74). > Change the line: > entry.polarity = 1; /* Low active */ > > To: > entry.polarity = 0; /* High active */ > > For me, this makes everything work fine. Originally, I also forced these > IRQs to be edge sensitive, but leaving them at level seems to work fine as > well. > No joy on VIA KT400 chipset (bugzilla #678): ide0 get's IRQ 17, during boot multiple oopses occur, starting with 'IRQ 17: nobody cared' right after probing hda. Eventually it crashes hard, after probing hde. Thanks, Jurriaan -- Pay attention, the wreckage seemed to declare. Some things cannot be undone, short of time pivoting in its groove and crawling back on itself. Tad Williams - Otherland Debian (Unstable) GNU/Linux 2.5.75 4112 bogomips load av: 1.06 0.44 0.16 ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <20030713053913.GB1284-4cpIIuwL6H0O5nXqB3HebLNAH6kLmebB@public.gmane.org>]
* Re: Re: Possible quick fix for ACPI routing problem on Nforce2 [not found] ` <20030713053913.GB1284-4cpIIuwL6H0O5nXqB3HebLNAH6kLmebB@public.gmane.org> @ 2003-07-13 16:52 ` Andrew de Quincey 2003-07-13 19:35 ` Andrew de Quincey 2003-07-13 23:51 ` Andrew de Quincey 2 siblings, 0 replies; 10+ messages in thread From: Andrew de Quincey @ 2003-07-13 16:52 UTC (permalink / raw) To: thunder7-qWit8jRvyhVmR6Xm/wNWPw, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Can you send me the contents of your /proc/acpi/dsdt if possible? I'd like to see if you have non-PCI-standard IRQs in the _PRT tables like I do. ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Re: Possible quick fix for ACPI routing problem on Nforce2 [not found] ` <20030713053913.GB1284-4cpIIuwL6H0O5nXqB3HebLNAH6kLmebB@public.gmane.org> 2003-07-13 16:52 ` Andrew de Quincey @ 2003-07-13 19:35 ` Andrew de Quincey 2003-07-13 23:51 ` Andrew de Quincey 2 siblings, 0 replies; 10+ messages in thread From: Andrew de Quincey @ 2003-07-13 19:35 UTC (permalink / raw) To: thunder7-qWit8jRvyhVmR6Xm/wNWPw, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f > No joy on VIA KT400 chipset (bugzilla #678): ide0 get's IRQ 17, during > boot multiple oopses occur, starting with 'IRQ 17: nobody cared' right > after probing hda. Eventually it crashes hard, after probing hde. I think this is related to the same problem. I've looked at your DSDT dump. It doesn't have the same style of IRQ definitions that mine has... It defines most of your IRQs as being connected to specific global system interrupt numbers (p165, ACPI v2.0b) (Mine has all interrupts directed at link devices). However, IRQ 17 will be set up as a PCI-standard IRQ... So its _probably_ that the first IDE device is expecting a different signalling standard to that which it is getting... If you were able to get to a command prompt you'd probably see /proc/interrupts showing millions of spurious IRQs like I did. ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Re: Possible quick fix for ACPI routing problem on Nforce2 [not found] ` <20030713053913.GB1284-4cpIIuwL6H0O5nXqB3HebLNAH6kLmebB@public.gmane.org> 2003-07-13 16:52 ` Andrew de Quincey 2003-07-13 19:35 ` Andrew de Quincey @ 2003-07-13 23:51 ` Andrew de Quincey [not found] ` <200307140051.29231.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> 2 siblings, 1 reply; 10+ messages in thread From: Andrew de Quincey @ 2003-07-13 23:51 UTC (permalink / raw) To: thunder7-qWit8jRvyhVmR6Xm/wNWPw, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f > No joy on VIA KT400 chipset (bugzilla #678): ide0 get's IRQ 17, during > boot multiple oopses occur, starting with 'IRQ 17: nobody cared' right > after probing hda. Eventually it crashes hard, after probing hde. Looking at your dmesg dump from 2.5.75, another problem is here, where it tries to route lots of your PCI IRQs to IRQ 0. It seems to be failing to program the IRQs. No idea why yet. BTW: is there a way to get more detailed debug output on ACPI? There are loads more debugging print statements in the code than are appearing in your dmesg (or in mine as well) even with ACPI Debug statements turned on. pci_link-0256 [21] acpi_pci_link_get_curr: No IRQ resource found ACPI: PCI Interrupt Link [ALKA] enabled at IRQ 0 pci_link-0256 [22] acpi_pci_link_get_curr: No IRQ resource found ACPI: PCI Interrupt Link [ALKB] enabled at IRQ 0 pci_link-0256 [23] acpi_pci_link_get_curr: No IRQ resource found ACPI: PCI Interrupt Link [ALKC] enabled at IRQ 0 pci_link-0256 [24] acpi_pci_link_get_curr: No IRQ resource found ACPI: PCI Interrupt Link [ALKD] enabled at IRQ 0 ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <200307140051.29231.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>]
* Located the problem with the VIA KT400 board [not found] ` <200307140051.29231.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> @ 2003-07-14 1:08 ` Andrew de Quincey [not found] ` <200307140208.07975.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Andrew de Quincey @ 2003-07-14 1:08 UTC (permalink / raw) To: thunder7-qWit8jRvyhVmR6Xm/wNWPw, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Hi, I think I've just spotted the problem, and unfortunately, I think it is an AML problem. When your board boots, several devices are configured without IRQs set (i.e. the IRQ returned by _CRS is 0) (I think this is called "boot disabled devices"). They have a list of possible IRQs (all of them > 15) in _PRS. The linux code for setting an IRQ is in drivers/acpi/pci_link.c/acpi_pci_link_set(). Theres a wee fix to make in here for my patch for the polarity etc, but your problem is when it creates the resource entry to send to the _SRS method. It does something like: if (irq <= 15) { ... create an IRQ resource } else { ... create an extended IRQ resource } However, the _SRS code in your BIOS has the following for the relevant devices: Method(_SRS, 1) { CreateByteField(Arg0, 0x1, IRD1) CreateByteField(Arg0, 0x2, IRD2) ShiftLeft(IRD2, 0x8, Local0) Or(Local0, IRD1, Local0) Store(0x0, Local1) ShiftRight(Local0, 0x1, Local0) While(LGreater(Local0, 0x0)) { Increment(Local1) ShiftRight(Local0, 0x1, Local0) } And(PIRD, 0xf, PIRD) ShiftLeft(Local1, 0x4, Local1) Or(PIRD, Local1, PIRD) } This assumes the resource passed to it is a normal IRQ resource, and cannot cope with extended ones. It only checks bytes 1&2 of the argument. For an extended argument, it would have to check bytes 5,6,7,8. In linux, the call to acpi_pci_link_set() from acpi_pci_link_check() does not check the return status of the call. Otherwise this error would be detected. ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <200307140208.07975.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>]
* Re: Located the problem with the VIA KT400 board [not found] ` <200307140208.07975.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> @ 2003-07-14 15:32 ` hgfelger-9nAOAgdJVo4b1SvskN2V4Q [not found] ` <Pine.LNX.4.33.0307141730001.1166-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: hgfelger-9nAOAgdJVo4b1SvskN2V4Q @ 2003-07-14 15:32 UTC (permalink / raw) To: Andrew de Quincey Cc: thunder7-qWit8jRvyhVmR6Xm/wNWPw, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Salut Andrew, might it be a good idea to then step back to try creating an normal IRQ resource if the extended one failed? On Mon, 14 Jul 2003, Andrew de Quincey wrote: > It does something like: > if (irq <= 15) { > ... create an IRQ resource > } else { > ... create an extended IRQ resource > } >.... > This assumes the resource passed to it is a normal IRQ resource, and cannot > cope with extended ones. It only checks bytes 1&2 of the argument. For an > extended argument, it would have to check bytes 5,6,7,8. > > In linux, the call to acpi_pci_link_set() from acpi_pci_link_check() does not > check the return status of the call. Otherwise this error would be detected. Cheers hartwig felger Hartwig Felger informatics - -- 1024D/339FD693 Hartwig Felger <hgfelger-9nAOAgdJVo4b1SvskN2V4Q@public.gmane.org> Key fingerprint = FB2F 3EE9 345A D55B 6FF2 0EC1 F5B0 684F 339F D693 For the pulic keys, please visit my page. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/Es0M9bBoTzOf1pMRAsLIAJ9SdnVbiHY9ScbvxplWivH0EAn8tQCePiLt 44cnbVelAe/Qax3A5TeJHrQ= =nDFX -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <Pine.LNX.4.33.0307141730001.1166-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org>]
* Re: Located the problem with the VIA KT400 board [not found] ` <Pine.LNX.4.33.0307141730001.1166-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org> @ 2003-07-14 15:53 ` Andrew de Quincey 0 siblings, 0 replies; 10+ messages in thread From: Andrew de Quincey @ 2003-07-14 15:53 UTC (permalink / raw) To: hgfelger-9nAOAgdJVo4b1SvskN2V4Q Cc: thunder7-qWit8jRvyhVmR6Xm/wNWPw, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Monday 14 July 2003 16:32, hgfelger-9nAOAgdJVo4b1SvskN2V4Q@public.gmane.org wrote: > Salut Andrew, > might it be a good idea to then step back to try creating an normal IRQ > resource if the extended one failed? Yeah, I was thinking about that. However, the problem only occurs when you have IRQs > 15, and unfortunately, you cannot specify IRQs > 15 in normal IRQ descriptors.... they're a bitfield aren't they? That particular KT400 BIOS only ever returns IRQs > 15 from the _PRS method for those link devices. So I've no idea how it could ever work. I've really no idea what you should/can do in this case. ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Re: Possible quick fix for ACPI routing problem on Nforce2 [not found] ` <200307130218.44398.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> 2003-07-13 5:39 ` Jurriaan @ 2003-07-13 9:19 ` liste-9nAOAgdJVo4b1SvskN2V4Q [not found] ` <Pine.LNX.4.33.0307131118210.561-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org> 1 sibling, 1 reply; 10+ messages in thread From: liste-9nAOAgdJVo4b1SvskN2V4Q @ 2003-07-13 9:19 UTC (permalink / raw) To: Andrew de Quincey; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Salut Andrew, On Sun, 13 Jul 2003, Andrew de Quincey wrote: > Anyway, IRQs > 15 get set to Active low/Level Sensitive in the IO-APIC on > my board. > > The fix (No patch as this is NOT a proper fix): > Edit arch/i386/kernel/io_apic.c > Find the function io_apic_set_pci_routing() (its the last one in 2.5.74). > Change the line: > entry.polarity = 1; /* Low active */ > > To: > entry.polarity = 0; /* High active */ > > For me, this makes everything work fine. Originally, I also forced these > IRQs to be edge sensitive, but leaving them at level seems to work fine as > well. Only ISA-IRQs are edge ones. As PCI has interrup-sharing, they need to be level ones. I am pretty sure, that your irq > 15 are not for ISA devices... cheers hartwig felger Hartwig Felger informatics - -- 1024D/339FD693 Hartwig Felger <hgfelger-9nAOAgdJVo4b1SvskN2V4Q@public.gmane.org> Key fingerprint = FB2F 3EE9 345A D55B 6FF2 0EC1 F5B0 684F 339F D693 For the pulic keys, please visit my page. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE/ESQP9bBoTzOf1pMRAjJVAJ99bGTXXRiw/iBojCWYDiNNMtrUbQCg4XcL merVrl51er6HGA9qFIk0gig= =H/M+ -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <Pine.LNX.4.33.0307131118210.561-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org>]
* Re: Re: Possible quick fix for ACPI routing problem on Nforce2 [not found] ` <Pine.LNX.4.33.0307131118210.561-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org> @ 2003-07-13 13:11 ` Andrew de Quincey 0 siblings, 0 replies; 10+ messages in thread From: Andrew de Quincey @ 2003-07-13 13:11 UTC (permalink / raw) To: hgfelger-9nAOAgdJVo4b1SvskN2V4Q, liste-9nAOAgdJVo4b1SvskN2V4Q Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Sunday 13 July 2003 10:19, liste-9nAOAgdJVo4b1SvskN2V4Q@public.gmane.org wrote: > Salut Andrew, > > On Sun, 13 Jul 2003, Andrew de Quincey wrote: > > Anyway, IRQs > 15 get set to Active low/Level Sensitive in the IO-APIC on > > my board. > > > > The fix (No patch as this is NOT a proper fix): > > Edit arch/i386/kernel/io_apic.c > > Find the function io_apic_set_pci_routing() (its the last one in 2.5.74). > > Change the line: > > entry.polarity = 1; /* Low active */ > > > > To: > > entry.polarity = 0; /* High active */ > > > > For me, this makes everything work fine. Originally, I also forced these > > IRQs to be edge sensitive, but leaving them at level seems to work fine > > as well. > > Only ISA-IRQs are edge ones. As PCI has interrup-sharing, they need to be > level ones. I am pretty sure, that your irq > 15 are not for ISA > devices... OK, makes sense. Interesting. I see the polarity is hardcoded to active low (1) in the code, which is correct for PCI isn't it? BUT: this just does not work in my system. The onboard nforce2 devices are generating active high IRQs, yet are mapped to IRQs 20,21,22 in ACPI. I've checked in Windows: it works, and those devices are mapped to IRQs 20,21,22 as well. ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2003-07-14 15:53 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200307122352.45704.adq_dvb@lidskialf.net>
[not found] ` <200307122352.45704.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-13 1:18 ` Possible quick fix for ACPI routing problem on Nforce2 Andrew de Quincey
[not found] ` <200307130218.44398.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-13 5:39 ` Jurriaan
[not found] ` <20030713053913.GB1284-4cpIIuwL6H0O5nXqB3HebLNAH6kLmebB@public.gmane.org>
2003-07-13 16:52 ` Andrew de Quincey
2003-07-13 19:35 ` Andrew de Quincey
2003-07-13 23:51 ` Andrew de Quincey
[not found] ` <200307140051.29231.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-14 1:08 ` Located the problem with the VIA KT400 board Andrew de Quincey
[not found] ` <200307140208.07975.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-14 15:32 ` hgfelger-9nAOAgdJVo4b1SvskN2V4Q
[not found] ` <Pine.LNX.4.33.0307141730001.1166-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org>
2003-07-14 15:53 ` Andrew de Quincey
2003-07-13 9:19 ` Re: Possible quick fix for ACPI routing problem on Nforce2 liste-9nAOAgdJVo4b1SvskN2V4Q
[not found] ` <Pine.LNX.4.33.0307131118210.561-100000-KnfdeQs3A3X/9pzu0YdTqQ@public.gmane.org>
2003-07-13 13:11 ` Andrew de Quincey
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox