mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-22 05:04:24 +02:00
UefiCpuPkg/CpuMpPei: Add LoongArch64 support
Added LoongArch64 CPU multiple processor PPI support. Cc: Ray Ni <ray.ni@intel.com> Cc: Jiaxin Wu <jiaxin.wu@intel.com> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Cc: Dun Tan <dun.tan@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Chao Li <lichao@loongson.cn>
This commit is contained in:
parent
7bc51fc68e
commit
336e7e06eb
@ -19,17 +19,22 @@
|
|||||||
#
|
#
|
||||||
# The following information is for reference only and not required by the build tools.
|
# The following information is for reference only and not required by the build tools.
|
||||||
#
|
#
|
||||||
# VALID_ARCHITECTURES = IA32 X64
|
# VALID_ARCHITECTURES = IA32 X64 LOONGARCH64
|
||||||
#
|
#
|
||||||
|
|
||||||
[Sources]
|
[Sources]
|
||||||
CpuMpPei.h
|
CpuMpPei.h
|
||||||
CpuMp.c
|
CpuMp.c
|
||||||
CpuMp2.c
|
CpuMp2.c
|
||||||
|
|
||||||
|
[Sources.Ia32, Sources.X64]
|
||||||
CpuBist.c
|
CpuBist.c
|
||||||
CpuPaging.c
|
CpuPaging.c
|
||||||
CpuMpPei.c
|
CpuMpPei.c
|
||||||
|
|
||||||
|
[Sources.LoongArch64]
|
||||||
|
LoongArch64/CpuMpPei.c
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
@ -39,16 +44,18 @@
|
|||||||
BaseLib
|
BaseLib
|
||||||
DebugLib
|
DebugLib
|
||||||
HobLib
|
HobLib
|
||||||
LocalApicLib
|
|
||||||
PeimEntryPoint
|
PeimEntryPoint
|
||||||
PeiServicesLib
|
PeiServicesLib
|
||||||
ReportStatusCodeLib
|
ReportStatusCodeLib
|
||||||
CpuExceptionHandlerLib
|
|
||||||
MpInitLib
|
MpInitLib
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
CpuLib
|
CpuLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
|
|
||||||
|
[LibraryClasses.Ia32, LibraryClasses.X64]
|
||||||
|
CpuExceptionHandlerLib
|
||||||
CpuPageTableLib
|
CpuPageTableLib
|
||||||
|
LocalApicLib
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEdkiiMigratedFvInfoGuid ## SOMETIMES_CONSUMES ## HOB
|
gEdkiiMigratedFvInfoGuid ## SOMETIMES_CONSUMES ## HOB
|
||||||
|
80
UefiCpuPkg/CpuMpPei/LoongArch64/CpuMpPei.c
Normal file
80
UefiCpuPkg/CpuMpPei/LoongArch64/CpuMpPei.c
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
/** @file
|
||||||
|
CPU PEI Module installs CPU Multiple Processor PPI.
|
||||||
|
|
||||||
|
Copyright (c) 2015 - 2022, Intel Corporation. All rights reserved.<BR>
|
||||||
|
Copyright (c) 2025, Loongson Technology Corporation Limited. All rights reserved.<BR>
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#include "CpuMpPei.h"
|
||||||
|
|
||||||
|
EFI_PEI_PPI_DESCRIPTOR mPeiCpuMpPpiList[] = {
|
||||||
|
{
|
||||||
|
EFI_PEI_PPI_DESCRIPTOR_PPI,
|
||||||
|
&gEdkiiPeiMpServices2PpiGuid,
|
||||||
|
&mMpServices2Ppi
|
||||||
|
},
|
||||||
|
{
|
||||||
|
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
|
||||||
|
&gEfiPeiMpServicesPpiGuid,
|
||||||
|
&mMpServicesPpi
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Initializes MP and exceptions handlers.
|
||||||
|
|
||||||
|
@param PeiServices The pointer to the PEI Services Table.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS MP was successfully initialized.
|
||||||
|
@retval others Error occurred in MP initialization.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
InitializeCpuMpWorker (
|
||||||
|
IN CONST EFI_PEI_SERVICES **PeiServices
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
Status = MpInitLibInitialize ();
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Install CPU MP PPI
|
||||||
|
//
|
||||||
|
Status = PeiServicesInstallPpi (mPeiCpuMpPpiList);
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
The Entry point of the MP CPU PEIM.
|
||||||
|
|
||||||
|
This function will wakeup APs and collect CPU AP count and install the
|
||||||
|
Mp Service Ppi.
|
||||||
|
|
||||||
|
@param FileHandle Handle of the file being invoked.
|
||||||
|
@param PeiServices Describes the list of possible PEI Services.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS MpServicePpi is installed successfully.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CpuMpPeimInit (
|
||||||
|
IN EFI_PEI_FILE_HANDLE FileHandle,
|
||||||
|
IN CONST EFI_PEI_SERVICES **PeiServices
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
|
Status = InitializeCpuMpWorker ((CONST EFI_PEI_SERVICES **)PeiServices);
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user