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