From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: edk2-devel@lists.01.org
Cc: leif.lindholm@linaro.org, alan@softiron.co.uk,
neko@bakuhatsu.net, Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: [PATCH edk2-platforms 1/5] Silicon/AMD/Styx: make ARM-TF and PSCI dependencies unconditional
Date: Tue, 15 May 2018 19:37:32 +0200 [thread overview]
Message-ID: <20180515173736.29639-2-ard.biesheuvel@linaro.org> (raw)
In-Reply-To: <20180515173736.29639-1-ard.biesheuvel@linaro.org>
The Styx platform theoretically supports running in an environment
where no ARM Trusted Firmware is running in EL3 and PSCI is not
implemented. This is not a configuration that we aim to support,
and so let's remove the code that implements this, especially because
it is essentially dead code and unmaintained.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 7 --
Platform/LeMaker/CelloBoard/CelloBoard.dsc | 1 -
Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc | 7 --
Silicon/AMD/Styx/AcpiTables/AcpiTables.inf | 2 -
Silicon/AMD/Styx/AcpiTables/Fadt.c | 5 +-
Silicon/AMD/Styx/AmdStyx.dec | 5 --
Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.c | 70 --------------------
Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf | 6 --
Silicon/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf | 1 -
Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.c | 58 ++++++++--------
Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.inf | 1 -
Silicon/AMD/Styx/Library/ResetSystemLib/ResetSystemLib.inf | 3 -
Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.inf | 2 -
13 files changed, 29 insertions(+), 139 deletions(-)
diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
index 348828e18d44..86061cd4606f 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
@@ -19,7 +19,6 @@ [Defines]
DEFINE DO_XGBE = 1
DEFINE NUM_CORES = 8
-DEFINE DO_PSCI = 1
DEFINE DO_ISCP = 1
DEFINE DO_KCS = 1
DEFINE DO_FLASHER = FALSE
@@ -457,12 +456,6 @@ [PcdsFixedAtBuild.common]
#
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
-!if $(DO_PSCI)
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|TRUE
-!else
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|FALSE
-!endif
-
!if $(DO_ISCP)
gAmdStyxTokenSpaceGuid.PcdIscpSupport|TRUE
!else
diff --git a/Platform/LeMaker/CelloBoard/CelloBoard.dsc b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
index 007c36412b93..80b096ba5587 100644
--- a/Platform/LeMaker/CelloBoard/CelloBoard.dsc
+++ b/Platform/LeMaker/CelloBoard/CelloBoard.dsc
@@ -431,7 +431,6 @@ [PcdsFixedAtBuild.common]
#
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|TRUE
gAmdStyxTokenSpaceGuid.PcdIscpSupport|TRUE
# SMBIOS 3.0 only
diff --git a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
index 3f4c7c8a3eef..72eb943a8bfd 100644
--- a/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
+++ b/Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc
@@ -18,7 +18,6 @@
[Defines]
DEFINE NUM_CORES = 4
-DEFINE DO_PSCI = 1
DEFINE DO_ISCP = 1
DEFINE DO_KCS = 1
DEFINE DO_FLASHER = FALSE
@@ -428,12 +427,6 @@ [PcdsFixedAtBuild.common]
## ACPI (no tables < 4GB)
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20
-!if $(DO_PSCI)
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|TRUE
-!else
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|FALSE
-!endif
-
!if $(DO_ISCP)
gAmdStyxTokenSpaceGuid.PcdIscpSupport|TRUE
!else
diff --git a/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf b/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
index 057c52512e4e..bff5be4673a4 100644
--- a/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
+++ b/Silicon/AMD/Styx/AcpiTables/AcpiTables.inf
@@ -82,8 +82,6 @@ [FixedPcd]
gAmdStyxTokenSpaceGuid.PcdSbsaWakeUpGSIV
gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogGSIV
gAmdStyxTokenSpaceGuid.PcdSocCoresPerCluster
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport
- gAmdStyxTokenSpaceGuid.PcdTrustedFWSupport
gAmdStyxTokenSpaceGuid.PcdParkingProtocolVersion
gAmdStyxTokenSpaceGuid.PcdSata1PortCount
diff --git a/Silicon/AMD/Styx/AcpiTables/Fadt.c b/Silicon/AMD/Styx/AcpiTables/Fadt.c
index bcbff3798883..bdf88a9c8e32 100644
--- a/Silicon/AMD/Styx/AcpiTables/Fadt.c
+++ b/Silicon/AMD/Styx/AcpiTables/Fadt.c
@@ -73,7 +73,7 @@ STATIC EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE AcpiFadt = {
FADT_FLAGS, // UINT32 Flags
NULL_GAS, // EFI_ACPI_5_1_GENERIC_ADDRESS_STRUCTURE ResetReg
0, // UINT8 ResetValue
- 0, // UINT16 ArmBootArch
+ EFI_ACPI_5_1_ARM_PSCI_COMPLIANT, // UINT16 ArmBootArch
1, // UINT8 MinorVersion
0, // UINT64 XFirmwareCtrl
0, // UINT64 XDsdt
@@ -96,9 +96,6 @@ FadtTable (
VOID
)
{
- if (FixedPcdGetBool (PcdPsciOsSupport) && FixedPcdGetBool (PcdTrustedFWSupport)) {
- AcpiFadt.ArmBootArch = EFI_ACPI_5_1_ARM_PSCI_COMPLIANT;
- }
return (EFI_ACPI_DESCRIPTION_HEADER *) &AcpiFadt;
}
diff --git a/Silicon/AMD/Styx/AmdStyx.dec b/Silicon/AMD/Styx/AmdStyx.dec
index 0d7e82f2d768..cffe1cafde8b 100644
--- a/Silicon/AMD/Styx/AmdStyx.dec
+++ b/Silicon/AMD/Styx/AmdStyx.dec
@@ -89,17 +89,12 @@ [PcdsFixedAtBuild]
gAmdStyxTokenSpaceGuid.PcdSbsaWatchDogGSIV|369|UINT32|0x00050008
# Trusted-Firmware
- gAmdStyxTokenSpaceGuid.PcdTrustedFWSupport|TRUE|BOOLEAN|0x00060000
gAmdStyxTokenSpaceGuid.PcdTrustedFWMemoryBase|0x8000000000|UINT64|0x00060001
gAmdStyxTokenSpaceGuid.PcdTrustedFWMemorySize|0xE80000|UINT64|0x0006002
# ISCP
gAmdStyxTokenSpaceGuid.PcdIscpSupport|TRUE|BOOLEAN|0x00070000
- # PSCI
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|TRUE|BOOLEAN|0x00080000
- gAmdStyxTokenSpaceGuid.PcdPsciCpuOnContext|0|UINT64|0x00080001
-
# Cores Per cluster
gAmdStyxTokenSpaceGuid.PcdSocCoresPerCluster|2|UINT32|0x00090000
diff --git a/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.c b/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.c
index fd5bb96f7c98..e713d5581925 100644
--- a/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.c
+++ b/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.c
@@ -33,7 +33,6 @@
STATIC AMD_MP_CORE_INFO_PROTOCOL mAmdMpCoreInfoProtocol = { 0 };
-STATIC AMD_MP_BOOT_PROTOCOL mAmdMpBootProtocol = { 0 };
STATIC AMD_MP_BOOT_INFO mAmdMpBootInfo = { 0 };
@@ -56,13 +55,6 @@ AmdStyxGetMpParkingBase (
OUT UINTN *MpParkingSize
);
-STATIC
-VOID
-AmdStyxParkSecondaryCore (
- ARM_CORE_INFO *ArmCoreInfo,
- EFI_PHYSICAL_ADDRESS SecondaryEntry
- );
-
#pragma pack(push, 1)
typedef struct _PMU_INFO {
@@ -94,8 +86,6 @@ PlatInitDxeEntryPoint (
)
{
EFI_STATUS Status;
- EFI_PHYSICAL_ADDRESS MpParkingBase;
- UINTN MpParkingSize;
ARM_CORE_INFO *ArmCoreInfoTable;
UINTN ArmCoreCount;
EFI_HANDLE Handle = NULL;
@@ -120,39 +110,6 @@ PlatInitDxeEntryPoint (
);
ASSERT_EFI_ERROR (Status);
- // Install MP-Boot Protocol
- if (!FixedPcdGetBool (PcdPsciOsSupport) &&
- FixedPcdGetBool (PcdTrustedFWSupport)) {
- // Allocate Parking area (4KB-aligned, 4KB per core) as Reserved memory
- MpParkingBase = 0;
- MpParkingSize = ArmCoreCount * SIZE_4KB;
- Status = gBS->AllocatePages (AllocateAnyPages, EfiReservedMemoryType,
- EFI_SIZE_TO_PAGES (MpParkingSize),
- &MpParkingBase);
- if (EFI_ERROR (Status) || MpParkingBase == 0) {
- DEBUG ((EFI_D_ERROR, "Warning: Failed to allocate MpParkingBase."));
- } else {
- mAmdMpBootInfo.MpParkingBase = MpParkingBase;
- mAmdMpBootInfo.MpParkingSize = MpParkingSize;
- mAmdMpBootInfo.ArmCoreInfoTable = ArmCoreInfoTable;
- mAmdMpBootInfo.ArmCoreCount = ArmCoreCount;
-
- mAmdMpBootProtocol.ParkSecondaryCore = AmdStyxParkSecondaryCore;
- mAmdMpBootProtocol.MpBootInfo = &mAmdMpBootInfo;
-
- Status = gBS->InstallProtocolInterface (
- &Handle,
- &gAmdMpBootProtocolGuid,
- EFI_NATIVE_INTERFACE,
- (VOID *)&mAmdMpBootProtocol
- );
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "Warning: Failed to install MP-Boot Protocol."));
- gBS->FreePages (MpParkingBase, EFI_SIZE_TO_PAGES (MpParkingSize));
- }
- }
- }
-
return Status;
}
@@ -208,30 +165,3 @@ AmdStyxGetMpParkingBase (
*MpParkingSize = mAmdMpBootInfo.MpParkingBase;
return mAmdMpBootInfo.MpParkingBase;
}
-
-
-STATIC
-VOID
-AmdStyxParkSecondaryCore (
- ARM_CORE_INFO *ArmCoreInfo,
- EFI_PHYSICAL_ADDRESS SecondaryEntry
- )
-{
- ARM_SMC_ARGS SmcRegs = {0};
- UINTN MpId;
-
- MpId = GET_MPID (ArmCoreInfo->ClusterId, ArmCoreInfo->CoreId);
-
- SmcRegs.Arg0 = ARM_SMC_ID_PSCI_CPU_ON_AARCH64;
- SmcRegs.Arg1 = MpId;
- SmcRegs.Arg2 = SecondaryEntry;
- SmcRegs.Arg3 = FixedPcdGet64 (PcdPsciCpuOnContext);
- ArmCallSmc (&SmcRegs);
-
- if (SmcRegs.Arg0 == ARM_SMC_PSCI_RET_SUCCESS ||
- SmcRegs.Arg0 == ARM_SMC_PSCI_RET_ALREADY_ON) {
- DEBUG ((EFI_D_ERROR, "CPU[MpId] = 0x%X at RUN state.\n", MpId));
- } else {
- DEBUG ((EFI_D_ERROR, "Warning: Could not transition CPU[MpId] = 0x%X to RUN state.\n", MpId));
- }
-}
diff --git a/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf b/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf
index 15f46be651b7..1ebde2723355 100644
--- a/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf
+++ b/Silicon/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf
@@ -51,12 +51,6 @@ [Guids]
[Protocols]
gAmdMpCoreInfoProtocolGuid ## PRODUCER
- gAmdMpBootProtocolGuid ## PRODUCER
-
-[FixedPcd]
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport
- gAmdStyxTokenSpaceGuid.PcdPsciCpuOnContext
- gAmdStyxTokenSpaceGuid.PcdTrustedFWSupport
[Depex]
TRUE
diff --git a/Silicon/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf b/Silicon/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf
index 9f141946aea5..ccc079bebab2 100644
--- a/Silicon/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf
+++ b/Silicon/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf
@@ -68,7 +68,6 @@ [Pcd]
[FixedPcd]
gAmdStyxTokenSpaceGuid.PcdIscpSupport
- gAmdStyxTokenSpaceGuid.PcdTrustedFWSupport
gAmdStyxTokenSpaceGuid.PcdCpuIdRegister
[Depex]
diff --git a/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.c b/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.c
index 70821d1b120b..67f90efdcb3f 100644
--- a/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.c
+++ b/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.c
@@ -127,36 +127,34 @@ MemoryPeim (
Base = PcdGet64 (PcdSystemMemoryBase);
Size = PcdGet64 (PcdSystemMemorySize);
- if (FixedPcdGetBool (PcdTrustedFWSupport)) {
-
- //
- // For now, we assume that the trusted firmware region is at the base of
- // system memory, since that is much easier to deal with.
- //
- ASSERT (Base == PcdGet64 (PcdTrustedFWMemoryBase));
-
- Base += PcdGet64 (PcdTrustedFWMemorySize);
- Size -= PcdGet64 (PcdTrustedFWMemorySize);
-
- // Reserved Trusted Firmware region
- BuildResourceDescriptorHob (
- EFI_RESOURCE_SYSTEM_MEMORY,
- ( EFI_RESOURCE_ATTRIBUTE_PRESENT |
- EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
- EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |
- EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |
- EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE |
- EFI_RESOURCE_ATTRIBUTE_TESTED ),
- PcdGet64 (PcdTrustedFWMemoryBase),
- PcdGet64 (PcdTrustedFWMemorySize)
- );
-
- BuildMemoryAllocationHob (
- PcdGet64 (PcdTrustedFWMemoryBase),
- PcdGet64 (PcdTrustedFWMemorySize),
- EfiReservedMemoryType
- );
- }
+
+ //
+ // For now, we assume that the trusted firmware region is at the base of
+ // system memory, since that is much easier to deal with.
+ //
+ ASSERT (Base == PcdGet64 (PcdTrustedFWMemoryBase));
+
+ Base += PcdGet64 (PcdTrustedFWMemorySize);
+ Size -= PcdGet64 (PcdTrustedFWMemorySize);
+
+ // Reserved Trusted Firmware region
+ BuildResourceDescriptorHob (
+ EFI_RESOURCE_SYSTEM_MEMORY,
+ ( EFI_RESOURCE_ATTRIBUTE_PRESENT |
+ EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
+ EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |
+ EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |
+ EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE |
+ EFI_RESOURCE_ATTRIBUTE_TESTED ),
+ PcdGet64 (PcdTrustedFWMemoryBase),
+ PcdGet64 (PcdTrustedFWMemorySize)
+ );
+
+ BuildMemoryAllocationHob (
+ PcdGet64 (PcdTrustedFWMemoryBase),
+ PcdGet64 (PcdTrustedFWMemorySize),
+ EfiReservedMemoryType
+ );
// Declare system memory
BuildResourceDescriptorHob (
diff --git a/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.inf b/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.inf
index 724d71645d5a..d17e6c26feb5 100644
--- a/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.inf
+++ b/Silicon/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.inf
@@ -69,7 +69,6 @@ [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData
- gAmdStyxTokenSpaceGuid.PcdTrustedFWSupport
gAmdStyxTokenSpaceGuid.PcdTrustedFWMemoryBase
gAmdStyxTokenSpaceGuid.PcdTrustedFWMemorySize
diff --git a/Silicon/AMD/Styx/Library/ResetSystemLib/ResetSystemLib.inf b/Silicon/AMD/Styx/Library/ResetSystemLib/ResetSystemLib.inf
index 5a99fd79384a..d9faf3abb09a 100644
--- a/Silicon/AMD/Styx/Library/ResetSystemLib/ResetSystemLib.inf
+++ b/Silicon/AMD/Styx/Library/ResetSystemLib/ResetSystemLib.inf
@@ -42,6 +42,3 @@ [LibraryClasses]
PcdLib
BaseLib
ArmSmcLib
-
-[FixedPcd]
- gAmdStyxTokenSpaceGuid.PcdTrustedFWSupport
diff --git a/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.inf b/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.inf
index fc8b25c92873..3f36799f5df1 100644
--- a/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.inf
+++ b/Silicon/AMD/Styx/Library/StyxDtbLoaderLib/StyxDtbLoaderLib.inf
@@ -51,8 +51,6 @@ [Pcd]
[FixedPcd]
gArmTokenSpaceGuid.PcdArmLinuxFdtMaxOffset
gArmTokenSpaceGuid.PcdArmLinuxFdtAlignment
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport
- gAmdStyxTokenSpaceGuid.PcdTrustedFWSupport
gAmdStyxTokenSpaceGuid.PcdSata1PortCount
[Guids]
--
2.17.0
next prev parent reply other threads:[~2018-05-15 17:37 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-15 17:37 [PATCH edk2-platforms 0/5] Seattle spring cleaning Ard Biesheuvel
2018-05-15 17:37 ` Ard Biesheuvel [this message]
2018-05-15 17:37 ` [PATCH edk2-platforms 2/5] Silicon/AMD/Styx: remove MpBootDxe driver Ard Biesheuvel
2018-05-15 17:37 ` [PATCH edk2-platforms 3/5] Silicon/AMD/Styx: remove support for the ACPI parking protocol Ard Biesheuvel
2018-05-15 17:37 ` [PATCH edk2-platforms 4/5] Silicon/AMD/Styx: make ISCP dependency unconditional Ard Biesheuvel
2018-05-15 17:37 ` [PATCH edk2-platforms 5/5] Platform/AMD/Overdrive: enable support for NVME PCIe devices Ard Biesheuvel
2018-05-22 14:56 ` [PATCH edk2-platforms 0/5] Seattle spring cleaning Leif Lindholm
2018-05-22 16:40 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180515173736.29639-2-ard.biesheuvel@linaro.org \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox