[edk2-devel] [PATCH 0/2] Add EFI_MP_SERVICES_PROTOCOL support for AARCH64

Rebecca Cran posted 2 patches 2 years, 6 months ago
Failed in applying to current master (apply log)
ArmPkg/ArmPkg.dec                                              |    4 +
ArmPkg/ArmPkg.dsc                                              |    4 +
ArmPkg/Drivers/CpuDxe/AArch64/Arch.c                           |   22 +
ArmPkg/Drivers/CpuDxe/Arm/Arch.c                               |   22 +
ArmPkg/Drivers/CpuDxe/CpuDxe.c                                 |    2 +
ArmPkg/Drivers/CpuDxe/CpuDxe.h                                 |   10 +
ArmPkg/Drivers/CpuDxe/CpuDxe.inf                               |    6 +
ArmPkg/Drivers/CpuDxe/CpuMpInit.c                              |  604 ++++++++
ArmPkg/Include/Guid/ArmMpCoreInfo.h                            |    3 +-
ArmPkg/Include/Library/ArmLib.h                                |    4 +
ArmPkg/Include/Library/MpInitLib.h                             |  366 +++++
ArmPkg/Library/MpInitLib/AArch64/MpFuncs.S                     |   61 +
ArmPkg/Library/MpInitLib/DxeMpInitLib.inf                      |   53 +
ArmPkg/Library/MpInitLib/DxeMpLib.c                            | 1498 ++++++++++++++++++++
ArmPkg/Library/MpInitLib/InternalMpInitLib.h                   |  358 +++++
ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c |    8 +-
ArmPlatformPkg/PrePeiCore/MainMPCore.c                         |    2 +-
ArmPlatformPkg/PrePi/MainMPCore.c                              |    2 +-
ArmVirtPkg/ArmVirt.dsc.inc                                     |    3 +
19 files changed, 3024 insertions(+), 8 deletions(-)
create mode 100644 ArmPkg/Drivers/CpuDxe/AArch64/Arch.c
create mode 100644 ArmPkg/Drivers/CpuDxe/Arm/Arch.c
create mode 100644 ArmPkg/Drivers/CpuDxe/CpuMpInit.c
create mode 100644 ArmPkg/Include/Library/MpInitLib.h
create mode 100644 ArmPkg/Library/MpInitLib/AArch64/MpFuncs.S
create mode 100644 ArmPkg/Library/MpInitLib/DxeMpInitLib.inf
create mode 100644 ArmPkg/Library/MpInitLib/DxeMpLib.c
create mode 100644 ArmPkg/Library/MpInitLib/InternalMpInitLib.h
[edk2-devel] [PATCH 0/2] Add EFI_MP_SERVICES_PROTOCOL support for AARCH64
Posted by Rebecca Cran 2 years, 6 months ago
Patch 1/2 is the start of addressing the issue that the Aff0 field of
the MPIDR is no longer guaranteed to be the core, and should be referred
to in a more generic way: for example it could be the thread, with Aff1
being the core and Aff2 the cluster. Clearly much more work is needed 
to fully remove that assumption.

Patch 2/2 implements the EFI_MP_SERVICES_PROTOCOL for DXE in Library/MpInitLib.
CpuDxe initializes the MP support, and as a result gains a dependency on
MpInitLib. ArmVirt.dsc.inc needs updated to add the new library, as will
all AARCH64 platforms.

Cores are powered on and turned off using PSCI.

Note that minimal CPU setup is done: for example the MMU and caches are
left disabled.


Rebecca Cran (2):
  ArmPkg: Replace CoreId and ClusterId with Mpidr in ARM_CORE_INFO
    struct
  ArmPkg: Add Library/MpInitLib to support EFI_MP_SERVICES_PROTOCOL

 ArmPkg/ArmPkg.dec                                              |    4 +
 ArmPkg/ArmPkg.dsc                                              |    4 +
 ArmPkg/Drivers/CpuDxe/AArch64/Arch.c                           |   22 +
 ArmPkg/Drivers/CpuDxe/Arm/Arch.c                               |   22 +
 ArmPkg/Drivers/CpuDxe/CpuDxe.c                                 |    2 +
 ArmPkg/Drivers/CpuDxe/CpuDxe.h                                 |   10 +
 ArmPkg/Drivers/CpuDxe/CpuDxe.inf                               |    6 +
 ArmPkg/Drivers/CpuDxe/CpuMpInit.c                              |  604 ++++++++
 ArmPkg/Include/Guid/ArmMpCoreInfo.h                            |    3 +-
 ArmPkg/Include/Library/ArmLib.h                                |    4 +
 ArmPkg/Include/Library/MpInitLib.h                             |  366 +++++
 ArmPkg/Library/MpInitLib/AArch64/MpFuncs.S                     |   61 +
 ArmPkg/Library/MpInitLib/DxeMpInitLib.inf                      |   53 +
 ArmPkg/Library/MpInitLib/DxeMpLib.c                            | 1498 ++++++++++++++++++++
 ArmPkg/Library/MpInitLib/InternalMpInitLib.h                   |  358 +++++
 ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.c |    8 +-
 ArmPlatformPkg/PrePeiCore/MainMPCore.c                         |    2 +-
 ArmPlatformPkg/PrePi/MainMPCore.c                              |    2 +-
 ArmVirtPkg/ArmVirt.dsc.inc                                     |    3 +
 19 files changed, 3024 insertions(+), 8 deletions(-)
 create mode 100644 ArmPkg/Drivers/CpuDxe/AArch64/Arch.c
 create mode 100644 ArmPkg/Drivers/CpuDxe/Arm/Arch.c
 create mode 100644 ArmPkg/Drivers/CpuDxe/CpuMpInit.c
 create mode 100644 ArmPkg/Include/Library/MpInitLib.h
 create mode 100644 ArmPkg/Library/MpInitLib/AArch64/MpFuncs.S
 create mode 100644 ArmPkg/Library/MpInitLib/DxeMpInitLib.inf
 create mode 100644 ArmPkg/Library/MpInitLib/DxeMpLib.c
 create mode 100644 ArmPkg/Library/MpInitLib/InternalMpInitLib.h

-- 
2.31.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#82236): https://edk2.groups.io/g/devel/message/82236
Mute This Topic: https://groups.io/mt/86417168/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-