On Wed, Jan 12, 2022 at 08:08:45PM +0000, Jiaxun Yang wrote: > 在2022年1月12日一月 下午3:19,Bjorn Helgaas写道: > > On Wed, Jan 12, 2022 at 12:57:44PM +0000, Jiaxun Yang wrote: > >> 在2022年1月11日一月 下午9:46,Bjorn Helgaas写道: > >> > [-cc many, +cc iproc, loongson, tegra maintainers] > [...] > > 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? > > 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. > > > 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). Bjorn