* [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more
@ 2018-12-05 18:50 Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 1/6] Silicon/AMD/Styx: move SOC version macros to common header Ard Biesheuvel
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-05 18:50 UTC (permalink / raw)
To: edk2-devel; +Cc: leif.lindholm, alan, graeme.gregory, Ard Biesheuvel
Primarily, this series gets rid of the hacked up way this platform
patches the DSDT at build time, by #include'ing intermediate output
of the iasl compiler [or some version of it, at least]
While at it, apply some other cleanups/improvements.
Ard Biesheuvel (6):
Silicon/AMD/Styx: move SOC version macros to common header
Silicon/AMD/Styx: move B1 revision peripherals to separate SSDT table
Silicon/AMD/Styx: move XGBE declarations to separate SSDT table
Silicon/AMD/Styx: emit DSDT as aml directly
Platform: add acpiview to Seattle/Styx platforms
Platform/AMD/OverdriveBoard: use default resolution for GOP
.../AMD/OverdriveBoard/OverdriveBoard.dsc | 7 +-
Platform/LeMaker/CelloBoard/CelloBoard.dsc | 5 +-
.../Overdrive1000Board/Overdrive1000Board.dsc | 4 +-
.../AMD/OverdriveBoard/OverdriveBoard.fdf | 2 +-
Platform/LeMaker/CelloBoard/CelloBoard.fdf | 2 +-
.../Overdrive1000Board/Overdrive1000Board.fdf | 2 +-
Silicon/AMD/Styx/AcpiTables/AcpiAml.inf | 29 ---
Silicon/AMD/Styx/AcpiTables/AcpiTables.inf | 3 -
.../AcpiPlatformDxe/AcpiPlatformDxe.inf | 13 ++
Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h | 1 -
Silicon/AMD/Styx/Common/SocVersion.h | 19 ++
Silicon/AMD/Styx/AcpiTables/Dsdt.c | 192 ------------------
Silicon/AMD/Styx/AcpiTables/Iort.c | 6 +-
.../Drivers/AcpiPlatformDxe/AcpiPlatform.c | 137 ++++++++++++-
.../StyxSataPlatformDxe/InitController.c | 7 +-
.../StyxDtbLoaderLib/StyxDtbLoaderLib.c | 7 +-
.../AcpiPlatformDxe}/Dsdt.asl | 180 ----------------
.../Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl | 86 ++++++++
.../Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl | 135 ++++++++++++
19 files changed, 395 insertions(+), 442 deletions(-)
delete mode 100644 Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
create mode 100644 Silicon/AMD/Styx/Common/SocVersion.h
delete mode 100644 Silicon/AMD/Styx/AcpiTables/Dsdt.c
rename Silicon/AMD/Styx/{AcpiTables => Drivers/AcpiPlatformDxe}/Dsdt.asl (72%)
create mode 100644 Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl
create mode 100644 Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl
--
2.19.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH edk2-platforms 1/6] Silicon/AMD/Styx: move SOC version macros to common header
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
@ 2018-12-05 18:50 ` Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 2/6] Silicon/AMD/Styx: move B1 revision peripherals to separate SSDT table Ard Biesheuvel
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-05 18:50 UTC (permalink / raw)
To: edk2-devel; +Cc: leif.lindholm, alan, graeme.gregory, Ard Biesheuvel
Instead of adding yet another redefinition in the next patch, move
the silicon revision testing macros into a shared header file.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Silicon/AMD/Styx/Common/SocVersion.h | 19 +++++++++++++++++++
Silicon/AMD/Styx/AcpiTables/Iort.c | 6 +-----
Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c | 7 ++-----
Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.c | 7 ++-----
4 files changed, 24 insertions(+), 15 deletions(-)
diff --git a/Silicon/AMD/Styx/Common/SocVersion.h b/Silicon/AMD/Styx/Common/SocVersion.h
new file mode 100644
index 000000000000..fc270b7c3431
--- /dev/null
+++ b/Silicon/AMD/Styx/Common/SocVersion.h
@@ -0,0 +1,19 @@
+#/** @file
+# SoC specific defines
+#
+# Copyright (c) 2018 Linaro, Ltd. 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.
+#
+#**/
+
+#define STYX_SOC_VERSION_MASK 0xFFF
+#define STYX_SOC_VERSION_A0 0x000
+#define STYX_SOC_VERSION_B0 0x010
+#define STYX_SOC_VERSION_B1 0x011
diff --git a/Silicon/AMD/Styx/AcpiTables/Iort.c b/Silicon/AMD/Styx/AcpiTables/Iort.c
index 370e71e13610..9c232379eff5 100644
--- a/Silicon/AMD/Styx/AcpiTables/Iort.c
+++ b/Silicon/AMD/Styx/AcpiTables/Iort.c
@@ -14,6 +14,7 @@
#include <AmdStyxAcpiLib.h>
#include <IndustryStandard/IoRemappingTable.h>
+#include <SocVersion.h>
#define FIELD_OFFSET(type, name) __builtin_offsetof(type, name)
@@ -354,11 +355,6 @@ STATIC STYX_IO_REMAPPING_STRUCTURE AcpiIort = {
#pragma pack()
-#define STYX_SOC_VERSION_MASK 0xFFF
-#define STYX_SOC_VERSION_A0 0x000
-#define STYX_SOC_VERSION_B0 0x010
-#define STYX_SOC_VERSION_B1 0x011
-
EFI_ACPI_DESCRIPTION_HEADER *
IortHeader (
VOID
diff --git a/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c b/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
index ea49cae9890f..1d2bca3d57ba 100644
--- a/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
+++ b/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
@@ -22,6 +22,8 @@
#include <Protocol/NonDiscoverableDevice.h>
+#include <SocVersion.h>
+
STATIC
VOID
ResetSataController (
@@ -144,11 +146,6 @@ InitializeSataController (
AhciBaseAddr, SIZE_4KB);
}
-#define STYX_SOC_VERSION_MASK 0xFFF
-#define STYX_SOC_VERSION_A0 0x000
-#define STYX_SOC_VERSION_B0 0x010
-#define STYX_SOC_VERSION_B1 0x011
-
EFI_STATUS
EFIAPI
StyxSataPlatformDxeEntryPoint (
diff --git a/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.c b/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.c
index 7e8f918b11b4..b9dfa2367ab2 100644
--- a/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.c
+++ b/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.c
@@ -28,6 +28,8 @@
#include <Protocol/AmdMpCoreInfo.h>
+#include <SocVersion.h>
+
#define PMU_INT_FLAG_SPI 0
#define PMU_INT_TYPE_HIGH_LEVEL 4
@@ -230,11 +232,6 @@ DisableSmmu (
}
}
-#define STYX_SOC_VERSION_MASK 0xFFF
-#define STYX_SOC_VERSION_A0 0x000
-#define STYX_SOC_VERSION_B0 0x010
-#define STYX_SOC_VERSION_B1 0x011
-
STATIC
VOID
SetSocIdStatus (
--
2.19.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH edk2-platforms 2/6] Silicon/AMD/Styx: move B1 revision peripherals to separate SSDT table
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 1/6] Silicon/AMD/Styx: move SOC version macros to common header Ard Biesheuvel
@ 2018-12-05 18:50 ` Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 3/6] Silicon/AMD/Styx: move XGBE declarations " Ard Biesheuvel
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-05 18:50 UTC (permalink / raw)
To: edk2-devel; +Cc: leif.lindholm, alan, graeme.gregory, Ard Biesheuvel
Instead of poking DSDT _STA method bytecode to make it return something
else depending on whether we are running on B1 silicon, move the B1 only
peripherals to a separate SSDT and only install it when running on
compatible hardware.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Platform/AMD/OverdriveBoard/OverdriveBoard.fdf | 1 +
Platform/LeMaker/CelloBoard/CelloBoard.fdf | 1 +
Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf | 1 +
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf | 7 ++
Silicon/AMD/Styx/AcpiTables/Dsdt.c | 39 ---------
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 62 ++++++++++++--
Silicon/AMD/Styx/AcpiTables/Dsdt.asl | 67 ---------------
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl | 86 ++++++++++++++++++++
8 files changed, 150 insertions(+), 114 deletions(-)
diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf b/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf
index bf4e6f3283eb..cc082031621c 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf
@@ -454,6 +454,7 @@ CAPSULE_HEADER_INIT_VERSION = 0x1
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
+ RAW ASL Optional |.aml
}
[Rule.Common.DXE_RUNTIME_DRIVER]
diff --git a/Platform/LeMaker/CelloBoard/CelloBoard.fdf b/Platform/LeMaker/CelloBoard/CelloBoard.fdf
index 0f412ba90e54..45fc850c36cb 100644
--- a/Platform/LeMaker/CelloBoard/CelloBoard.fdf
+++ b/Platform/LeMaker/CelloBoard/CelloBoard.fdf
@@ -365,6 +365,7 @@ READ_LOCK_STATUS = TRUE
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
+ RAW ASL Optional |.aml
}
[Rule.Common.DXE_RUNTIME_DRIVER]
diff --git a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf
index 2800d5d1f536..fec3acdd767c 100644
--- a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf
+++ b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf
@@ -367,6 +367,7 @@ READ_LOCK_STATUS = TRUE
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
+ RAW ASL Optional |.aml
}
[Rule.Common.DXE_RUNTIME_DRIVER]
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
index 3c484c43ac41..245724aa8ea2 100644
--- a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
@@ -28,6 +28,7 @@
[Sources]
AcpiPlatform.c
+ SsdtB1.asl
[Packages]
ArmPkg/ArmPkg.dec
@@ -39,12 +40,18 @@
[LibraryClasses]
AmdStyxAcpiLib
DebugLib
+ DxeServicesLib
+ MemoryAllocationLib
PcdLib
UefiBootServicesTableLib
UefiDriverEntryPoint
[Pcd]
gAmdStyxTokenSpaceGuid.PcdEnableSmmus
+ gAmdStyxTokenSpaceGuid.PcdSocCpuId
+
+[FixedPcd]
+ gAmdStyxTokenSpaceGuid.PcdSata1PortCount
[Protocols]
gEfiAcpiTableProtocolGuid ## ALWAYS_CONSUMED
diff --git a/Silicon/AMD/Styx/AcpiTables/Dsdt.c b/Silicon/AMD/Styx/AcpiTables/Dsdt.c
index 360a446f7631..dd432ce03ad1 100644
--- a/Silicon/AMD/Styx/AcpiTables/Dsdt.c
+++ b/Silicon/AMD/Styx/AcpiTables/Dsdt.c
@@ -130,41 +130,12 @@ OverrideMacAddr (
}
}
-VOID
-OverrideStatus (
- IN UINT8 *DSD_Data,
- IN BOOLEAN Enable
- )
-{
- if (Enable) {
- // AML encoding: ReturnOp + BytePrefix
- if (DSD_Data[1] == 0xA4 && DSD_Data[2] == 0x0A) {
- DSD_Data[3] = 0x0F;
- }
- } else {
- // AML encoding: ReturnOp
- if (DSD_Data[1] == 0xA4) {
- // AML encoding: BytePrefix?
- if (DSD_Data[2] == 0x0A) {
- DSD_Data[3] = 0x00;
- } else {
- DSD_Data[2] = 0x00;
- }
- }
- }
-}
-
EFI_ACPI_DESCRIPTION_HEADER *
DsdtHeader (
VOID
)
{
AML_OFFSET_TABLE_ENTRY *Table;
- BOOLEAN EnableOnB1;
- UINT32 CpuId = PcdGet32 (PcdSocCpuId);
-
- // Enable features on Styx-B1 or later
- EnableOnB1 = (CpuId & 0xFF0) && (CpuId & 0x00F);
Table = &DSDT_SEATTLE__OffsetTable[0];
while (Table->Pathname) {
@@ -174,16 +145,6 @@ DsdtHeader (
else if (AsciiStrCmp(Table->Pathname, "_SB_.ETH1._DSD") == 0) {
OverrideMacAddr ((UINT8 *)&AmlCode[Table->Offset], PcdGet64 (PcdEthMacB));
}
- else if (AsciiStrCmp(Table->Pathname, "_SB_.AHC1._STA") == 0) {
- OverrideStatus ((UINT8 *)&AmlCode[Table->Offset],
- EnableOnB1 && FixedPcdGet8(PcdSata1PortCount) > 0);
- }
- else if (AsciiStrCmp(Table->Pathname, "_SB_.GIO2._STA") == 0) {
- OverrideStatus ((UINT8 *)&AmlCode[Table->Offset], EnableOnB1);
- }
- else if (AsciiStrCmp(Table->Pathname, "_SB_.GIO3._STA") == 0) {
- OverrideStatus ((UINT8 *)&AmlCode[Table->Offset], EnableOnB1);
- }
++Table;
}
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
index 901eac105932..0d0033b4d6c6 100644
--- a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
@@ -24,13 +24,57 @@
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
+#include <Library/DxeServicesLib.h>
+#include <Library/MemoryAllocationLib.h>
#include <Library/PcdLib.h>
#include <Library/UefiBootServicesTableLib.h>
+#include <IndustryStandard/Acpi61.h>
+
+#include <SocVersion.h>
+
#define MAX_ACPI_TABLES 16
EFI_ACPI_DESCRIPTION_HEADER *AcpiTableList[MAX_ACPI_TABLES];
+STATIC EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol;
+
+STATIC
+VOID
+InstallSystemDescriptionTables (
+ VOID
+ )
+{
+ EFI_ACPI_DESCRIPTION_HEADER *Table;
+ EFI_STATUS Status;
+ UINT32 CpuId;
+ UINTN Index;
+ UINTN TableSize;
+ UINTN TableHandle;
+
+ Status = EFI_SUCCESS;
+ for (Index = 0; !EFI_ERROR (Status); Index++) {
+ Status = GetSectionFromFv (&gEfiCallerIdGuid, EFI_SECTION_RAW, Index,
+ (VOID **) &Table, &TableSize);
+ if (EFI_ERROR (Status)) {
+ break;
+ }
+
+ 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;
+ }
+ break;
+ }
+
+ Status = mAcpiTableProtocol->InstallAcpiTable (mAcpiTableProtocol, Table,
+ TableSize, &TableHandle);
+ ASSERT_EFI_ERROR (Status);
+ FreePool (Table);
+ }
+}
/**
Entrypoint of Acpi Platform driver.
@@ -51,7 +95,6 @@ AcpiPlatformEntryPoint (
)
{
EFI_STATUS Status;
- EFI_ACPI_TABLE_PROTOCOL *AcpiTable;
UINTN TableHandle;
UINTN TableIndex;
@@ -77,7 +120,8 @@ AcpiPlatformEntryPoint (
//
// Find the AcpiTable protocol
//
- Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID**)&AcpiTable);
+ 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);
@@ -96,12 +140,12 @@ AcpiPlatformEntryPoint (
AcpiTableList[TableIndex]->Revision,
AcpiTableList[TableIndex]->Length));
- Status = AcpiTable->InstallAcpiTable (
- AcpiTable,
- AcpiTableList[TableIndex],
- (AcpiTableList[TableIndex])->Length,
- &TableHandle
- );
+ 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);
@@ -110,6 +154,8 @@ AcpiPlatformEntryPoint (
ASSERT( TableIndex < MAX_ACPI_TABLES );
}
+ InstallSystemDescriptionTables ();
+
return EFI_SUCCESS;
}
diff --git a/Silicon/AMD/Styx/AcpiTables/Dsdt.asl b/Silicon/AMD/Styx/AcpiTables/Dsdt.asl
index 4741bb487cc7..e9991644e6a0 100644
--- a/Silicon/AMD/Styx/AcpiTables/Dsdt.asl
+++ b/Silicon/AMD/Styx/AcpiTables/Dsdt.asl
@@ -105,35 +105,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "AMDINC", "SEATTLE ", 3)
})
}
- Device (AHC1)
- {
- Name (_HID, "AMDI0600") // _HID: Hardware ID
- Name (_UID, 0x01) // _UID: Unique ID
- Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute
- Name (_CLS, Package (0x03) // _CLS: Class Code
- {
- 0x01,
- 0x06,
- 0x01
- })
- Method (_STA)
- {
- Return (0x0F)
- }
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
- {
- Memory32Fixed (ReadWrite,
- 0xE0D00000, // Address Base (MMIO)
- 0x00010000, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE000007C, // Address Base (SGPIO)
- 0x00000001, // Address Length
- )
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000182, }
- })
- }
-
#if DO_XGBE
Device (ETH0)
{
@@ -344,44 +315,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "AMDINC", "SEATTLE ", 3)
})
}
- Device (GIO2)
- {
- Name (_HID, "AMDI0400") // _HID: Hardware ID
- Name (_CID, "ARMH0061") // _CID: Compatible ID
- Name (_UID, 0x02) // _UID: Unique ID
- Method (_STA)
- {
- Return (0x0F)
- }
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
- {
- Memory32Fixed (ReadWrite,
- 0xE0020000, // Address Base
- 0x00001000, // Address Length
- )
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x0000018E, }
- })
- }
-
- Device (GIO3)
- {
- Name (_HID, "AMDI0400") // _HID: Hardware ID
- Name (_CID, "ARMH0061") // _CID: Compatible ID
- Name (_UID, 0x03) // _UID: Unique ID
- Method (_STA)
- {
- Return (0x0F)
- }
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
- {
- Memory32Fixed (ReadWrite,
- 0xE0030000, // Address Base
- 0x00001000, // Address Length
- )
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x0000018D, }
- })
- }
-
Device (I2C0)
{
Name (_HID, "AMDI0510") // _HID: Hardware ID
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl
new file mode 100644
index 000000000000..78aa220a0457
--- /dev/null
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl
@@ -0,0 +1,86 @@
+/** @file
+
+ SSDT for peripherals that are only enabled on B1 silicon
+
+ Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2014 - 2016, AMD Inc. All rights reserved.<BR>
+ Copyright (c) 2018, Linaro, Ltd. 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.
+
+**/
+
+DefinitionBlock ("SsdtB1.aml", "SSDT", 2, "AMDINC", "StyxB1 ", 3)
+{
+ Scope (_SB)
+ {
+ Device (AHC1)
+ {
+ Name (_HID, "AMDI0600") // _HID: Hardware ID
+ Name (_UID, 0x01) // _UID: Unique ID
+ Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute
+ Name (_CLS, Package (0x03) // _CLS: Class Code
+ {
+ 0x01,
+ 0x06,
+ 0x01
+ })
+ Method (_STA)
+ {
+ If (LEqual (FixedPcdGet8 (PcdSata1PortCount), 0)) {
+ Return (0x0)
+ }
+ Return (0xF)
+ }
+ Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
+ {
+ Memory32Fixed (ReadWrite,
+ 0xE0D00000, // Address Base (MMIO)
+ 0x00010000, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE000007C, // Address Base (SGPIO)
+ 0x00000001, // Address Length
+ )
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000182, }
+ })
+ }
+
+ Device (GIO2)
+ {
+ Name (_HID, "AMDI0400") // _HID: Hardware ID
+ Name (_CID, "ARMH0061") // _CID: Compatible ID
+ Name (_UID, 0x02) // _UID: Unique ID
+
+ Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
+ {
+ Memory32Fixed (ReadWrite,
+ 0xE0020000, // Address Base
+ 0x00001000, // Address Length
+ )
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x0000018E, }
+ })
+ }
+
+ Device (GIO3)
+ {
+ Name (_HID, "AMDI0400") // _HID: Hardware ID
+ Name (_CID, "ARMH0061") // _CID: Compatible ID
+ Name (_UID, 0x03) // _UID: Unique ID
+ Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
+ {
+ Memory32Fixed (ReadWrite,
+ 0xE0030000, // Address Base
+ 0x00001000, // Address Length
+ )
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x0000018D, }
+ })
+ }
+ }
+}
--
2.19.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH edk2-platforms 3/6] Silicon/AMD/Styx: move XGBE declarations to separate SSDT table
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 1/6] Silicon/AMD/Styx: move SOC version macros to common header Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 2/6] Silicon/AMD/Styx: move B1 revision peripherals to separate SSDT table Ard Biesheuvel
@ 2018-12-05 18:50 ` Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 4/6] Silicon/AMD/Styx: emit DSDT as aml directly Ard Biesheuvel
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-05 18:50 UTC (permalink / raw)
To: edk2-devel; +Cc: leif.lindholm, alan, graeme.gregory, Ard Biesheuvel
Move the XGBE out of the DSDT, and along with it the logic that patches
the correct MAC address into the device nodes. However, this time we
patch the SSDT binary directly rather than relying on intermediate output
of an outdated version of the iasl compiler.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Silicon/AMD/Styx/AcpiTables/AcpiTables.inf | 2 -
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf | 5 +
Silicon/AMD/Styx/AcpiTables/Dsdt.c | 127 ------------------
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 74 +++++++++++
Silicon/AMD/Styx/AcpiTables/Dsdt.asl | 113 ----------------
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl | 135 ++++++++++++++++++++
6 files changed, 214 insertions(+), 242 deletions(-)
diff --git a/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf b/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
index 4ae64ac22665..692717950f40 100644
--- a/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
+++ b/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
@@ -58,8 +58,6 @@
[Pcd]
gAmdStyxTokenSpaceGuid.PcdSocCoreCount
gAmdStyxTokenSpaceGuid.PcdSocCpuId
- gAmdStyxTokenSpaceGuid.PcdEthMacA
- gAmdStyxTokenSpaceGuid.PcdEthMacB
[FixedPcd]
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
index 245724aa8ea2..cc2320e4262d 100644
--- a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
@@ -29,6 +29,7 @@
[Sources]
AcpiPlatform.c
SsdtB1.asl
+ SsdtXgbe.asl
[Packages]
ArmPkg/ArmPkg.dec
@@ -39,6 +40,8 @@
[LibraryClasses]
AmdStyxAcpiLib
+ BaseLib
+ BaseMemoryLib
DebugLib
DxeServicesLib
MemoryAllocationLib
@@ -47,6 +50,8 @@
UefiDriverEntryPoint
[Pcd]
+ gAmdStyxTokenSpaceGuid.PcdEthMacA
+ gAmdStyxTokenSpaceGuid.PcdEthMacB
gAmdStyxTokenSpaceGuid.PcdEnableSmmus
gAmdStyxTokenSpaceGuid.PcdSocCpuId
diff --git a/Silicon/AMD/Styx/AcpiTables/Dsdt.c b/Silicon/AMD/Styx/AcpiTables/Dsdt.c
index dd432ce03ad1..25e654acabbc 100644
--- a/Silicon/AMD/Styx/AcpiTables/Dsdt.c
+++ b/Silicon/AMD/Styx/AcpiTables/Dsdt.c
@@ -15,139 +15,12 @@
**/
#include <AmdStyxAcpiLib.h>
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-#include <Library/PcdLib.h>
-
#include <Dsdt.hex>
-#include <Dsdt.offset.h>
-
-
-UINTN
-ShiftLeftByteToUlong (
- IN UINT8 Byte,
- IN UINTN Shift
- )
-{
- UINTN Data;
-
- Data = (UINTN)Byte;
- Data <<= Shift;
- return Data;
-}
-
-UINTN
-AmlGetPkgLength (
- IN UINT8 *Buffer,
- OUT UINTN *PkgLength
- )
-{
- UINTN Bytes, Length;
-
- Bytes = (UINTN)((Buffer[0] >> 6) & 0x3) + 1;
- switch (Bytes) {
- case 1:
- Length = (UINTN)Buffer[0];
- break;
-
- case 2:
- Length = ShiftLeftByteToUlong(Buffer[1], 4) +
- (UINTN)(Buffer[0] & 0x0F);
- break;
-
- case 3:
- Length = ShiftLeftByteToUlong(Buffer[2], 12) +
- ShiftLeftByteToUlong(Buffer[1], 4) +
- (UINTN)(Buffer[0] & 0x0F);
- break;
-
- default: /* 4 bytes */
- Length = ShiftLeftByteToUlong(Buffer[3], 20) +
- ShiftLeftByteToUlong(Buffer[2], 12) +
- ShiftLeftByteToUlong(Buffer[1], 4) +
- (UINTN)(Buffer[0] & 0x0F);
- break;
- }
-
- *PkgLength = Length;
- return Bytes;
-}
-
-UINT8 *
-AmlSearchStringPackage (
- IN UINT8 *Buffer,
- IN UINTN Length,
- IN CHAR8 *String
- )
-{
- UINTN StrLength;
-
- StrLength = AsciiStrLen (String) + 1;
- if (Length > StrLength ) {
- Length -= StrLength;
- while (AsciiStrCmp((CHAR8 *)Buffer, String) != 0 && Length) {
- --Length;
- ++Buffer;
- }
- if (Length) {
- return &Buffer[StrLength];
- }
- }
- return NULL;
-}
-
-VOID
-OverrideMacAddr (
- IN UINT8 *DSD_Data,
- IN UINT64 MacAddr
- )
-{
- UINT8 *MacAddrPkg;
- UINTN Bytes, Length, Index = 0;
-
- // AML encoding: PackageOp
- if (DSD_Data[0] == 0x12) {
- // AML encoding: PkgLength
- Bytes = AmlGetPkgLength (&DSD_Data[1], &Length);
-
- // Search for "mac-address" property
- MacAddrPkg = AmlSearchStringPackage (&DSD_Data[Bytes + 1],
- Length - Bytes,
- "mac-address");
- if (MacAddrPkg &&
- MacAddrPkg[0] == 0x12 && // PackageOp
- MacAddrPkg[1] == 0x0E && // PkgLength
- MacAddrPkg[2] == 0x06) { // NumElements (element must have a BytePrefix)
-
- MacAddrPkg += 3;
- do {
- MacAddrPkg[0] = 0x0A; // BytePrefix
- MacAddrPkg[1] = (UINT8)(MacAddr & 0xFF);
- MacAddrPkg += 2;
- MacAddr >>= 8;
- } while (++Index < 6);
- }
- }
-}
EFI_ACPI_DESCRIPTION_HEADER *
DsdtHeader (
VOID
)
{
- AML_OFFSET_TABLE_ENTRY *Table;
-
- Table = &DSDT_SEATTLE__OffsetTable[0];
- while (Table->Pathname) {
- if (AsciiStrCmp(Table->Pathname, "_SB_.ETH0._DSD") == 0) {
- OverrideMacAddr ((UINT8 *)&AmlCode[Table->Offset], PcdGet64 (PcdEthMacA));
- }
- else if (AsciiStrCmp(Table->Pathname, "_SB_.ETH1._DSD") == 0) {
- OverrideMacAddr ((UINT8 *)&AmlCode[Table->Offset], PcdGet64 (PcdEthMacB));
- }
-
- ++Table;
- }
-
return (EFI_ACPI_DESCRIPTION_HEADER *) &AmlCode[0];
}
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
index 0d0033b4d6c6..460fb4c480c3 100644
--- a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
@@ -22,6 +22,7 @@
#include <AmdStyxAcpiLib.h>
#include <Protocol/AcpiTable.h>
+#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/DxeServicesLib.h>
@@ -39,6 +40,57 @@ EFI_ACPI_DESCRIPTION_HEADER *AcpiTableList[MAX_ACPI_TABLES];
STATIC EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol;
+#if DO_XGBE
+
+STATIC CONST UINT8 mDefaultMacPackageA[] = {
+ 0x12, 0xe, 0x6, 0xa, 0x2, 0xa, 0xa1, 0xa, 0xa2, 0xa, 0xa3, 0xa, 0xa4, 0xa, 0xa5
+};
+
+STATIC CONST UINT8 mDefaultMacPackageB[] = {
+ 0x12, 0xe, 0x6, 0xa, 0x2, 0xa, 0xb1, 0xa, 0xb2, 0xa, 0xb3, 0xa, 0xb4, 0xa, 0xb5
+};
+
+#define PACKAGE_MAC_OFFSET 4
+#define PACKAGE_MAC_INCR 2
+
+STATIC
+VOID
+SetPackageAddress (
+ UINT8 *Package,
+ UINT64 MacAddress,
+ UINTN Size
+ )
+{
+ UINTN Index;
+
+ for (Index = PACKAGE_MAC_OFFSET; Index < Size; Index += PACKAGE_MAC_INCR) {
+ Package[Index] = (UINT8)MacAddress;
+ MacAddress >>= 8;
+ }
+}
+
+STATIC
+VOID
+PatchAmlPackage (
+ CONST UINT8 *Pattern,
+ CONST UINT8 *Replacement,
+ UINTN PatternLength,
+ UINT8 *SsdtTable,
+ UINTN TableSize
+ )
+{
+ UINTN Offset;
+
+ for (Offset = 0; Offset < (TableSize - PatternLength); Offset++) {
+ if (CompareMem (SsdtTable + Offset, Pattern, PatternLength) == 0) {
+ CopyMem (SsdtTable + Offset, Replacement, PatternLength);
+ break;
+ }
+ }
+}
+
+#endif
+
STATIC
VOID
InstallSystemDescriptionTables (
@@ -51,6 +103,9 @@ InstallSystemDescriptionTables (
UINTN Index;
UINTN TableSize;
UINTN TableHandle;
+#if DO_XGBE
+ UINT8 MacPackage[sizeof(mDefaultMacPackageA)];
+#endif
Status = EFI_SUCCESS;
for (Index = 0; !EFI_ERROR (Status); Index++) {
@@ -67,6 +122,25 @@ InstallSystemDescriptionTables (
continue;
}
break;
+
+ case SIGNATURE_64 ('S', 't', 'y', 'x', 'X', 'g', 'b', 'e'):
+#if DO_XGBE
+ //
+ // Patch the SSDT binary with the correct MAC addresses
+ //
+ CopyMem (MacPackage, mDefaultMacPackageA, sizeof (MacPackage));
+
+ SetPackageAddress (MacPackage, PcdGet64 (PcdEthMacA), sizeof (MacPackage));
+ PatchAmlPackage (mDefaultMacPackageA, MacPackage, sizeof (MacPackage),
+ (UINT8 *)Table, TableSize);
+
+ SetPackageAddress (MacPackage, PcdGet64 (PcdEthMacB), sizeof (MacPackage));
+ PatchAmlPackage (mDefaultMacPackageB, MacPackage, sizeof (MacPackage),
+ (UINT8 *)Table, TableSize);
+
+ break;
+#endif
+ continue;
}
Status = mAcpiTableProtocol->InstallAcpiTable (mAcpiTableProtocol, Table,
diff --git a/Silicon/AMD/Styx/AcpiTables/Dsdt.asl b/Silicon/AMD/Styx/AcpiTables/Dsdt.asl
index e9991644e6a0..c1417e7e1cd7 100644
--- a/Silicon/AMD/Styx/AcpiTables/Dsdt.asl
+++ b/Silicon/AMD/Styx/AcpiTables/Dsdt.asl
@@ -105,119 +105,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "AMDINC", "SEATTLE ", 3)
})
}
-#if DO_XGBE
- Device (ETH0)
- {
- Name (_HID, "AMDI8001") // _HID: Hardware ID
- Name (_UID, 0x00) // _UID: Unique ID
- Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
-
- {
- Memory32Fixed (ReadWrite,
- 0xE0700000, // Address Base (XGMAC)
- 0x00010000, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE0780000, // Address Base (XPCS)
- 0x00080000, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE1240800, // Address Base (SERDES_RxTx)
- 0x00000400, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE1250000, // Address Base (SERDES_IR_1)
- 0x00000060, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE12500F8, // Address Base (SERDES_IR_2)
- 0x00000004, // Address Length
- )
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000165, } // XGMAC
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017A, } // DMA0
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017B, } // DMA1
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017C, } // DMA2
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017D, } // DMA3
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000163, } // XPCS
- })
- Name (_DSD, Package (0x02) // _DSD: Device-Specific Data
- {
- ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
- Package ()
- {
- Package (0x02) {"mac-address", Package (0x06) {0x02, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5}},
- Package (0x02) {"phy-mode", "xgmii"},
- Package (0x02) {"amd,speed-set", 0x00},
- Package (0x02) {"amd,dma-freq", 0x0EE6B280},
- Package (0x02) {"amd,ptp-freq", 0x0EE6B280},
- Package (0x02) {"amd,serdes-blwc", Package (0x03) {1, 1, 0}},
- Package (0x02) {"amd,serdes-cdr-rate", Package (0x03) {2, 2, 7}},
- Package (0x02) {"amd,serdes-pq-skew", Package (0x03) {10, 10, 18}},
- Package (0x02) {"amd,serdes-tx-amp", Package (0x03) {15, 15, 10}},
- Package (0x02) {"amd,serdes-dfe-tap-config", Package (0x03) {3, 3, 1}},
- Package (0x02) {"amd,serdes-dfe-tap-enable", Package (0x03) {0, 0, 127}},
- Package (0x02) {"amd,per-channel-interrupt", 0x01}
- }
- })
- }
-
- Device (ETH1)
- {
- Name (_HID, "AMDI8001") // _HID: Hardware ID
- Name (_UID, 0x01) // _UID: Unique ID
- Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
- {
- Memory32Fixed (ReadWrite,
- 0xE0900000, // Address Base (XGMAC)
- 0x00010000, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE0980000, // Address Base (XPCS)
- 0x00080000, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE1240C00, // Address Base (SERDES_RxTx)
- 0x00000400, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE1250080, // Address Base (SERDES_IR_1)
- 0x00000060, // Address Length
- )
- Memory32Fixed (ReadWrite,
- 0xE12500FC, // Address Base (SERDES_IR_2)
- 0x00000004, // Address Length
- )
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000164, } // XGMAC
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000175, } // DMA0
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000176, } // DMA1
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000177, } // DMA2
- Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000178, } // DMA3
- Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000162, } // XPCS
- })
- Name (_DSD, Package (0x02) // _DSD: Device-Specific Data
- {
- ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
- Package ()
- {
- Package (0x02) {"mac-address", Package (0x06) {0x02, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5}},
- Package (0x02) {"phy-mode", "xgmii"},
- Package (0x02) {"amd,speed-set", 0x00},
- Package (0x02) {"amd,dma-freq", 0x0EE6B280},
- Package (0x02) {"amd,ptp-freq", 0x0EE6B280},
- Package (0x02) {"amd,serdes-blwc", Package (0x03) {1, 1, 0}},
- Package (0x02) {"amd,serdes-cdr-rate", Package (0x03) {2, 2, 7}},
- Package (0x02) {"amd,serdes-pq-skew", Package (0x03) {10, 10, 18}},
- Package (0x02) {"amd,serdes-tx-amp", Package (0x03) {15, 15, 10}},
- Package (0x02) {"amd,serdes-dfe-tap-config", Package (0x03) {3, 3, 1}},
- Package (0x02) {"amd,serdes-dfe-tap-enable", Package (0x03) {0, 0, 127}},
- Package (0x02) {"amd,per-channel-interrupt", 0x01}
- }
- })
- }
-#endif // DO_XGBE
-
Device (SPI0)
{
Name (_HID, "AMDI0500") // _HID: Hardware ID
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl
new file mode 100644
index 000000000000..503c47365f15
--- /dev/null
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl
@@ -0,0 +1,135 @@
+/** @file
+
+ SSDT for 10GbE network controllers
+
+ Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2014 - 2016, AMD Inc. All rights reserved.<BR>
+ Copyright (c) 2018, Linaro, Ltd. 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.
+
+**/
+
+DefinitionBlock ("SsdtXgbe.aml", "SSDT", 2, "AMDINC", "StyxXgbe", 3)
+{
+ Scope (_SB)
+ {
+ Device (ETH0)
+ {
+ Name (_HID, "AMDI8001") // _HID: Hardware ID
+ Name (_UID, 0x00) // _UID: Unique ID
+ Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute
+ Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
+
+ {
+ Memory32Fixed (ReadWrite,
+ 0xE0700000, // Address Base (XGMAC)
+ 0x00010000, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE0780000, // Address Base (XPCS)
+ 0x00080000, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE1240800, // Address Base (SERDES_RxTx)
+ 0x00000400, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE1250000, // Address Base (SERDES_IR_1)
+ 0x00000060, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE12500F8, // Address Base (SERDES_IR_2)
+ 0x00000004, // Address Length
+ )
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000165, } // XGMAC
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017A, } // DMA0
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017B, } // DMA1
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017C, } // DMA2
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x0000017D, } // DMA3
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000163, } // XPCS
+ })
+ Name (_DSD, Package (0x02) // _DSD: Device-Specific Data
+ {
+ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package ()
+ {
+ Package (0x02) {"mac-address", Package (0x06) {0x02, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5}},
+ Package (0x02) {"phy-mode", "xgmii"},
+ Package (0x02) {"amd,speed-set", 0x00},
+ Package (0x02) {"amd,dma-freq", 0x0EE6B280},
+ Package (0x02) {"amd,ptp-freq", 0x0EE6B280},
+ Package (0x02) {"amd,serdes-blwc", Package (0x03) {1, 1, 0}},
+ Package (0x02) {"amd,serdes-cdr-rate", Package (0x03) {2, 2, 7}},
+ Package (0x02) {"amd,serdes-pq-skew", Package (0x03) {10, 10, 18}},
+ Package (0x02) {"amd,serdes-tx-amp", Package (0x03) {15, 15, 10}},
+ Package (0x02) {"amd,serdes-dfe-tap-config", Package (0x03) {3, 3, 1}},
+ Package (0x02) {"amd,serdes-dfe-tap-enable", Package (0x03) {0, 0, 127}},
+ Package (0x02) {"amd,per-channel-interrupt", 0x01}
+ }
+ })
+ }
+
+ Device (ETH1)
+ {
+ Name (_HID, "AMDI8001") // _HID: Hardware ID
+ Name (_UID, 0x01) // _UID: Unique ID
+ Name (_CCA, 0x01) // _CCA: Cache Coherency Attribute
+ Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
+ {
+ Memory32Fixed (ReadWrite,
+ 0xE0900000, // Address Base (XGMAC)
+ 0x00010000, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE0980000, // Address Base (XPCS)
+ 0x00080000, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE1240C00, // Address Base (SERDES_RxTx)
+ 0x00000400, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE1250080, // Address Base (SERDES_IR_1)
+ 0x00000060, // Address Length
+ )
+ Memory32Fixed (ReadWrite,
+ 0xE12500FC, // Address Base (SERDES_IR_2)
+ 0x00000004, // Address Length
+ )
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000164, } // XGMAC
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000175, } // DMA0
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000176, } // DMA1
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000177, } // DMA2
+ Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) {0x00000178, } // DMA3
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000162, } // XPCS
+ })
+ Name (_DSD, Package (0x02) // _DSD: Device-Specific Data
+ {
+ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package ()
+ {
+ Package (0x02) {"mac-address", Package (0x06) {0x02, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5}},
+ Package (0x02) {"phy-mode", "xgmii"},
+ Package (0x02) {"amd,speed-set", 0x00},
+ Package (0x02) {"amd,dma-freq", 0x0EE6B280},
+ Package (0x02) {"amd,ptp-freq", 0x0EE6B280},
+ Package (0x02) {"amd,serdes-blwc", Package (0x03) {1, 1, 0}},
+ Package (0x02) {"amd,serdes-cdr-rate", Package (0x03) {2, 2, 7}},
+ Package (0x02) {"amd,serdes-pq-skew", Package (0x03) {10, 10, 18}},
+ Package (0x02) {"amd,serdes-tx-amp", Package (0x03) {15, 15, 10}},
+ Package (0x02) {"amd,serdes-dfe-tap-config", Package (0x03) {3, 3, 1}},
+ Package (0x02) {"amd,serdes-dfe-tap-enable", Package (0x03) {0, 0, 127}},
+ Package (0x02) {"amd,per-channel-interrupt", 0x01}
+ }
+ })
+ }
+ }
+}
+
--
2.19.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH edk2-platforms 4/6] Silicon/AMD/Styx: emit DSDT as aml directly
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
` (2 preceding siblings ...)
2018-12-05 18:50 ` [PATCH edk2-platforms 3/6] Silicon/AMD/Styx: move XGBE declarations " Ard Biesheuvel
@ 2018-12-05 18:50 ` Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 5/6] Platform: add acpiview to Seattle/Styx platforms Ard Biesheuvel
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-05 18:50 UTC (permalink / raw)
To: edk2-devel; +Cc: leif.lindholm, alan, graeme.gregory, Ard Biesheuvel
Instead of emitting the DSDT by incorporating the intermediate output
of [some version of] the iasl compiler, move the DSDT source file to
the ACPI platform driver, which will install it directly. This permits
us to drop a lot of cruft related to handling of this intermediate
output.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 3 --
Platform/LeMaker/CelloBoard/CelloBoard.dsc | 4 ---
Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc | 3 --
Platform/AMD/OverdriveBoard/OverdriveBoard.fdf | 1 -
Platform/LeMaker/CelloBoard/CelloBoard.fdf | 1 -
Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf | 1 -
Silicon/AMD/Styx/AcpiTables/AcpiAml.inf | 29 --------------------
Silicon/AMD/Styx/AcpiTables/AcpiTables.inf | 1 -
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf | 1 +
Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h | 1 -
Silicon/AMD/Styx/AcpiTables/Dsdt.c | 26 ------------------
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c | 1 -
Silicon/AMD/Styx/{AcpiTables => Drivers/AcpiPlatformDxe}/Dsdt.asl | 0
13 files changed, 1 insertion(+), 71 deletions(-)
diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
index b062f671f57f..7c66af6128c5 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
@@ -272,8 +272,6 @@ DEFINE DO_CAPSULE = FALSE
GCC:*_*_AARCH64_ARCHCC_FLAGS = -DDO_XGBE=$(DO_XGBE) -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
GCC:*_*_AARCH64_PP_FLAGS = -DDO_XGBE=$(DO_XGBE) -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
- GCC:*_*_AARCH64_PLATFORM_FLAGS = -I$(BIN_DIR)/Silicon/AMD/Styx/AcpiTables/AcpiAml/OUTPUT
-
[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
@@ -683,7 +681,6 @@ DEFINE DO_CAPSULE = FALSE
NULL|EmbeddedPkg/Library/PlatformHasAcpiLib/PlatformHasAcpiLib.inf
}
- Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
diff --git a/Platform/LeMaker/CelloBoard/CelloBoard.dsc b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
index 103c2fb74114..7c22bbbfa90f 100644
--- a/Platform/LeMaker/CelloBoard/CelloBoard.dsc
+++ b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
@@ -264,8 +264,6 @@ DEFINE DO_FLASHER = FALSE
GCC:*_*_AARCH64_ARCHCC_FLAGS = -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
GCC:*_*_AARCH64_PP_FLAGS = -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
- GCC:*_*_AARCH64_PLATFORM_FLAGS = -I$(BIN_DIR)/Silicon/AMD/Styx/AcpiTables/AcpiAml/OUTPUT
-
[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
@@ -617,8 +615,6 @@ DEFINE DO_FLASHER = FALSE
<LibraryClasses>
NULL|EmbeddedPkg/Library/PlatformHasAcpiLib/PlatformHasAcpiLib.inf
}
-
- Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
#
diff --git a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
index 1927ef3ebafb..793bd5359a23 100644
--- a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
+++ b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
@@ -262,8 +262,6 @@ DEFINE DO_FLASHER = FALSE
GCC:*_*_AARCH64_ARCHCC_FLAGS = -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
GCC:*_*_AARCH64_PP_FLAGS = -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
- GCC:*_*_AARCH64_PLATFORM_FLAGS = -I$(BIN_DIR)/Silicon/AMD/Styx/AcpiTables/AcpiAml/OUTPUT
-
[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
@@ -612,7 +610,6 @@ DEFINE DO_FLASHER = FALSE
<LibraryClasses>
NULL|EmbeddedPkg/Library/PlatformHasAcpiLib/PlatformHasAcpiLib.inf
}
- Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
#
diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf b/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf
index cc082031621c..96df83e0da5a 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf
@@ -219,7 +219,6 @@ READ_LOCK_STATUS = TRUE
# ACPI Support
#
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
INF Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
diff --git a/Platform/LeMaker/CelloBoard/CelloBoard.fdf b/Platform/LeMaker/CelloBoard/CelloBoard.fdf
index 45fc850c36cb..fc977f14b5a1 100644
--- a/Platform/LeMaker/CelloBoard/CelloBoard.fdf
+++ b/Platform/LeMaker/CelloBoard/CelloBoard.fdf
@@ -204,7 +204,6 @@ READ_LOCK_STATUS = TRUE
# ACPI Support
#
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
INF Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
#
diff --git a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf
index fec3acdd767c..8fc9a979aebc 100644
--- a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf
+++ b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.fdf
@@ -217,7 +217,6 @@ READ_LOCK_STATUS = TRUE
# ACPI Support
#
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
INF Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
#
diff --git a/Silicon/AMD/Styx/AcpiTables/AcpiAml.inf b/Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
deleted file mode 100644
index 08a7aabe8256..000000000000
--- a/Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
+++ /dev/null
@@ -1,29 +0,0 @@
-#/** @file
-#
-# 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.
-#
-#**/
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = AcpiAml
- FILE_GUID = 2df2a2ee-5f34-4dea-b4b6-da724e455f33
- MODULE_TYPE = USER_DEFINED
- VERSION_STRING = 1.0
-
-[Sources]
- Dsdt.asl
-
-[Packages]
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
- Silicon/AMD/Styx/AmdStyx.dec
-
diff --git a/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf b/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
index 692717950f40..0bc5b1e98964 100644
--- a/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
+++ b/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
@@ -36,7 +36,6 @@
Madt.c
Mcfg.c
Csrt.c
- Dsdt.c
Iort.c
Pptt.c
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
index cc2320e4262d..92f185fa4bee 100644
--- a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
@@ -28,6 +28,7 @@
[Sources]
AcpiPlatform.c
+ Dsdt.asl
SsdtB1.asl
SsdtXgbe.asl
diff --git a/Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h b/Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h
index 58e160b6d727..0dfd7635e897 100644
--- a/Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h
+++ b/Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h
@@ -22,7 +22,6 @@ 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 *DsdtHeader (void);
EFI_ACPI_DESCRIPTION_HEADER *McfgHeader (void);
EFI_ACPI_DESCRIPTION_HEADER *Dbg2Header (void);
EFI_ACPI_DESCRIPTION_HEADER *SpcrHeader (void);
diff --git a/Silicon/AMD/Styx/AcpiTables/Dsdt.c b/Silicon/AMD/Styx/AcpiTables/Dsdt.c
deleted file mode 100644
index 25e654acabbc..000000000000
--- a/Silicon/AMD/Styx/AcpiTables/Dsdt.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/** @file
-
- C language wrapper to build DSDT generated data.
-
- 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.
-
-**/
-
-#include <AmdStyxAcpiLib.h>
-#include <Dsdt.hex>
-
-EFI_ACPI_DESCRIPTION_HEADER *
-DsdtHeader (
- VOID
- )
-{
- return (EFI_ACPI_DESCRIPTION_HEADER *) &AmlCode[0];
-}
diff --git a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
index 460fb4c480c3..a00bd3bd2215 100644
--- a/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
+++ b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatform.c
@@ -176,7 +176,6 @@ AcpiPlatformEntryPoint (
TableIndex = 0;
AcpiTableList[TableIndex++] = FadtTable();
- AcpiTableList[TableIndex++] = DsdtHeader();
AcpiTableList[TableIndex++] = MadtHeader();
AcpiTableList[TableIndex++] = GtdtHeader();
AcpiTableList[TableIndex++] = Dbg2Header();
diff --git a/Silicon/AMD/Styx/AcpiTables/Dsdt.asl b/Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Dsdt.asl
similarity index 100%
rename from Silicon/AMD/Styx/AcpiTables/Dsdt.asl
rename to Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Dsdt.asl
--
2.19.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH edk2-platforms 5/6] Platform: add acpiview to Seattle/Styx platforms
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
` (3 preceding siblings ...)
2018-12-05 18:50 ` [PATCH edk2-platforms 4/6] Silicon/AMD/Styx: emit DSDT as aml directly Ard Biesheuvel
@ 2018-12-05 18:50 ` Ard Biesheuvel
2018-12-05 21:39 ` Carsey, Jaben
2018-12-05 18:50 ` [PATCH edk2-platforms 6/6] Platform/AMD/OverdriveBoard: use default resolution for GOP Ard Biesheuvel
2018-12-10 21:58 ` [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Leif Lindholm
6 siblings, 1 reply; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-05 18:50 UTC (permalink / raw)
To: edk2-devel; +Cc: leif.lindholm, alan, graeme.gregory, Ard Biesheuvel
Enable the 'acpiview' UEFI shell command so we can inspect the ACPI
tables at boot time.
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 +
3 files changed, 3 insertions(+)
diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
index 7c66af6128c5..ed67c986b7db 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
@@ -731,6 +731,7 @@ DEFINE DO_CAPSULE = FALSE
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
+ NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
diff --git a/Platform/LeMaker/CelloBoard/CelloBoard.dsc b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
index 7c22bbbfa90f..057bf0eb67de 100644
--- a/Platform/LeMaker/CelloBoard/CelloBoard.dsc
+++ b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
@@ -663,6 +663,7 @@ DEFINE DO_FLASHER = FALSE
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
+ NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
diff --git a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
index 793bd5359a23..985ba2253a90 100644
--- a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
+++ b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
@@ -658,6 +658,7 @@ DEFINE DO_FLASHER = FALSE
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
+ NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
--
2.19.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH edk2-platforms 6/6] Platform/AMD/OverdriveBoard: use default resolution for GOP
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
` (4 preceding siblings ...)
2018-12-05 18:50 ` [PATCH edk2-platforms 5/6] Platform: add acpiview to Seattle/Styx platforms Ard Biesheuvel
@ 2018-12-05 18:50 ` Ard Biesheuvel
2018-12-10 21:58 ` [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Leif Lindholm
6 siblings, 0 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-05 18:50 UTC (permalink / raw)
To: edk2-devel; +Cc: leif.lindholm, alan, graeme.gregory, Ard Biesheuvel
Set the GOP resolution to 0x0 so that the resolution will be
chosen by the driver, usually based on the capabilities of
the connected display.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
index ed67c986b7db..05433d4472e8 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
@@ -485,6 +485,9 @@ DEFINE DO_CAPSULE = FALSE
gAmdModulePkgTokenSpaceGuid.PcdPciePort2Present|1
gAmdModulePkgTokenSpaceGuid.PcdPcieHardcodeEnumeration|TRUE
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|0
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|0
+
[PcdsDynamicDefault.common]
gAmdStyxTokenSpaceGuid.PcdSocCoreCount|$(NUM_CORES)
gArmTokenSpaceGuid.PcdSystemMemorySize|0x0400000000
--
2.19.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH edk2-platforms 5/6] Platform: add acpiview to Seattle/Styx platforms
2018-12-05 18:50 ` [PATCH edk2-platforms 5/6] Platform: add acpiview to Seattle/Styx platforms Ard Biesheuvel
@ 2018-12-05 21:39 ` Carsey, Jaben
0 siblings, 0 replies; 10+ messages in thread
From: Carsey, Jaben @ 2018-12-05 21:39 UTC (permalink / raw)
To: Ard Biesheuvel, edk2-devel@lists.01.org; +Cc: alan@softiron.co.uk
You didn't CC anyone, but that is the right syntax for adding the shell command.
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> Ard Biesheuvel
> Sent: Wednesday, December 05, 2018 10:50 AM
> To: edk2-devel@lists.01.org
> Cc: alan@softiron.co.uk
> Subject: [edk2] [PATCH edk2-platforms 5/6] Platform: add acpiview to
> Seattle/Styx platforms
> Importance: High
>
> Enable the 'acpiview' UEFI shell command so we can inspect the ACPI
> tables at boot time.
>
> 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 +
> 3 files changed, 3 insertions(+)
>
> diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
> b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
> index 7c66af6128c5..ed67c986b7db 100644
> --- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
> +++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
> @@ -731,6 +731,7 @@ DEFINE DO_CAPSULE = FALSE
>
> NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com
> mandsLib.inf
>
> NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1Com
> mandsLib.inf
>
> NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1
> CommandsLib.inf
> +
> NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCo
> mmandLib.inf
>
> HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingL
> ib.inf
> PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
>
> BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfg
> CommandLib.inf
> diff --git a/Platform/LeMaker/CelloBoard/CelloBoard.dsc
> b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
> index 7c22bbbfa90f..057bf0eb67de 100644
> --- a/Platform/LeMaker/CelloBoard/CelloBoard.dsc
> +++ b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
> @@ -663,6 +663,7 @@ DEFINE DO_FLASHER = FALSE
>
> NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com
> mandsLib.inf
>
> NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1Com
> mandsLib.inf
>
> NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1
> CommandsLib.inf
> +
> NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCo
> mmandLib.inf
>
> HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingL
> ib.inf
> PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
>
> BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfg
> CommandLib.inf
> diff --git a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
> b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
> index 793bd5359a23..985ba2253a90 100644
> --- a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
> +++ b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
> @@ -658,6 +658,7 @@ DEFINE DO_FLASHER = FALSE
>
> NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com
> mandsLib.inf
>
> NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1Com
> mandsLib.inf
>
> NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1
> CommandsLib.inf
> +
> NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCo
> mmandLib.inf
>
> HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingL
> ib.inf
> PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
>
> BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfg
> CommandLib.inf
> --
> 2.19.2
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
` (5 preceding siblings ...)
2018-12-05 18:50 ` [PATCH edk2-platforms 6/6] Platform/AMD/OverdriveBoard: use default resolution for GOP Ard Biesheuvel
@ 2018-12-10 21:58 ` Leif Lindholm
2018-12-11 8:01 ` Ard Biesheuvel
6 siblings, 1 reply; 10+ messages in thread
From: Leif Lindholm @ 2018-12-10 21:58 UTC (permalink / raw)
To: Ard Biesheuvel; +Cc: edk2-devel, alan, graeme.gregory
On Wed, Dec 05, 2018 at 07:50:14PM +0100, Ard Biesheuvel wrote:
> Primarily, this series gets rid of the hacked up way this platform
> patches the DSDT at build time, by #include'ing intermediate output
> of the iasl compiler [or some version of it, at least]
>
> While at it, apply some other cleanups/improvements.
All but the last one seem like they're following some form of common
thread. But anyway:
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
> Ard Biesheuvel (6):
> Silicon/AMD/Styx: move SOC version macros to common header
> Silicon/AMD/Styx: move B1 revision peripherals to separate SSDT table
> Silicon/AMD/Styx: move XGBE declarations to separate SSDT table
> Silicon/AMD/Styx: emit DSDT as aml directly
> Platform: add acpiview to Seattle/Styx platforms
> Platform/AMD/OverdriveBoard: use default resolution for GOP
>
> .../AMD/OverdriveBoard/OverdriveBoard.dsc | 7 +-
> Platform/LeMaker/CelloBoard/CelloBoard.dsc | 5 +-
> .../Overdrive1000Board/Overdrive1000Board.dsc | 4 +-
> .../AMD/OverdriveBoard/OverdriveBoard.fdf | 2 +-
> Platform/LeMaker/CelloBoard/CelloBoard.fdf | 2 +-
> .../Overdrive1000Board/Overdrive1000Board.fdf | 2 +-
> Silicon/AMD/Styx/AcpiTables/AcpiAml.inf | 29 ---
> Silicon/AMD/Styx/AcpiTables/AcpiTables.inf | 3 -
> .../AcpiPlatformDxe/AcpiPlatformDxe.inf | 13 ++
> Silicon/AMD/Styx/Common/AmdStyxAcpiLib.h | 1 -
> Silicon/AMD/Styx/Common/SocVersion.h | 19 ++
> Silicon/AMD/Styx/AcpiTables/Dsdt.c | 192 ------------------
> Silicon/AMD/Styx/AcpiTables/Iort.c | 6 +-
> .../Drivers/AcpiPlatformDxe/AcpiPlatform.c | 137 ++++++++++++-
> .../StyxSataPlatformDxe/InitController.c | 7 +-
> .../StyxDtbLoaderLib/StyxDtbLoaderLib.c | 7 +-
> .../AcpiPlatformDxe}/Dsdt.asl | 180 ----------------
> .../Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl | 86 ++++++++
> .../Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl | 135 ++++++++++++
> 19 files changed, 395 insertions(+), 442 deletions(-)
> delete mode 100644 Silicon/AMD/Styx/AcpiTables/AcpiAml.inf
> create mode 100644 Silicon/AMD/Styx/Common/SocVersion.h
> delete mode 100644 Silicon/AMD/Styx/AcpiTables/Dsdt.c
> rename Silicon/AMD/Styx/{AcpiTables => Drivers/AcpiPlatformDxe}/Dsdt.asl (72%)
> create mode 100644 Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtB1.asl
> create mode 100644 Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/SsdtXgbe.asl
>
> --
> 2.19.2
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more
2018-12-10 21:58 ` [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Leif Lindholm
@ 2018-12-11 8:01 ` Ard Biesheuvel
0 siblings, 0 replies; 10+ messages in thread
From: Ard Biesheuvel @ 2018-12-11 8:01 UTC (permalink / raw)
To: Leif Lindholm; +Cc: edk2-devel@lists.01.org, Alan Ott, Graeme Gregory
On Mon, 10 Dec 2018 at 22:58, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>
> On Wed, Dec 05, 2018 at 07:50:14PM +0100, Ard Biesheuvel wrote:
> > Primarily, this series gets rid of the hacked up way this platform
> > patches the DSDT at build time, by #include'ing intermediate output
> > of the iasl compiler [or some version of it, at least]
> >
> > While at it, apply some other cleanups/improvements.
>
> All but the last one seem like they're following some form of common
> thread. But anyway:
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>
Thanks
Pushed as 0eaa50231c02..217713e2cfc9
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-12-11 8:01 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-05 18:50 [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 1/6] Silicon/AMD/Styx: move SOC version macros to common header Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 2/6] Silicon/AMD/Styx: move B1 revision peripherals to separate SSDT table Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 3/6] Silicon/AMD/Styx: move XGBE declarations " Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 4/6] Silicon/AMD/Styx: emit DSDT as aml directly Ard Biesheuvel
2018-12-05 18:50 ` [PATCH edk2-platforms 5/6] Platform: add acpiview to Seattle/Styx platforms Ard Biesheuvel
2018-12-05 21:39 ` Carsey, Jaben
2018-12-05 18:50 ` [PATCH edk2-platforms 6/6] Platform/AMD/OverdriveBoard: use default resolution for GOP Ard Biesheuvel
2018-12-10 21:58 ` [PATCH edk2-platforms 0/6] Styx: fixes for IASL abuse and more Leif Lindholm
2018-12-11 8:01 ` Ard Biesheuvel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox