public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: Niccolo Rigacci <linux-acpi@rigacci.org>
Cc: linux-acpi@vger.kernel.org
Subject: Re: Understandig ACPI routing PCI IRQ
Date: Mon, 11 Dec 2006 00:44:49 -0500	[thread overview]
Message-ID: <200612110044.49884.lenb@kernel.org> (raw)
In-Reply-To: <20061119161221.GC5208@rigacci.org>

On Sunday 19 November 2006 11:12, Niccolo Rigacci wrote:
> Hi, I'm trying to write a little howto about IRQ on modern PCs.
>  
> I still have some obscure points, can someone help me 
> understanding the following dmesg messages?
> 
>    ACPI: PCI Interrupt Link [LNK1] (IRQs *5 7 9 10 11 14 15)
>    ACPI: PCI Interrupt Link [APSI] (IRQs 20 21 22 23) *0, disabled.
> 
> Is the label [APSI] coming from the BIOS? I see several labels in 
> dmesg like LNK1, LUBA, LSID, APC1, ... what is the meaning?

Arbitrary 4-character AML names chosen by the BIOS programmer
for ACPI PCI Interrupt Link devices.

There are basically two modes, PIC mode and APIC mode.
It is common for programmers to use names that begin with 'A"
for APIC mode devices -- which clearly is the case above
since the GSI's are above 15.

> What it the IRQs list? Are those the possible values to route 
> that phisical link to?

Yes, as  communicated by the BIOS AML _PRS -- Possibile resource settings.

> Why some PCI interrupt links are assigned at the very begin of 
> boot process, where others are first disabled and then enabled 
> later?
> 
>    ACPI: PCI Interrupt Link [APSI] enabled at IRQ 23
>    ACPI: PCI Interrupt 0000:00:0e.0[A] -> Link [APSI] -> GSI 23 (level, low) -> IRQ 185
> 
> In the above log entries, what does it means GSI?

GSI = Global System Interrupt.
Ie. interrupts as seen as a single list from 0..n for the entire system.
This used to be synonymous with the IRQ#, but got screwed up by
the MSI code and also some platforms specific IRQ re-numbering code
that make the IRQ numbers look "funny".  Some of this code is being
un-done now and the GSI and IRQ will more often be the same
in 2.6.19 onward.
 
> I understand that in PCI slot 0e, there is a device 0, that uses 
> the first slot interrupt line (INTA#), which is routed to the CPU 
> IRQ 185. But what there is in the middle?

That is the ACPI PCI Interrupt Link.  Its name is APSI and per the message
above it could be programmed to 20, 21, 22, or 23.  Here Linux chose 23 --
which will depend on what other devices are in the system and the probe order.

> If someone knows detailed explanation of lspci and dmesg, give me 
> a pointer.

Well, the other part of the dmesg line above it the '*' which tells you where
the link is currently programmed.  Generally Linux tries to not move IRQs
in PIC mode, but by default will balance them in IO-APIC mode to minimize
sharing.

cheers,
-Len


      parent reply	other threads:[~2006-12-11  5:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-19 16:12 Understandig ACPI routing PCI IRQ Niccolo Rigacci
2006-11-20 16:49 ` Bjorn Helgaas
2006-12-11  5:44 ` Len Brown [this message]

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=200612110044.49884.lenb@kernel.org \
    --to=lenb@kernel.org \
    --cc=linux-acpi@rigacci.org \
    --cc=linux-acpi@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