X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FXenAcpiPlatformDxe%2FXen.c;fp=OvmfPkg%2FXenAcpiPlatformDxe%2FXen.c;h=cc2fa2cdcf8c4fa609bfb4b3daf5aad06095b47b;hb=ac0a286f4d747a4c6c603a7b225917293cbe1e9f;hp=151376176f7d99282a3324502297919a75265396;hpb=d1050b9dff1cace252aff86630bfdb59dff5f507;p=mirror_edk2.git diff --git a/OvmfPkg/XenAcpiPlatformDxe/Xen.c b/OvmfPkg/XenAcpiPlatformDxe/Xen.c index 151376176f..cc2fa2cdcf 100644 --- a/OvmfPkg/XenAcpiPlatformDxe/Xen.c +++ b/OvmfPkg/XenAcpiPlatformDxe/Xen.c @@ -15,8 +15,8 @@ #include "AcpiPlatform.h" -#define XEN_ACPI_PHYSICAL_ADDRESS 0x000EA020 -#define XEN_BIOS_PHYSICAL_END 0x000FFFFF +#define XEN_ACPI_PHYSICAL_ADDRESS 0x000EA020 +#define XEN_BIOS_PHYSICAL_END 0x000FFFFF EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *XenAcpiRsdpStructurePtr = NULL; @@ -34,13 +34,13 @@ EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *XenAcpiRsdpStructurePtr = NULL; EFI_STATUS EFIAPI GetXenAcpiRsdp ( - OUT EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER **RsdpPtr + OUT EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER **RsdpPtr ) { - EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *RsdpStructurePtr; - UINT8 *XenAcpiPtr; - UINT8 Sum; - EFI_XEN_INFO *XenInfo; + EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *RsdpStructurePtr; + UINT8 *XenAcpiPtr; + UINT8 Sum; + EFI_XEN_INFO *XenInfo; // // Detect the RSDP structure @@ -52,8 +52,12 @@ GetXenAcpiRsdp ( XenInfo = XenGetInfoHOB (); ASSERT (XenInfo != NULL); if (XenInfo->RsdpPvh != NULL) { - DEBUG ((DEBUG_INFO, "%a: Use ACPI RSDP table at 0x%p\n", - gEfiCallerBaseName, XenInfo->RsdpPvh)); + DEBUG (( + DEBUG_INFO, + "%a: Use ACPI RSDP table at 0x%p\n", + gEfiCallerBaseName, + XenInfo->RsdpPvh + )); *RsdpPtr = XenInfo->RsdpPvh; return EFI_SUCCESS; } @@ -61,14 +65,14 @@ GetXenAcpiRsdp ( // // Otherwise, look for the HVM one // - for (XenAcpiPtr = (UINT8*)(UINTN) XEN_ACPI_PHYSICAL_ADDRESS; - XenAcpiPtr < (UINT8*)(UINTN) XEN_BIOS_PHYSICAL_END; - XenAcpiPtr += 0x10) { - + for (XenAcpiPtr = (UINT8 *)(UINTN)XEN_ACPI_PHYSICAL_ADDRESS; + XenAcpiPtr < (UINT8 *)(UINTN)XEN_BIOS_PHYSICAL_END; + XenAcpiPtr += 0x10) + { RsdpStructurePtr = (EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER *) - (UINTN) XenAcpiPtr; + (UINTN)XenAcpiPtr; - if (!AsciiStrnCmp ((CHAR8 *) &RsdpStructurePtr->Signature, "RSD PTR ", 8)) { + if (!AsciiStrnCmp ((CHAR8 *)&RsdpStructurePtr->Signature, "RSD PTR ", 8)) { // // RSDP ACPI 1.0 checksum for 1.0/2.0/3.0 table. // This is only the first 20 bytes of the structure @@ -93,6 +97,7 @@ GetXenAcpiRsdp ( return EFI_ABORTED; } } + *RsdpPtr = RsdpStructurePtr; return EFI_SUCCESS; } @@ -119,31 +124,31 @@ GetXenAcpiRsdp ( EFI_STATUS EFIAPI InstallXenTables ( - IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol + IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol ) { - EFI_STATUS Status; - UINTN TableHandle; - - EFI_ACPI_DESCRIPTION_HEADER *Rsdt; - EFI_ACPI_DESCRIPTION_HEADER *Xsdt; - VOID *CurrentTableEntry; - UINTN CurrentTablePointer; - EFI_ACPI_DESCRIPTION_HEADER *CurrentTable; - UINTN Index; - UINTN NumberOfTableEntries; - EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt2Table; - EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt1Table; - EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs2Table; - EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs1Table; - EFI_ACPI_DESCRIPTION_HEADER *DsdtTable; - - Fadt2Table = NULL; - Fadt1Table = NULL; - Facs2Table = NULL; - Facs1Table = NULL; - DsdtTable = NULL; - TableHandle = 0; + EFI_STATUS Status; + UINTN TableHandle; + + EFI_ACPI_DESCRIPTION_HEADER *Rsdt; + EFI_ACPI_DESCRIPTION_HEADER *Xsdt; + VOID *CurrentTableEntry; + UINTN CurrentTablePointer; + EFI_ACPI_DESCRIPTION_HEADER *CurrentTable; + UINTN Index; + UINTN NumberOfTableEntries; + EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt2Table; + EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt1Table; + EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs2Table; + EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs1Table; + EFI_ACPI_DESCRIPTION_HEADER *DsdtTable; + + Fadt2Table = NULL; + Fadt1Table = NULL; + Facs2Table = NULL; + Facs1Table = NULL; + DsdtTable = NULL; + TableHandle = 0; NumberOfTableEntries = 0; // @@ -163,11 +168,11 @@ InstallXenTables ( // Retrieve the addresses of XSDT and // calculate the number of its table entries. // - Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) - XenAcpiRsdpStructurePtr->XsdtAddress; + Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN) + XenAcpiRsdpStructurePtr->XsdtAddress; NumberOfTableEntries = (Xsdt->Length - - sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / - sizeof (UINT64); + sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / + sizeof (UINT64); // // Install ACPI tables found in XSDT. @@ -176,11 +181,11 @@ InstallXenTables ( // // Get the table entry from XSDT // - CurrentTableEntry = (VOID *) ((UINT8 *) Xsdt + - sizeof (EFI_ACPI_DESCRIPTION_HEADER) + - Index * sizeof (UINT64)); - CurrentTablePointer = (UINTN) *(UINT64 *)CurrentTableEntry; - CurrentTable = (EFI_ACPI_DESCRIPTION_HEADER *) CurrentTablePointer; + CurrentTableEntry = (VOID *)((UINT8 *)Xsdt + + sizeof (EFI_ACPI_DESCRIPTION_HEADER) + + Index * sizeof (UINT64)); + CurrentTablePointer = (UINTN)*(UINT64 *)CurrentTableEntry; + CurrentTable = (EFI_ACPI_DESCRIPTION_HEADER *)CurrentTablePointer; // // Install the XSDT tables @@ -199,25 +204,24 @@ InstallXenTables ( // // Get the FACS and DSDT table address from the table FADT // - if (!AsciiStrnCmp ((CHAR8 *) &CurrentTable->Signature, "FACP", 4)) { + if (!AsciiStrnCmp ((CHAR8 *)&CurrentTable->Signature, "FACP", 4)) { Fadt2Table = (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE *) - (UINTN) CurrentTablePointer; + (UINTN)CurrentTablePointer; Facs2Table = (EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) - (UINTN) Fadt2Table->FirmwareCtrl; - DsdtTable = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Fadt2Table->Dsdt; + (UINTN)Fadt2Table->FirmwareCtrl; + DsdtTable = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Fadt2Table->Dsdt; } } - } - else if (XenAcpiRsdpStructurePtr->RsdtAddress) { + } else if (XenAcpiRsdpStructurePtr->RsdtAddress) { // // Retrieve the addresses of RSDT and // calculate the number of its table entries. // - Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) - XenAcpiRsdpStructurePtr->RsdtAddress; + Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN) + XenAcpiRsdpStructurePtr->RsdtAddress; NumberOfTableEntries = (Rsdt->Length - - sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / - sizeof (UINT32); + sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / + sizeof (UINT32); // // Install ACPI tables found in XSDT. @@ -226,11 +230,11 @@ InstallXenTables ( // // Get the table entry from RSDT // - CurrentTableEntry = (UINT32 *) ((UINT8 *) Rsdt + - sizeof (EFI_ACPI_DESCRIPTION_HEADER) + - Index * sizeof (UINT32)); + CurrentTableEntry = (UINT32 *)((UINT8 *)Rsdt + + sizeof (EFI_ACPI_DESCRIPTION_HEADER) + + Index * sizeof (UINT32)); CurrentTablePointer = *(UINT32 *)CurrentTableEntry; - CurrentTable = (EFI_ACPI_DESCRIPTION_HEADER *) CurrentTablePointer; + CurrentTable = (EFI_ACPI_DESCRIPTION_HEADER *)CurrentTablePointer; // // Install the RSDT tables @@ -249,12 +253,12 @@ InstallXenTables ( // // Get the FACS and DSDT table address from the table FADT // - if (!AsciiStrnCmp ((CHAR8 *) &CurrentTable->Signature, "FACP", 4)) { + if (!AsciiStrnCmp ((CHAR8 *)&CurrentTable->Signature, "FACP", 4)) { Fadt1Table = (EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *) - (UINTN) CurrentTablePointer; + (UINTN)CurrentTablePointer; Facs1Table = (EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) - (UINTN) Fadt1Table->FirmwareCtrl; - DsdtTable = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Fadt1Table->Dsdt; + (UINTN)Fadt1Table->FirmwareCtrl; + DsdtTable = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Fadt1Table->Dsdt; } } } @@ -275,8 +279,7 @@ InstallXenTables ( if (EFI_ERROR (Status)) { return Status; } - } - else if (Fadt1Table) { + } else if (Fadt1Table) { // // FACS 1.0 // @@ -313,4 +316,3 @@ InstallXenTables ( return EFI_SUCCESS; } -