[PATCH v5 1/3] initialize each mbigen device node as a interrupt controller.
From: Thomas Gleixner <hidden>
Date: 2015-10-13 06:56:17
Also in:
lkml
Majun, On Tue, 13 Oct 2015, majun (F) wrote:
? 2015/10/12 0:45, Thomas Gleixner ??:quoted
So now in the mbigen case this looks like this: [MSI-BUS] ----- [MBIGEN]<-------------------[Device interrupt] Again, you have a 'wire' from the device to the MSI unit (MBIGEN) and we do not care about that 'wire' either. What we care about is how we find the MSI (mbigen) configuration registers for a particular device. So we need a DT/ACPI entry which describes those configuration registers and whatever supplementary information is required. That will make the mbigen driver extremly simple.According to your suggestions, I tried to make the hardware structure likes below: device(8250 uart) -> mbigne -> ITS-pMSI --> ITS --> GIC
I'm not sure whether mbigen should be connected to ITS-pMSI (I assume you mean ITS-PCI-MSI). mbigen is a seperate MSI domain, so it should connect to ITS, but I leave that to Marc.
And 8250 uart dts node is:
8250_uart {
compatible = "xxx";
msi-parent = < &mbigen>;
config_addr = <xxxxx> ; /* configuration register */
interrupts = <x>;
interrupt-parent = ?
}
My question is what's the interrupt-parent should be?
There is no interrupt parent for 8250_uart. Why would you want that?
I'm really not a DT expert, but I think you want something like this:
8250_uart {
compatible = "xxx";
msi-parent = < &mbigen_node5>;
interrupt-map = <&mbigen5 0>;
};
and then have
mbigen_node5 {
...
reg = <....>;
};
So the other devices which are connected to mbigen_node5 have the same
msi-parent. But then again, please discuss that with Marc and the DT
wizards.
Thanks,
tglx