The ARM_PROCESSOR_TABLE pseudo-ACPI table (which carries a ACPI-table
like header but is published as a EFI config table) is not described in
any relevant spec, and is not known to be relied upon by any OS. Let's
just get rid of it.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
ArmPkg/Drivers/CpuDxe/CpuDxe.inf | 1 -
ArmPkg/Drivers/CpuDxe/CpuDxe.h | 15 ---
ArmPkg/Include/Guid/ArmMpCoreInfo.h | 27 ------
ArmPkg/Drivers/CpuDxe/CpuDxe.c | 6 --
ArmPkg/Drivers/CpuDxe/CpuMpCore.c | 98 --------------------
5 files changed, 147 deletions(-)
diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.inf b/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
index f4cdb8ab5613..4eda960ede36 100644
--- a/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
+++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
@@ -21,7 +21,6 @@ [Defines]
[Sources.Common]
CpuDxe.c
CpuDxe.h
- CpuMpCore.c
CpuMmuCommon.c
Exception.c
diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.h b/ArmPkg/Drivers/CpuDxe/CpuDxe.h
index 3f04b89d7ad0..7858c12aea55 100644
--- a/ArmPkg/Drivers/CpuDxe/CpuDxe.h
+++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.h
@@ -104,21 +104,6 @@ SyncCacheConfig (
IN EFI_CPU_ARCH_PROTOCOL *CpuProtocol
);
-/**
- * Publish ARM Processor Data table in UEFI SYSTEM Table.
- * @param HobStart Pointer to the beginning of the HOB List from PEI.
- *
- * Description : This function iterates through HOB list and finds ARM processor Table Entry HOB.
- * If the ARM processor Table Entry HOB is found, the HOB data is copied to run-time memory
- * and a pointer is assigned to it in ARM processor table. Then the ARM processor table is
- * installed in EFI configuration table.
-**/
-VOID
-EFIAPI
-PublishArmProcessorTable (
- VOID
- );
-
// The ARM Attributes might be defined on 64-bit (case of the long format description table)
UINT64
EfiAttributeToArmAttribute (
diff --git a/ArmPkg/Include/Guid/ArmMpCoreInfo.h b/ArmPkg/Include/Guid/ArmMpCoreInfo.h
index 43f0848e78b8..3a10fffb6fe4 100644
--- a/ArmPkg/Include/Guid/ArmMpCoreInfo.h
+++ b/ArmPkg/Include/Guid/ArmMpCoreInfo.h
@@ -23,36 +23,9 @@ typedef struct {
UINT64 MailboxClearValue;
} ARM_CORE_INFO;
-typedef struct {
- UINT64 Signature;
- UINT32 Length;
- UINT32 Revision;
- UINT64 OemId;
- UINT64 OemTableId;
- UINTN OemRevision;
- UINTN CreatorId;
- UINTN CreatorRevision;
- EFI_GUID Identifier;
- UINTN DataLen;
-} ARM_PROCESSOR_TABLE_HEADER;
-
-typedef struct {
- ARM_PROCESSOR_TABLE_HEADER Header;
- UINTN NumberOfEntries;
- ARM_CORE_INFO *ArmCpus;
-} ARM_PROCESSOR_TABLE;
-
#define ARM_MP_CORE_INFO_GUID \
{ 0xa4ee0728, 0xe5d7, 0x4ac5, {0xb2, 0x1e, 0x65, 0x8e, 0xd8, 0x57, 0xe8, 0x34} }
-#define EFI_ARM_PROCESSOR_TABLE_SIGNATURE SIGNATURE_64 ('C', 'P', 'U', 'T', 'A', 'B', 'L', 'E')
-#define EFI_ARM_PROCESSOR_TABLE_REVISION 0x00010000// 1.0
-#define EFI_ARM_PROCESSOR_TABLE_OEM_ID SIGNATURE_64('A','R','M',' ', 'L', 't', 'd', ' ')
-#define EFI_ARM_PROCESSOR_TABLE_OEM_TABLE_ID SIGNATURE_64('V', 'E', 'R', 'S', 'A', 'T', 'I', 'L')
-#define EFI_ARM_PROCESSOR_TABLE_OEM_REVISION 0x00000001
-#define EFI_ARM_PROCESSOR_TABLE_CREATOR_ID 0xA5A5A5A5
-#define EFI_ARM_PROCESSOR_TABLE_CREATOR_REVISION 0x01000001
-
extern EFI_GUID gArmMpCoreInfoGuid;
#endif /* ARM_MP_CORE_INFO_GUID_H_ */
diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.c b/ArmPkg/Drivers/CpuDxe/CpuDxe.c
index 6c076982a1bd..1ee7c9237a3a 100644
--- a/ArmPkg/Drivers/CpuDxe/CpuDxe.c
+++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.c
@@ -256,12 +256,6 @@ CpuDxeInitialize (
SyncCacheConfig (&mCpu);
mIsFlushingGCD = FALSE;
- // If the platform is a MPCore system then install the Configuration Table describing the
- // secondary core states
- if (ArmIsMpCore ()) {
- PublishArmProcessorTable ();
- }
-
//
// Setup a callback for idle events
//
diff --git a/ArmPkg/Drivers/CpuDxe/CpuMpCore.c b/ArmPkg/Drivers/CpuDxe/CpuMpCore.c
deleted file mode 100644
index 08de46464515..000000000000
--- a/ArmPkg/Drivers/CpuDxe/CpuMpCore.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/** @file
-*
-* Copyright (c) 2011-2021, Arm Limited. All rights reserved.<BR>
-*
-* SPDX-License-Identifier: BSD-2-Clause-Patent
-*
-**/
-
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/HobLib.h>
-#include <Library/DebugLib.h>
-#include <Library/MemoryAllocationLib.h>
-
-#include <Guid/ArmMpCoreInfo.h>
-
-ARM_PROCESSOR_TABLE mArmProcessorTableTemplate = {
- {
- EFI_ARM_PROCESSOR_TABLE_SIGNATURE,
- 0,
- EFI_ARM_PROCESSOR_TABLE_REVISION,
- EFI_ARM_PROCESSOR_TABLE_OEM_ID,
- EFI_ARM_PROCESSOR_TABLE_OEM_TABLE_ID,
- EFI_ARM_PROCESSOR_TABLE_OEM_REVISION,
- EFI_ARM_PROCESSOR_TABLE_CREATOR_ID,
- EFI_ARM_PROCESSOR_TABLE_CREATOR_REVISION,
- { 0 },
- 0
- }, // ARM Processor table header
- 0, // Number of entries in ARM processor Table
- NULL // ARM Processor Table
-};
-
-/** Publish ARM Processor Data table in UEFI SYSTEM Table.
- * @param HobStart Pointer to the beginning of the HOB List from PEI.
- *
- * Description : This function iterates through HOB list and finds ARM processor Table Entry HOB.
- * If the ARM processor Table Entry HOB is found, the HOB data is copied to run-time memory
- * and a pointer is assigned to it in ARM processor table. Then the ARM processor table is
- * installed in EFI configuration table.
-**/
-VOID
-EFIAPI
-PublishArmProcessorTable (
- VOID
- )
-{
- EFI_PEI_HOB_POINTERS Hob;
-
- Hob.Raw = GetHobList ();
-
- // Iterate through the HOBs and find if there is ARM PROCESSOR ENTRY HOB
- for ( ; !END_OF_HOB_LIST (Hob); Hob.Raw = GET_NEXT_HOB (Hob)) {
- // Check for Correct HOB type
- if ((GET_HOB_TYPE (Hob)) == EFI_HOB_TYPE_GUID_EXTENSION) {
- // Check for correct GUID type
- if (CompareGuid (&(Hob.Guid->Name), &gArmMpCoreInfoGuid)) {
- ARM_PROCESSOR_TABLE *ArmProcessorTable;
- EFI_STATUS Status;
-
- // Allocate Runtime memory for ARM processor table
- ArmProcessorTable = (ARM_PROCESSOR_TABLE *)AllocateRuntimePool (sizeof (ARM_PROCESSOR_TABLE));
-
- // Check if the memory allocation is successful or not
- ASSERT (NULL != ArmProcessorTable);
-
- // Set ARM processor table to default values
- CopyMem (ArmProcessorTable, &mArmProcessorTableTemplate, sizeof (ARM_PROCESSOR_TABLE));
-
- // Fill in Length fields of ARM processor table
- ArmProcessorTable->Header.Length = sizeof (ARM_PROCESSOR_TABLE);
- ArmProcessorTable->Header.DataLen = GET_GUID_HOB_DATA_SIZE (Hob);
-
- // Fill in Identifier(ARM processor table GUID)
- ArmProcessorTable->Header.Identifier = gArmMpCoreInfoGuid;
-
- // Set Number of ARM core entries in the Table
- ArmProcessorTable->NumberOfEntries = GET_GUID_HOB_DATA_SIZE (Hob)/sizeof (ARM_CORE_INFO);
-
- // Allocate runtime memory for ARM processor Table entries
- ArmProcessorTable->ArmCpus = (ARM_CORE_INFO *)AllocateRuntimePool (
- ArmProcessorTable->NumberOfEntries * sizeof (ARM_CORE_INFO)
- );
-
- // Check if the memory allocation is successful or not
- ASSERT (NULL != ArmProcessorTable->ArmCpus);
-
- // Copy ARM Processor Table data from HOB list to newly allocated memory
- CopyMem (ArmProcessorTable->ArmCpus, GET_GUID_HOB_DATA (Hob), ArmProcessorTable->Header.DataLen);
-
- // Install the ARM Processor table into EFI system configuration table
- Status = gBS->InstallConfigurationTable (&gArmMpCoreInfoGuid, ArmProcessorTable);
-
- ASSERT_EFI_ERROR (Status);
- }
- }
- }
-}
--
2.30.2
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#85089): https://edk2.groups.io/g/devel/message/85089
Mute This Topic: https://groups.io/mt/87803240/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Hi Ard,
Thank you for this patch.
I have just checked and that patch v2 1/2 from this series is no longer
required but this patch v2 2/2 is still applicable.
I have applied patch v2 2/2 on latest edk2 master and tested with FVP
model and can boot Linux.
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Tested-by: Sami Mujawar <sami.mujawar@arm.com>
Regards,
Sami Mujawar
On 17/12/2021 09:34 pm, Ard Biesheuvel wrote:
> The ARM_PROCESSOR_TABLE pseudo-ACPI table (which carries a ACPI-table
> like header but is published as a EFI config table) is not described in
> any relevant spec, and is not known to be relied upon by any OS. Let's
> just get rid of it.
>
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
> ---
> ArmPkg/Drivers/CpuDxe/CpuDxe.inf | 1 -
> ArmPkg/Drivers/CpuDxe/CpuDxe.h | 15 ---
> ArmPkg/Include/Guid/ArmMpCoreInfo.h | 27 ------
> ArmPkg/Drivers/CpuDxe/CpuDxe.c | 6 --
> ArmPkg/Drivers/CpuDxe/CpuMpCore.c | 98 --------------------
> 5 files changed, 147 deletions(-)
>
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.inf b/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
> index f4cdb8ab5613..4eda960ede36 100644
> --- a/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
> +++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.inf
> @@ -21,7 +21,6 @@ [Defines]
> [Sources.Common]
>
> CpuDxe.c
>
> CpuDxe.h
>
> - CpuMpCore.c
>
> CpuMmuCommon.c
>
> Exception.c
>
>
>
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.h b/ArmPkg/Drivers/CpuDxe/CpuDxe.h
> index 3f04b89d7ad0..7858c12aea55 100644
> --- a/ArmPkg/Drivers/CpuDxe/CpuDxe.h
> +++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.h
> @@ -104,21 +104,6 @@ SyncCacheConfig (
> IN EFI_CPU_ARCH_PROTOCOL *CpuProtocol
>
> );
>
>
>
> -/**
>
> - * Publish ARM Processor Data table in UEFI SYSTEM Table.
>
> - * @param HobStart Pointer to the beginning of the HOB List from PEI.
>
> - *
>
> - * Description : This function iterates through HOB list and finds ARM processor Table Entry HOB.
>
> - * If the ARM processor Table Entry HOB is found, the HOB data is copied to run-time memory
>
> - * and a pointer is assigned to it in ARM processor table. Then the ARM processor table is
>
> - * installed in EFI configuration table.
>
> -**/
>
> -VOID
>
> -EFIAPI
>
> -PublishArmProcessorTable (
>
> - VOID
>
> - );
>
> -
>
> // The ARM Attributes might be defined on 64-bit (case of the long format description table)
>
> UINT64
>
> EfiAttributeToArmAttribute (
>
> diff --git a/ArmPkg/Include/Guid/ArmMpCoreInfo.h b/ArmPkg/Include/Guid/ArmMpCoreInfo.h
> index 43f0848e78b8..3a10fffb6fe4 100644
> --- a/ArmPkg/Include/Guid/ArmMpCoreInfo.h
> +++ b/ArmPkg/Include/Guid/ArmMpCoreInfo.h
> @@ -23,36 +23,9 @@ typedef struct {
> UINT64 MailboxClearValue;
>
> } ARM_CORE_INFO;
>
>
>
> -typedef struct {
>
> - UINT64 Signature;
>
> - UINT32 Length;
>
> - UINT32 Revision;
>
> - UINT64 OemId;
>
> - UINT64 OemTableId;
>
> - UINTN OemRevision;
>
> - UINTN CreatorId;
>
> - UINTN CreatorRevision;
>
> - EFI_GUID Identifier;
>
> - UINTN DataLen;
>
> -} ARM_PROCESSOR_TABLE_HEADER;
>
> -
>
> -typedef struct {
>
> - ARM_PROCESSOR_TABLE_HEADER Header;
>
> - UINTN NumberOfEntries;
>
> - ARM_CORE_INFO *ArmCpus;
>
> -} ARM_PROCESSOR_TABLE;
>
> -
>
> #define ARM_MP_CORE_INFO_GUID \
>
> { 0xa4ee0728, 0xe5d7, 0x4ac5, {0xb2, 0x1e, 0x65, 0x8e, 0xd8, 0x57, 0xe8, 0x34} }
>
>
>
> -#define EFI_ARM_PROCESSOR_TABLE_SIGNATURE SIGNATURE_64 ('C', 'P', 'U', 'T', 'A', 'B', 'L', 'E')
>
> -#define EFI_ARM_PROCESSOR_TABLE_REVISION 0x00010000// 1.0
>
> -#define EFI_ARM_PROCESSOR_TABLE_OEM_ID SIGNATURE_64('A','R','M',' ', 'L', 't', 'd', ' ')
>
> -#define EFI_ARM_PROCESSOR_TABLE_OEM_TABLE_ID SIGNATURE_64('V', 'E', 'R', 'S', 'A', 'T', 'I', 'L')
>
> -#define EFI_ARM_PROCESSOR_TABLE_OEM_REVISION 0x00000001
>
> -#define EFI_ARM_PROCESSOR_TABLE_CREATOR_ID 0xA5A5A5A5
>
> -#define EFI_ARM_PROCESSOR_TABLE_CREATOR_REVISION 0x01000001
>
> -
>
> extern EFI_GUID gArmMpCoreInfoGuid;
>
>
>
> #endif /* ARM_MP_CORE_INFO_GUID_H_ */
>
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.c b/ArmPkg/Drivers/CpuDxe/CpuDxe.c
> index 6c076982a1bd..1ee7c9237a3a 100644
> --- a/ArmPkg/Drivers/CpuDxe/CpuDxe.c
> +++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.c
> @@ -256,12 +256,6 @@ CpuDxeInitialize (
> SyncCacheConfig (&mCpu);
>
> mIsFlushingGCD = FALSE;
>
>
>
> - // If the platform is a MPCore system then install the Configuration Table describing the
>
> - // secondary core states
>
> - if (ArmIsMpCore ()) {
>
> - PublishArmProcessorTable ();
>
> - }
>
> -
>
> //
>
> // Setup a callback for idle events
>
> //
>
> diff --git a/ArmPkg/Drivers/CpuDxe/CpuMpCore.c b/ArmPkg/Drivers/CpuDxe/CpuMpCore.c
> deleted file mode 100644
> index 08de46464515..000000000000
> --- a/ArmPkg/Drivers/CpuDxe/CpuMpCore.c
> +++ /dev/null
> @@ -1,98 +0,0 @@
> -/** @file
>
> -*
>
> -* Copyright (c) 2011-2021, Arm Limited. All rights reserved.<BR>
>
> -*
>
> -* SPDX-License-Identifier: BSD-2-Clause-Patent
>
> -*
>
> -**/
>
> -
>
> -#include <Library/UefiBootServicesTableLib.h>
>
> -#include <Library/BaseMemoryLib.h>
>
> -#include <Library/HobLib.h>
>
> -#include <Library/DebugLib.h>
>
> -#include <Library/MemoryAllocationLib.h>
>
> -
>
> -#include <Guid/ArmMpCoreInfo.h>
>
> -
>
> -ARM_PROCESSOR_TABLE mArmProcessorTableTemplate = {
>
> - {
>
> - EFI_ARM_PROCESSOR_TABLE_SIGNATURE,
>
> - 0,
>
> - EFI_ARM_PROCESSOR_TABLE_REVISION,
>
> - EFI_ARM_PROCESSOR_TABLE_OEM_ID,
>
> - EFI_ARM_PROCESSOR_TABLE_OEM_TABLE_ID,
>
> - EFI_ARM_PROCESSOR_TABLE_OEM_REVISION,
>
> - EFI_ARM_PROCESSOR_TABLE_CREATOR_ID,
>
> - EFI_ARM_PROCESSOR_TABLE_CREATOR_REVISION,
>
> - { 0 },
>
> - 0
>
> - }, // ARM Processor table header
>
> - 0, // Number of entries in ARM processor Table
>
> - NULL // ARM Processor Table
>
> -};
>
> -
>
> -/** Publish ARM Processor Data table in UEFI SYSTEM Table.
>
> - * @param HobStart Pointer to the beginning of the HOB List from PEI.
>
> - *
>
> - * Description : This function iterates through HOB list and finds ARM processor Table Entry HOB.
>
> - * If the ARM processor Table Entry HOB is found, the HOB data is copied to run-time memory
>
> - * and a pointer is assigned to it in ARM processor table. Then the ARM processor table is
>
> - * installed in EFI configuration table.
>
> -**/
>
> -VOID
>
> -EFIAPI
>
> -PublishArmProcessorTable (
>
> - VOID
>
> - )
>
> -{
>
> - EFI_PEI_HOB_POINTERS Hob;
>
> -
>
> - Hob.Raw = GetHobList ();
>
> -
>
> - // Iterate through the HOBs and find if there is ARM PROCESSOR ENTRY HOB
>
> - for ( ; !END_OF_HOB_LIST (Hob); Hob.Raw = GET_NEXT_HOB (Hob)) {
>
> - // Check for Correct HOB type
>
> - if ((GET_HOB_TYPE (Hob)) == EFI_HOB_TYPE_GUID_EXTENSION) {
>
> - // Check for correct GUID type
>
> - if (CompareGuid (&(Hob.Guid->Name), &gArmMpCoreInfoGuid)) {
>
> - ARM_PROCESSOR_TABLE *ArmProcessorTable;
>
> - EFI_STATUS Status;
>
> -
>
> - // Allocate Runtime memory for ARM processor table
>
> - ArmProcessorTable = (ARM_PROCESSOR_TABLE *)AllocateRuntimePool (sizeof (ARM_PROCESSOR_TABLE));
>
> -
>
> - // Check if the memory allocation is successful or not
>
> - ASSERT (NULL != ArmProcessorTable);
>
> -
>
> - // Set ARM processor table to default values
>
> - CopyMem (ArmProcessorTable, &mArmProcessorTableTemplate, sizeof (ARM_PROCESSOR_TABLE));
>
> -
>
> - // Fill in Length fields of ARM processor table
>
> - ArmProcessorTable->Header.Length = sizeof (ARM_PROCESSOR_TABLE);
>
> - ArmProcessorTable->Header.DataLen = GET_GUID_HOB_DATA_SIZE (Hob);
>
> -
>
> - // Fill in Identifier(ARM processor table GUID)
>
> - ArmProcessorTable->Header.Identifier = gArmMpCoreInfoGuid;
>
> -
>
> - // Set Number of ARM core entries in the Table
>
> - ArmProcessorTable->NumberOfEntries = GET_GUID_HOB_DATA_SIZE (Hob)/sizeof (ARM_CORE_INFO);
>
> -
>
> - // Allocate runtime memory for ARM processor Table entries
>
> - ArmProcessorTable->ArmCpus = (ARM_CORE_INFO *)AllocateRuntimePool (
>
> - ArmProcessorTable->NumberOfEntries * sizeof (ARM_CORE_INFO)
>
> - );
>
> -
>
> - // Check if the memory allocation is successful or not
>
> - ASSERT (NULL != ArmProcessorTable->ArmCpus);
>
> -
>
> - // Copy ARM Processor Table data from HOB list to newly allocated memory
>
> - CopyMem (ArmProcessorTable->ArmCpus, GET_GUID_HOB_DATA (Hob), ArmProcessorTable->Header.DataLen);
>
> -
>
> - // Install the ARM Processor table into EFI system configuration table
>
> - Status = gBS->InstallConfigurationTable (&gArmMpCoreInfoGuid, ArmProcessorTable);
>
> -
>
> - ASSERT_EFI_ERROR (Status);
>
> - }
>
> - }
>
> - }
>
> -}
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#91721): https://edk2.groups.io/g/devel/message/91721
Mute This Topic: https://groups.io/mt/87803240/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
On Fri, 22 Jul 2022 at 17:20, Sami Mujawar <sami.mujawar@arm.com> wrote: > > Hi Ard, > > Thank you for this patch. > > I have just checked and that patch v2 1/2 from this series is no longer > required but this patch v2 2/2 is still applicable. > > I have applied patch v2 2/2 on latest edk2 master and tested with FVP > model and can boot Linux. > > Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> > > Tested-by: Sami Mujawar <sami.mujawar@arm.com> > Thanks Sami I've now merged this as #3128 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91728): https://edk2.groups.io/g/devel/message/91728 Mute This Topic: https://groups.io/mt/87803240/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.