REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3708
The ogirinal code will cause FWTS V21.08.00 testing failed. spcr: SPCR PC-AT compatible IRQ 0xff is invalid spcr: SPCR PCI flags compatibility bit 0 is 0, expecting 1 for PCI device Now modify the SpcrAcpi for following: 1. Disable the support of PC-AT compatible IRQ support. Now only support IO-APIC interrupt type. 2. Set irq to 0. 3. Set the GSI to the value read from PCI device cfg space 0x3C. 4. Set PCI Flags to 1. Signed-off-by: Ming Tan <ming....@intel.com> --- .../SpcrFeaturePkg/SpcrAcpiDxe/SpcrAcpi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Features/Intel/OutOfBandManagement/SpcrFeaturePkg/SpcrAcpiDxe/SpcrAcpi.c b/Features/Intel/OutOfBandManagement/SpcrFeaturePkg/SpcrAcpiDxe/SpcrAcpi.c index 86c40e90b8..7ad0c058c8 100644 --- a/Features/Intel/OutOfBandManagement/SpcrFeaturePkg/SpcrAcpiDxe/SpcrAcpi.c +++ b/Features/Intel/OutOfBandManagement/SpcrFeaturePkg/SpcrAcpiDxe/SpcrAcpi.c @@ -324,7 +324,9 @@ GetPciTypeInfo ( } gSpcrInfo.BaseAddress.Address = BaseAddress; - gSpcrInfo.Irq = (UINT8) Irq; + gSpcrInfo.InterruptType = EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC; + gSpcrInfo.Irq = 0; + gSpcrInfo.GlobalSystemInterrupt = (UINT32)Irq; gSpcrInfo.PciDeviceId = DeviceId; gSpcrInfo.PciVendorId = VendorId; @@ -332,6 +334,7 @@ GetPciTypeInfo ( gSpcrInfo.PciDeviceNumber = (UINT8) Device; gSpcrInfo.PciFunctionNumber = (UINT8) Function; gSpcrInfo.PciSegment = (UINT8) SegNum; + gSpcrInfo.PciFlags = 1; Done: if (Resources != NULL) { -- 2.29.2.windows.3 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#82731): https://edk2.groups.io/g/devel/message/82731 Mute This Topic: https://groups.io/mt/86622197/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-