Thread (36 messages) flat view 36 messages, 6 authors, 2022-01-29

Re: [PATCH 19/19] PCI: Set bridge map_irq and swizzle_irq to default functions

From: "Jiaxun Yang" <jiaxun.yang@flygoat.com>
Date: 2022-01-13 17:46:50
Also in: linux-pci, linux-tegra


在2022年1月12日一月 下午9:10,Bjorn Helgaas写道:
On Wed, Jan 12, 2022 at 08:08:45PM +0000, Jiaxun Yang wrote:
quoted
在2022年1月12日一月 下午3:19,Bjorn Helgaas写道:
quoted
On Wed, Jan 12, 2022 at 12:57:44PM +0000, Jiaxun Yang wrote:
quoted
在2022年1月11日一月 下午9:46,Bjorn Helgaas写道:
quoted
[-cc many, +cc iproc, loongson, tegra maintainers]
[...]
quoted
I see these:

  Documentation/devicetree/bindings/pci/loongson.yaml
  arch/mips/boot/dts/loongson/rs780e-pch.dtsi

which makes me think there are Loongson systems with DT.  Are there
some Loongson systems with DT and some legacy ones without?
Actually all present MIPS/Loongson systems are legacy and we just
built-in DTs in kernel and select which one to use at boot time. 
So I guess you know enough about what platform it is to select which
DT to use, but you don't know enough to know the I8259 routing?

If you *could* select a DT that described the I8259 routing, I guess
maybe you could select a matching DT or update a DT in-place?
quoted
quoted
The only driver I see is drivers/pci/controller/pci-loongson.c.
Is that used for all Loongson system?  It unconditionally uses
->map_irq = loongson_map_irq().
Yes, it's used among all Loongson systems.  For system using LS7A
PCH the IRQ mapping is fixed so we just programmed it in DT. For
RS780E we use this routine to read PCI_INTERRUPT_LINE to select
which I8259 IRQ to use.
quoted
loongson_map_irq() reads PCI_INTERRUPT_LINE; I think that depends
on firmware having previously programmed it, right?
I'm unclear about what did firmware do but as AMD RS780E is used in
x86 PCs as well it should be the same way.
PCI devices don't use the value in PCI_INTERRUPT_LINE, and the spec
doesn't define a default value.  It's only for use by software.

I'm pretty sure that on ACPI x86, we don't depend on
PCI_INTERRUPT_LINE except for things like quirks.

I think the ACPI MADT and _PRT are supposed to contain all the INTx
routing information we need.  Obviously this isn't an ACPI system.
I'm just making the point that it *should* be possible to remove this
dependency on firmware if we can identify the specific platform (which
determines the I8259 routing).
Hi,

Thanks for the information, I had send a enquire to Loongson to ask about
those details.

Patching DT at boot time should be possible :-)

Thanks.
Bjorn
-- 
- Jiaxun

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help