-
Notifications
You must be signed in to change notification settings - Fork 11
Nho/versal/msi #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nho/versal/msi #30
Conversation
Create the ITS device as part of versal soc and map it into the versal APU memory region. Signed-off-by: Nelson Ho <Nelson.Ho@windriver.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, sent you one other comment privately.
hw/arm/xlnx-versal-virt.c
Outdated
const char compat[] = "arm,gic-v3-its"; | ||
|
||
nodename = g_strdup_printf("%s/gic-its@%x", gicname, MM_GIC_APU_ITS); | ||
qemu_fdt_add_subnode(s->fdt, nodename);\ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like you've got an extra '\' at the end of the line here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TFTR! I address both points
Create GIC ITS device tree subnode when creating GIC node. Add msi-map property to pcie controller node. Signed-off-by: Nelson Ho <Nelson.Ho@windriver.com>
size-cells property is not inherited from ancestors in the device tree, so must be explicitly defined in the GIC node. Devices that specify the GIC as the interrupt parent format the size field in their reg property according to the value of the GIC size-cells property. Without the size-cells property in the GIC node, the reg property of the pcie controller and other devices using the GIC as the interrupt parent may be parsed incorrectly, resulting in mmio regions being mapped incorrectly. Signed-off-by: Nelson Ho <Nelson.Ho@windriver.com>
Enable Locality-specific Peripheral Interrupts. Connect the GICv3 to fpd.apu.mr as dma_as for MSI support. The ITS translation tables are stored in memory and the ITS will manage these tables as part of its operation. Signed-off-by: Nelson Ho <Nelson.Ho@windriver.com>
VxWorks does only one pass over the device tree and treats the GIC the same as any other peripheral in terms of initialization priority. As a result, any devices that use dynamic interrupts that specify the GIC as the interrupt parent need to be parsed and initialized after the GIC. To accomodate the VxWorks behavior, place the GIC node in the device tree such that it precedes any other peripherals. Note: Devices that use static interrupts (PPI/SPI) do not have the same requirement, as VxWorks has a mechanism to defer connection of statically assigned interrupts to the interrupt initialization finalize routine. See vxbIntDeferFinalize() Signed-off-by: Nelson Ho <Nelson.Ho@windriver.com>
Add MSI/MSIX interrupts to versal machine.