Hi Liming and Guomin, This patch has not been reviewed, would you please review it?
Thanks, Chao -------- On 9月 14 2022, at 5:42 下午, Chao Li <lic...@loongson.cn> wrote: > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4053 > > Implement LoongArch DxeIPL instance. > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Guomin Jiang <guomin.ji...@intel.com> > > Signed-off-by: Chao Li <lic...@loongson.cn> > Co-authored-by: Baoqi Zhang <zhangba...@loongson.cn> > --- > MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf | 6 +- > .../Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c | 63 +++++++++++++++++++ > 2 files changed, 68 insertions(+), 1 deletion(-) > create mode 100644 MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c > > diff --git a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > index 19b8a4c8ae..052ea0ec1a 100644 > --- a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > +++ b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf > @@ -8,6 +8,7 @@ > # Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR> > > # Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR> > # Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights > reserved.<BR> > +# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights > reserved.<BR> > # > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > @@ -26,7 +27,7 @@ > # > > # The following information is for reference only and not required by the > build tools. > # > -# VALID_ARCHITECTURES = IA32 X64 EBC (EBC is for build only) AARCH64 RISCV64 > +# VALID_ARCHITECTURES = IA32 X64 EBC (EBC is for build only) AARCH64 RISCV64 > LOONGARCH64 > # > > > [Sources] > @@ -53,6 +54,9 @@ > [Sources.RISCV64] > > RiscV64/DxeLoadFunc.c > > > +[Sources.LOONGARCH64] > + LoongArch64/DxeLoadFunc.c > + > [Packages] > MdePkg/MdePkg.dec > MdeModulePkg/MdeModulePkg.dec > diff --git a/MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c > b/MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c > new file mode 100644 > index 0000000000..95d3af19ea > --- /dev/null > +++ b/MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c > @@ -0,0 +1,63 @@ > +/** @file > > + LoongArch specifc functionality for DxeLoad. > + > + Copyright (c) 2022, Loongson Technology Corporation Limited. All rights > reserved.<BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include "DxeIpl.h" > + > +/** > + Transfers control to DxeCore. > + > + This function performs a CPU architecture specific operations to execute > + the entry point of DxeCore with the parameters of HobList. > + It also installs EFI_END_OF_PEI_PPI to signal the end of PEI phase. > + > + @param[in] DxeCoreEntryPoint The entry point of DxeCore. > + @param[in] HobList The start of HobList passed to DxeCore. > + > +**/ > +VOID > +HandOffToDxeCore ( > + IN EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint, > + IN EFI_PEI_HOB_POINTERS HobList > + ) > +{ > + VOID *BaseOfStack; > + VOID *TopOfStack; > + EFI_STATUS Status; > + > + // > + // Allocate 128KB for the Stack > + // > + BaseOfStack = AllocatePages (EFI_SIZE_TO_PAGES (STACK_SIZE)); > + ASSERT (BaseOfStack != NULL); > + > + // > + // Compute the top of the stack we were allocated. Pre-allocate a UINTN > + // for safety. > + // > + TopOfStack = (VOID *)((UINTN)BaseOfStack + EFI_SIZE_TO_PAGES (STACK_SIZE) * > EFI_PAGE_SIZE - CPU_STACK_ALIGNMENT); > + TopOfStack = ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT); > + > + // > + // End of PEI phase signal > + // > + Status = PeiServicesInstallPpi (&gEndOfPeiSignalPpi); > + ASSERT_EFI_ERROR (Status); > + > + // > + // Update the contents of BSP stack HOB to reflect the real stack info > passed to DxeCore. > + // > + UpdateStackHob ((EFI_PHYSICAL_ADDRESS)(UINTN)BaseOfStack, STACK_SIZE); > + > + SwitchStack ( > + (SWITCH_STACK_ENTRY_POINT)(UINTN)DxeCoreEntryPoint, > + HobList.Raw, > + NULL, > + TopOfStack > + ); > +} > -- > 2.27.0 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#94201): https://edk2.groups.io/g/devel/message/94201 Mute This Topic: https://groups.io/mt/93674247/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-