Reviewed-by: Michael D Kinney <michael.d.kin...@intel.com> > -----Original Message----- > From: Chao Li <lic...@loongson.cn> > Sent: Wednesday, September 14, 2022 2:42 AM > To: devel@edk2.groups.io > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming > <gaolim...@byosoft.com.cn>; Liu, Zhiguang <zhiguang....@intel.com> > Subject: [PATCH v2 27/34] MdePkg/BaseCpuLib: LoongArch Base CPU library > implementation. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4053 > > Implement LoongArch CPU related functions in BaseCpuLib. > > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Zhiguang Liu <zhiguang....@intel.com> > > Signed-off-by: Chao Li <lic...@loongson.cn> > --- > MdePkg/Library/BaseCpuLib/BaseCpuLib.inf | 7 ++++++- > MdePkg/Library/BaseCpuLib/BaseCpuLib.uni | 5 +++-- > MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S | 15 +++++++++++++++ > MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S | 15 +++++++++++++++ > 4 files changed, 39 insertions(+), 3 deletions(-) > create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S > create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S > > diff --git a/MdePkg/Library/BaseCpuLib/BaseCpuLib.inf > b/MdePkg/Library/BaseCpuLib/BaseCpuLib.inf > index c4cd29a783..6b230f6e6d 100644 > --- a/MdePkg/Library/BaseCpuLib/BaseCpuLib.inf > +++ b/MdePkg/Library/BaseCpuLib/BaseCpuLib.inf > @@ -8,6 +8,7 @@ > # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > > # Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> > > # Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights > reserved.<BR> > > +# Portions Copyright (c) 2022, Loongson Technology Corporation Limited. All > rights reserved.<BR> > > # > > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > @@ -25,7 +26,7 @@ > > > > > # > > -# VALID_ARCHITECTURES = IA32 X64 EBC ARM AARCH64 RISCV64 > > +# VALID_ARCHITECTURES = IA32 X64 EBC ARM AARCH64 RISCV64 > LOONGARCH64 > > # > > > > [Sources.IA32] > > @@ -61,6 +62,10 @@ > [Sources.RISCV64] > > RiscV/Cpu.S > > > > +[Sources.LOONGARCH64] > > + LoongArch/CpuFlushTlb.S | GCC > > + LoongArch/CpuSleep.S | GCC > > + > > [Packages] > > MdePkg/MdePkg.dec > > > > diff --git a/MdePkg/Library/BaseCpuLib/BaseCpuLib.uni > b/MdePkg/Library/BaseCpuLib/BaseCpuLib.uni > index 80dc495786..7c5c8dfb37 100644 > --- a/MdePkg/Library/BaseCpuLib/BaseCpuLib.uni > +++ b/MdePkg/Library/BaseCpuLib/BaseCpuLib.uni > @@ -1,13 +1,14 @@ > // /** @file > > // Instance of CPU Library for various architecture. > > // > > -// CPU Library implemented using ASM functions for IA-32, X64 and RISCV64, > > +// CPU Library implemented using ASM functions for IA-32, X64, RISCV64 and > LoongArch64, > > // PAL CALLs for IPF, and empty functions for EBC. > > // > > // Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> > > // Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > > // Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> > > // Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights > reserved.<BR> > > +// Portions Copyright (c) 2022, Loongson Technology Corporation Limited. All > rights reserved.<BR> > > // > > // SPDX-License-Identifier: BSD-2-Clause-Patent > > // > > @@ -16,5 +17,5 @@ > > > #string STR_MODULE_ABSTRACT #language en-US "Instance of CPU > Library for various architectures" > > > > -#string STR_MODULE_DESCRIPTION #language en-US "CPU Library > implemented using ASM functions for IA-32, X64 and RISCV64, > PAL CALLs for IPF, and empty functions for EBC." > > +#string STR_MODULE_DESCRIPTION #language en-US "CPU Library > implemented using ASM functions for IA-32, X64, RISCV64 and > LoongArch64, PAL CALLs for IPF, and empty functions for EBC." > > > > diff --git a/MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S > b/MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S > new file mode 100644 > index 0000000000..8b792f0a37 > --- /dev/null > +++ b/MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S > @@ -0,0 +1,15 @@ > +#------------------------------------------------------------------------------ > > +# > > +# CpuFlushTlb() for LoongArch64 > > +# > > +# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights > reserved.<BR> > > +# > > +# SPDX-License-Identifier: BSD-2-Clause-Patent > > +# > > +#------------------------------------------------------------------------------ > > +ASM_GLOBAL ASM_PFX(CpuFlushTlb) > > + > > +ASM_PFX(CpuFlushTlb): > > + tlbflush > > + jirl $zero, $ra, 0 > > + .end > > diff --git a/MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S > b/MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S > new file mode 100644 > index 0000000000..eb31b10714 > --- /dev/null > +++ b/MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S > @@ -0,0 +1,15 @@ > +#------------------------------------------------------------------------------ > > +# > > +# CpuSleep() for LoongArch64 > > +# > > +# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights > reserved.<BR> > > +# > > +# SPDX-License-Identifier: BSD-2-Clause-Patent > > +# > > +#------------------------------------------------------------------------------ > > +ASM_GLOBAL ASM_PFX(CpuSleep) > > + > > +ASM_PFX(CpuSleep): > > + idle 0 > > + jirl $zero, $ra, 0 > > + .end > > -- > 2.27.0
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#94235): https://edk2.groups.io/g/devel/message/94235 Mute This Topic: https://groups.io/mt/93674240/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-