8000 Nho/versal/msi by ho28 · Pull Request #30 · Wind-River/qemu · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

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

Merged
merged 5 commits into from
Mar 7, 2025
Merged

Nho/versal/msi #30

merged 5 commits into from
Mar 7, 2025

Conversation

ho28
Copy link
Collaborator
@ho28 ho28 commented Mar 6, 2025

Add MSI/MSIX interrupts to versal machine.

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>
@ho28 ho28 requested a review from kay-ge March 6, 2025 18:51
Copy link
Collaborator
@kay-ge kay-ge left a 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.

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);\
Copy link
Collaborator

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.

Copy link
Collaborator Author

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

ho28 added 4 commits March 6, 2025 23:29
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>
@ho28 ho28 force-pushed the nho/versal/msi branch from 47537ba to abdeed2 Compare March 6, 2025 23:37
@kay-ge kay-ge self-requested a review March 6, 2025 23:53
@ho28 ho28 merged commit e73222b into Wind-River:wr-integration Mar 7, 2025
1 check passed
@ho28 ho28 deleted the nho/versal/msi branch March 7, 2025 00:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0