@@ -121,7 +121,6 @@ DEFINE DO_CAPSULE = FALSE
# Styx specific libraries
#
AmdSataInit|Silicon/AMD/Styx/AmdModulePkg/Library/AmdSataInitLib/AmdSataInitLib.inf
- AmdStyxAcpiLib|Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
ResetSystemLib|ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf
RealTimeClockLib|Silicon/AMD/Styx/Library/RealTimeClockLib/RealTimeClockLib.inf
@@ -118,7 +118,6 @@ DEFINE DO_FLASHER = FALSE
# Styx specific libraries
#
AmdSataInit|Silicon/AMD/Styx/AmdModulePkg/Library/AmdSataInitLib/AmdSataInitLib.inf
- AmdStyxAcpiLib|Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
ResetSystemLib|ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf
RealTimeClockLib|Silicon/AMD/Styx/Library/RealTimeClockLib/RealTimeClockLib.inf
@@ -117,7 +117,6 @@ DEFINE DO_FLASHER = FALSE
# Styx specific libraries
#
AmdSataInit|Silicon/AMD/Styx/AmdModulePkg/Library/AmdSataInitLib/AmdSataInitLib.inf
- AmdStyxAcpiLib|Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
ResetSystemLib|ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf
RealTimeClockLib|Silicon/AMD/Styx/Library/RealTimeClockLib/RealTimeClockLib.inf
@@ -454,6 +454,7 @@ CAPSULE_HEADER_INIT_VERSION = 0x1
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
RAW ASL Optional |.aml
+ RAW ACPI Optional |.acpi
}
[Rule.Common.DXE_RUNTIME_DRIVER]
@@ -365,6 +365,7 @@ READ_LOCK_STATUS = TRUE
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
RAW ASL Optional |.aml
+ RAW ACPI Optional |.acpi
}
[Rule.Common.DXE_RUNTIME_DRIVER]
@@ -367,6 +367,7 @@ READ_LOCK_STATUS = TRUE
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
RAW ASL Optional |.aml
+ RAW ACPI Optional |.acpi
}
[Rule.Common.DXE_RUNTIME_DRIVER]
deleted file mode 100644
@@ -1,85 +0,0 @@
-#/** @file
-# Sample ACPI Platform Driver
-#
-# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR>
-# Copyright (c) 2014 - 2016, AMD Inc. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#**/
-#/**
-#
-# Derived from:
-# MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
-#
-#**/
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = AmdStyxAcpiLib
- FILE_GUID = 74850e9e-371c-43af-b1fe-794d61505ad0
- MODULE_TYPE = BASE
- VERSION_STRING = 1.0
- LIBRARY_CLASS = AmdStyxAcpiLib
-
-[Sources]
- Gtdt.c
- Fadt.c
- Dbg2.c
- Spcr.c
- Madt.c
- Mcfg.c
- Csrt.c
- Iort.c
- Pptt.c
-
-[Packages]
- ArmPkg/ArmPkg.dec
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
- Silicon/AMD/Styx/AmdModulePkg/AmdModulePkg.dec
- Silicon/AMD/Styx/AmdStyx.dec
-
-[LibraryClasses]
- PcdLib
- DebugLib
- UefiBootServicesTableLib
-
-[Protocols]
- gAmdMpCoreInfoProtocolGuid ## CONSUMED
-
-[Pcd]
- gAmdStyxTokenSpaceGuid.PcdSocCoreCount
- gAmdStyxTokenSpaceGuid.PcdSocCpuId
-
-[FixedPcd]
- gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
- gArmTokenSpaceGuid.PcdGicDistributorBase
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase
- gAmdStyxTokenSpaceGuid.PcdSerialDbgRegisterBase
- gAmdStyxTokenSpaceGuid.PcdGicVersion
- gAmdStyxTokenSpaceGuid.PcdGicHypervisorInterruptInterfaceBase
- gAmdStyxTokenSpaceGuid.PcdGicVirtualInterruptInterfaceBase
- gAmdStyxTokenSpaceGuid.PcdGicVirtualMaintenanceInterrupt
- gAmdStyxTokenSpaceGuid.PcdGicVirtualRegisterInterfaceBase
- gAmdStyxTokenSpaceGuid.PcdGicMSIFrameBase
- gAmdStyxTokenSpaceGuid.PcdCntControlBase
- gAmdStyxTokenSpaceGuid.PcdCntReadBase
- gAmdStyxTokenSpaceGuid.PcdCntCTLBase
- gAmdStyxTokenSpaceGuid.PcdCntBase0
- gAmdStyxTokenSpaceGuid.PcdCntEL0Base0
- gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogRefreshBase
- gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogControlBase
- gAmdStyxTokenSpaceGuid.PcdSbsaWakeUpGSIV
- gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogGSIV
- gAmdStyxTokenSpaceGuid.PcdSocCoresPerCluster
- gAmdStyxTokenSpaceGuid.PcdSata1PortCount
-
-[Depex]
- gAmdMpCoreInfoProtocolGuid
@@ -28,7 +28,16 @@
[Sources]
AcpiPlatform.c
+ Csrt.aslc
+ Dbg2.aslc
Dsdt.asl
+ Fadt.aslc
+ Gtdt.aslc
+ Iort.aslc
+ Madt.c
+ Mcfg.aslc
+ Pptt.aslc
+ Spcr.aslc
SsdtB1.asl
SsdtXgbe.asl
@@ -40,7 +49,6 @@
Silicon/AMD/Styx/AmdStyx.dec
[LibraryClasses]
- AmdStyxAcpiLib
BaseLib
BaseMemoryLib
DebugLib
@@ -54,12 +62,33 @@
gAmdStyxTokenSpaceGuid.PcdEthMacA
gAmdStyxTokenSpaceGuid.PcdEthMacB
gAmdStyxTokenSpaceGuid.PcdEnableSmmus
+ gAmdStyxTokenSpaceGuid.PcdSocCoreCount
gAmdStyxTokenSpaceGuid.PcdSocCpuId
[FixedPcd]
+ gAmdStyxTokenSpaceGuid.PcdCntControlBase
+ gAmdStyxTokenSpaceGuid.PcdCntReadBase
+ gAmdStyxTokenSpaceGuid.PcdCntCTLBase
+ gAmdStyxTokenSpaceGuid.PcdCntBase0
+ gAmdStyxTokenSpaceGuid.PcdCntEL0Base0
+ gAmdStyxTokenSpaceGuid.PcdGicVersion
+ gAmdStyxTokenSpaceGuid.PcdGicHypervisorInterruptInterfaceBase
+ gAmdStyxTokenSpaceGuid.PcdGicVirtualInterruptInterfaceBase
+ gAmdStyxTokenSpaceGuid.PcdGicVirtualMaintenanceInterrupt
+ gAmdStyxTokenSpaceGuid.PcdGicVirtualRegisterInterfaceBase
+ gAmdStyxTokenSpaceGuid.PcdGicMSIFrameBase
gAmdStyxTokenSpaceGuid.PcdSata1PortCount
+ gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogRefreshBase
+ gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogControlBase
+ gAmdStyxTokenSpaceGuid.PcdSbsaWakeUpGSIV
+ gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogGSIV
+ gAmdStyxTokenSpaceGuid.PcdSerialDbgRegisterBase
+ gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
+ gArmTokenSpaceGuid.PcdGicDistributorBase
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase
[Protocols]
+ gAmdMpCoreInfoProtocolGuid ## CONSUMED
gEfiAcpiTableProtocolGuid ## ALWAYS_CONSUMED
[Depex]
similarity index 83%
rename from Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.h
@@ -18,16 +18,7 @@
#include <IndustryStandard/Acpi.h>
-EFI_ACPI_DESCRIPTION_HEADER *FadtTable (void);
-EFI_ACPI_DESCRIPTION_HEADER *FacsTable (void);
EFI_ACPI_DESCRIPTION_HEADER *MadtHeader (void);
-EFI_ACPI_DESCRIPTION_HEADER *GtdtHeader (void);
-EFI_ACPI_DESCRIPTION_HEADER *McfgHeader (void);
-EFI_ACPI_DESCRIPTION_HEADER *Dbg2Header (void);
-EFI_ACPI_DESCRIPTION_HEADER *SpcrHeader (void);
-EFI_ACPI_DESCRIPTION_HEADER *CsrtHeader (void);
-EFI_ACPI_DESCRIPTION_HEADER *IortHeader (void);
-EFI_ACPI_DESCRIPTION_HEADER *PpttHeader (void);
#define EFI_ACPI_AMD_OEM_ID_ARRAY {'A','M','D','I','N','C'}
#define EFI_ACPI_AMD_OEM_TABLE_ID SIGNATURE_64('S','E','A','T','T','L','E',' ')
@@ -19,7 +19,6 @@
MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatform.c
**/
-#include <AmdStyxAcpiLib.h>
#include <Protocol/AcpiTable.h>
#include <Library/BaseLib.h>
@@ -31,12 +30,11 @@
#include <Library/UefiBootServicesTableLib.h>
#include <IndustryStandard/Acpi61.h>
+#include <IndustryStandard/IoRemappingTable.h>
#include <SocVersion.h>
-#define MAX_ACPI_TABLES 16
-
-EFI_ACPI_DESCRIPTION_HEADER *AcpiTableList[MAX_ACPI_TABLES];
+#include "AcpiPlatform.h"
STATIC EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol;
@@ -97,16 +95,20 @@ InstallSystemDescriptionTables (
VOID
)
{
- EFI_ACPI_DESCRIPTION_HEADER *Table;
- EFI_STATUS Status;
- UINT32 CpuId;
- UINTN Index;
- UINTN TableSize;
- UINTN TableHandle;
+ EFI_ACPI_DESCRIPTION_HEADER *Table;
+ EFI_STATUS Status;
+ UINT32 CpuId;
+ UINTN Index;
+ UINTN TableSize;
+ UINTN TableHandle;
+ EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE *Gtdt;
+ EFI_ACPI_6_0_IO_REMAPPING_TABLE *Iort;
#if DO_XGBE
UINT8 MacPackage[sizeof(mDefaultMacPackageA)];
#endif
+ CpuId = PcdGet32 (PcdSocCpuId);
+
Status = EFI_SUCCESS;
for (Index = 0; !EFI_ERROR (Status); Index++) {
Status = GetSectionFromFv (&gEfiCallerIdGuid, EFI_SECTION_RAW, Index,
@@ -117,7 +119,6 @@ InstallSystemDescriptionTables (
switch (Table->OemTableId) {
case SIGNATURE_64 ('S', 't', 'y', 'x', 'B', '1', ' ', ' '):
- CpuId = PcdGet32 (PcdSocCpuId);
if ((CpuId & STYX_SOC_VERSION_MASK) < STYX_SOC_VERSION_B1) {
continue;
}
@@ -141,11 +142,39 @@ InstallSystemDescriptionTables (
break;
#endif
continue;
+
+ default:
+ switch (Table->Signature) {
+ case EFI_ACPI_6_0_IO_REMAPPING_TABLE_SIGNATURE:
+ if (!PcdGetBool (PcdEnableSmmus)) {
+ continue;
+ }
+ if ((CpuId & STYX_SOC_VERSION_MASK) < STYX_SOC_VERSION_B1) {
+ Iort = (EFI_ACPI_6_0_IO_REMAPPING_TABLE *)Table;
+ Iort->NumNodes -= 2;
+ }
+ break;
+
+ case EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE:
+ if ((CpuId & STYX_SOC_VERSION_MASK) < STYX_SOC_VERSION_B1) {
+ Gtdt = (EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE *)Table;
+ Gtdt->Header.Length = sizeof (*Gtdt);
+ Gtdt->PlatformTimerCount = 0;
+ Gtdt->PlatformTimerOffset = 0;
+ }
+ break;
+ }
}
Status = mAcpiTableProtocol->InstallAcpiTable (mAcpiTableProtocol, Table,
- TableSize, &TableHandle);
- ASSERT_EFI_ERROR (Status);
+ Table->Length, &TableHandle);
+
+ DEBUG ((DEBUG_WARN,
+ "Installing %c%c%c%c Table (Revision %d, Length %d) ... %r\n",
+ ((UINT8 *)&Table->Signature)[0], ((UINT8 *)&Table->Signature)[1],
+ ((UINT8 *)&Table->Signature)[2], ((UINT8 *)&Table->Signature)[3],
+ Table->Revision, Table->Length, Status));
+
FreePool (Table);
}
}
@@ -168,67 +197,23 @@ AcpiPlatformEntryPoint (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- UINTN TableHandle;
- UINTN TableIndex;
-
- ZeroMem(AcpiTableList, sizeof(AcpiTableList));
-
- TableIndex = 0;
- AcpiTableList[TableIndex++] = FadtTable();
- AcpiTableList[TableIndex++] = MadtHeader();
- AcpiTableList[TableIndex++] = GtdtHeader();
- AcpiTableList[TableIndex++] = Dbg2Header();
- AcpiTableList[TableIndex++] = SpcrHeader();
- AcpiTableList[TableIndex++] = McfgHeader();
- AcpiTableList[TableIndex++] = CsrtHeader();
- if (PcdGetBool (PcdEnableSmmus)) {
- AcpiTableList[TableIndex++] = IortHeader();
- }
- AcpiTableList[TableIndex++] = PpttHeader();
- AcpiTableList[TableIndex++] = NULL;
-
- DEBUG((DEBUG_INFO, "%a(): ACPI Table installer\n", __FUNCTION__));
+ EFI_STATUS Status;
+ UINTN TableHandle;
+ EFI_ACPI_DESCRIPTION_HEADER *Header;
//
// Find the AcpiTable protocol
//
Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL,
(VOID**)&mAcpiTableProtocol);
- if (EFI_ERROR (Status)) {
- DEBUG((EFI_D_ERROR, "Failed to locate AcpiTable protocol. Status = %r\n", Status));
- ASSERT_EFI_ERROR(Status);
- }
+ ASSERT_EFI_ERROR (Status);
- TableIndex = 0;
- while (AcpiTableList[TableIndex] != NULL) {
- //
- // Install ACPI table
- //
- DEBUG ((EFI_D_ERROR, "Installing %c%c%c%c Table (Revision %d, Length %d) ...\n",
- *((UINT8*)&AcpiTableList[TableIndex]->Signature),
- *((UINT8*)&AcpiTableList[TableIndex]->Signature + 1),
- *((UINT8*)&AcpiTableList[TableIndex]->Signature + 2),
- *((UINT8*)&AcpiTableList[TableIndex]->Signature + 3),
- AcpiTableList[TableIndex]->Revision,
- AcpiTableList[TableIndex]->Length));
-
- Status = mAcpiTableProtocol->InstallAcpiTable (
- mAcpiTableProtocol,
- AcpiTableList[TableIndex],
- (AcpiTableList[TableIndex])->Length,
- &TableHandle
- );
- if (EFI_ERROR (Status)) {
- DEBUG((DEBUG_ERROR,"Error adding ACPI Table. Status = %r\n", Status));
- ASSERT_EFI_ERROR(Status);
- }
- TableIndex++;
- ASSERT( TableIndex < MAX_ACPI_TABLES );
- }
+ Header = MadtHeader ();
+ Status = mAcpiTableProtocol->InstallAcpiTable (mAcpiTableProtocol, Header,
+ Header->Length, &TableHandle);
+ ASSERT_EFI_ERROR (Status);
InstallSystemDescriptionTables ();
- return EFI_SUCCESS;
+ return EFI_REQUEST_UNLOAD_IMAGE;
}
-
similarity index 97%
rename from Silicon/AMD/Styx/AcpiTables/Madt.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Madt.c
@@ -27,9 +27,10 @@
#include <Library/UefiBootServicesTableLib.h>
#include <Guid/ArmMpCoreInfo.h>
-#include <AmdStyxAcpiLib.h>
#include <Protocol/AmdMpCoreInfo.h>
+#include "AcpiPlatform.h"
+
AMD_MP_CORE_INFO_PROTOCOL *mAmdMpCoreInfoProtocol = NULL;
similarity index 93%
rename from Silicon/AMD/Styx/AcpiTables/Csrt.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Csrt.aslc
@@ -16,7 +16,7 @@
**/
-#include <AmdStyxAcpiLib.h>
+#include "AcpiPlatform.h"
//
// CSRT for ARM_CCN504 (L3 CACHE)
@@ -69,7 +69,7 @@ typedef struct {
} AMD_ACPI_ARM_CCN504_CORE_SYSTEM_RESOURCE_TABLE;
-AMD_ACPI_ARM_CCN504_CORE_SYSTEM_RESOURCE_TABLE AcpiCsrt = {
+STATIC AMD_ACPI_ARM_CCN504_CORE_SYSTEM_RESOURCE_TABLE AcpiCsrt = {
AMD_ACPI_HEADER (EFI_ACPI_5_1_CORE_SYSTEM_RESOURCE_TABLE_SIGNATURE,
AMD_ACPI_ARM_CCN504_CORE_SYSTEM_RESOURCE_TABLE,
AMD_ACPI_ARM_CCN504_CSRT_REVISION),
@@ -97,11 +97,4 @@ AMD_ACPI_ARM_CCN504_CORE_SYSTEM_RESOURCE_TABLE AcpiCsrt = {
#pragma pack(pop)
-
-EFI_ACPI_DESCRIPTION_HEADER *
-CsrtHeader (
- VOID
- )
-{
- return &AcpiCsrt.Header;
-}
+VOID* CONST ReferenceAcpiTable = &AcpiCsrt;
similarity index 95%
rename from Silicon/AMD/Styx/AcpiTables/Dbg2.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Dbg2.aslc
@@ -16,9 +16,10 @@
**/
-#include <AmdStyxAcpiLib.h>
#include <IndustryStandard/DebugPort2Table.h>
+#include "AcpiPlatform.h"
+
#pragma pack(push, 1)
#define EFI_ACPI_DBG2_REVISION 0
@@ -104,11 +105,4 @@ STATIC DBG2_TABLE AcpiDbg2 = {
#pragma pack(pop)
-EFI_ACPI_DESCRIPTION_HEADER *
-Dbg2Header (
- VOID
- )
-{
- return &AcpiDbg2.Description.Header;
-}
-
+VOID* CONST ReferenceAcpiTable = &AcpiDbg2;
similarity index 96%
rename from Silicon/AMD/Styx/AcpiTables/Fadt.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Fadt.aslc
@@ -21,7 +21,7 @@
**/
-#include <AmdStyxAcpiLib.h>
+#include "AcpiPlatform.h"
#define FADT_FLAGS ( EFI_ACPI_5_1_HW_REDUCED_ACPI | \
EFI_ACPI_5_1_LOW_POWER_S0_IDLE_CAPABLE | \
@@ -91,11 +91,4 @@ STATIC EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE AcpiFadt = {
#pragma pack(pop)
-EFI_ACPI_DESCRIPTION_HEADER *
-FadtTable (
- VOID
- )
-{
- return (EFI_ACPI_DESCRIPTION_HEADER *) &AcpiFadt;
-}
-
+VOID* CONST ReferenceAcpiTable = &AcpiFadt;
similarity index 92%
rename from Silicon/AMD/Styx/AcpiTables/Gtdt.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Gtdt.aslc
@@ -21,7 +21,7 @@
**/
-#include <AmdStyxAcpiLib.h>
+#include "AcpiPlatform.h"
#pragma pack(push, 1)
@@ -170,20 +170,4 @@ STATIC AMD_ACPI_5_1_ARM_GTDT_STRUCTURE AcpiGtdt = {
#pragma pack(pop)
-
-EFI_ACPI_DESCRIPTION_HEADER *
-GtdtHeader (
- VOID
- )
-{
- UINT32 CpuId = PcdGet32 (PcdSocCpuId);
-
- // Check BaseModel and Stepping: Styx-B0 or prior?
- if (((CpuId & 0xFF0) == 0) || ((CpuId & 0x00F) == 0)) {
- AcpiGtdt.Gtdt.Header.Length = sizeof (EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE);
- AcpiGtdt.Gtdt.PlatformTimerCount = 0;
- AcpiGtdt.Gtdt.PlatformTimerOffset = 0;
- }
-
- return (EFI_ACPI_DESCRIPTION_HEADER *) &AcpiGtdt.Gtdt.Header;
-}
+VOID* CONST ReferenceAcpiTable = &AcpiGtdt;
similarity index 95%
rename from Silicon/AMD/Styx/AcpiTables/Iort.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Iort.aslc
@@ -12,9 +12,9 @@
**/
-#include <AmdStyxAcpiLib.h>
#include <IndustryStandard/IoRemappingTable.h>
-#include <SocVersion.h>
+
+#include "AcpiPlatform.h"
#define FIELD_OFFSET(type, name) __builtin_offsetof(type, name)
@@ -355,17 +355,4 @@ STATIC STYX_IO_REMAPPING_STRUCTURE AcpiIort = {
#pragma pack()
-EFI_ACPI_DESCRIPTION_HEADER *
-IortHeader (
- VOID
- )
-{
- if ((PcdGet32 (PcdSocCpuId) & STYX_SOC_VERSION_MASK) < STYX_SOC_VERSION_B1) {
- //
- // Silicon revisions prior to B1 have only one SATA port,
- // so omit the nodes of the second port in this case.
- //
- AcpiIort.Iort.NumNodes -= 2;
- }
- return (EFI_ACPI_DESCRIPTION_HEADER *)&AcpiIort.Iort.Header;
-}
+VOID* CONST ReferenceAcpiTable = &AcpiIort;
similarity index 86%
rename from Silicon/AMD/Styx/AcpiTables/Mcfg.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Mcfg.aslc
@@ -16,9 +16,10 @@
**/
-#include <AmdStyxAcpiLib.h>
#include <IndustryStandard/MemoryMappedConfigurationSpaceAccessTable.h>
+#include "AcpiPlatform.h"
+
#if STYX_A0
#define END_PCI_BUS_NUMBER 15
#else
@@ -32,7 +33,7 @@ typedef struct {
EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE Structure;
} EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_DESCRIPTION_TABLE;
-EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_DESCRIPTION_TABLE AcpiMcfg = {
+STATIC EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_DESCRIPTION_TABLE AcpiMcfg = {
{ AMD_ACPI_HEADER (EFI_ACPI_5_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,
EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_DESCRIPTION_TABLE,
EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION),
@@ -42,10 +43,4 @@ EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_DESCRIPTION_TABLE AcpiMcfg = {
#pragma pack(pop)
-EFI_ACPI_DESCRIPTION_HEADER *
-McfgHeader (
- VOID
- )
-{
- return &AcpiMcfg.Header.Header;
-}
+VOID* CONST ReferenceAcpiTable = &AcpiMcfg;
similarity index 97%
rename from Silicon/AMD/Styx/AcpiTables/Pptt.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Pptt.aslc
@@ -14,7 +14,7 @@
#include <IndustryStandard/Acpi.h>
-#include <AmdStyxAcpiLib.h>
+#include "AcpiPlatform.h"
#define FIELD_OFFSET(type, name) __builtin_offsetof(type, name)
@@ -216,10 +216,4 @@ STATIC STYX_PPTT_TABLE mStyxPpttTable = {
}
};
-EFI_ACPI_DESCRIPTION_HEADER *
-PpttHeader (
- VOID
- )
-{
- return (EFI_ACPI_DESCRIPTION_HEADER *)&mStyxPpttTable.Pptt.Header;
-}
+VOID* CONST ReferenceAcpiTable = &mStyxPpttTable;
similarity index 90%
rename from Silicon/AMD/Styx/AcpiTables/Spcr.c
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Spcr.aslc
@@ -16,9 +16,10 @@
**/
-#include <AmdStyxAcpiLib.h>
#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+#include "AcpiPlatform.h"
+
#pragma pack(push, 1)
#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_PL011 3
@@ -114,11 +115,4 @@ STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE AcpiSpcr = {
#pragma pack(pop)
-EFI_ACPI_DESCRIPTION_HEADER *
-SpcrHeader (
- VOID
- )
-{
- return &AcpiSpcr.Header;
-}
-
+VOID* CONST ReferenceAcpiTable = &AcpiSpcr;
ACPI table support on Seattle is split into two parts for no good reason: AcpiPlatformDxe and AmdStyxAcpiLib. Let's merge them together, and clean up the code that iterates over the tables and installs them. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 1 - Platform/LeMaker/CelloBoard/CelloBoard.dsc | 1 - Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc | 1 - Platform/AMD/OverdriveBoard/OverdriveBoard.fdf | 1 + Platform/LeMaker/CelloBoard/CelloBoard.fdf | 1 + Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf | 1 + Silicon/AMD/Styx/AcpiTables/AcpiTables.inf | 85 -------------- Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf | 31 +++++- Silicon/AMD/Styx/{Common/AmdStyxAcpiLib.h => Drivers/AcpiPlatformDxe/AcpiPlatform.h} | 9 -- Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 117 +++++++++----------- Silicon/AMD/Styx/{AcpiTables => Drivers/AcpiPlatformDxe}/Madt.c | 3 +- Silicon/AMD/Styx/{AcpiTables/Csrt.c => Drivers/AcpiPlatformDxe/Csrt.aslc} | 13 +-- Silicon/AMD/Styx/{AcpiTables/Dbg2.c => Drivers/AcpiPlatformDxe/Dbg2.aslc} | 12 +- Silicon/AMD/Styx/{AcpiTables/Fadt.c => Drivers/AcpiPlatformDxe/Fadt.aslc} | 11 +- Silicon/AMD/Styx/{AcpiTables/Gtdt.c => Drivers/AcpiPlatformDxe/Gtdt.aslc} | 20 +--- Silicon/AMD/Styx/{AcpiTables/Iort.c => Drivers/AcpiPlatformDxe/Iort.aslc} | 19 +--- Silicon/AMD/Styx/{AcpiTables/Mcfg.c => Drivers/AcpiPlatformDxe/Mcfg.aslc} | 13 +-- Silicon/AMD/Styx/{AcpiTables/Pptt.c => Drivers/AcpiPlatformDxe/Pptt.aslc} | 10 +- Silicon/AMD/Styx/{AcpiTables/Spcr.c => Drivers/AcpiPlatformDxe/Spcr.aslc} | 12 +- 19 files changed, 108 insertions(+), 253 deletions(-) -- 2.19.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel