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.muja...@arm.com>

Tested-by: Sami Mujawar <sami.muja...@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 <a...@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/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to