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 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 (#107051): https://edk2.groups.io/g/devel/message/107051 Mute This Topic: https://groups.io/mt/100233784/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-