SBSA Reference Platform can have GIC ITS present. And when it has then
we can have complex PCI Express setup (and some other things).
First patch adds support for GIC ITS. Address is read from TF-A via SMC
call. IORT is generated, MADT has ITS information. Linux boots and sees
GIC ITS as expected. SMMU information is also provided in IORT and used.
Second patch introduces PcdSmmuBase variable to avoid using magic number
in IORT generation.
Third patch takes care of system where GIC ITS is not present (like QEMU
8.0). If GIC ITS address is not set then there is no mention of it in
MADT and there is no IORT, Linux boots.
Changes since v3:
- use proper amount of nodes (3) in IORT
Changes since v2:
- no ITS == no IORT
Changes since v1:
- IORT is generated in C
- no ITS == no ITS node in IORT
- introduced PcdSmmuBase
Marcin Juszkiewicz (2):
Platform/QemuSbsa: add dynamic PcdSmmuBase
Platform/SbsaQemu: handle systems without GIC ITS
Shashi Mallela (1):
Platform/SbsaQemu: add GIC ITS support
Silicon/Qemu/SbsaQemu/SbsaQemu.dec | 4 +
Platform/Qemu/SbsaQemu/SbsaQemu.dsc | 4 +
.../Qemu/SbsaQemu/AcpiTables/AcpiTables.inf | 1 +
.../SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.inf | 2 +
.../SbsaQemuPlatformDxe.inf | 1 +
.../Include/IndustryStandard/SbsaQemuAcpi.h | 11 +
.../Include/IndustryStandard/SbsaQemuSmc.h | 1 +
.../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 208 +++++++++++++++++-
.../SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c | 10 +
9 files changed, 241 insertions(+), 1 deletion(-)
--
2.41.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#107924): https://edk2.groups.io/g/devel/message/107924
Mute This Topic: https://groups.io/mt/100874751/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-