Hi All,
The LoongArch code repo is in GitHub, REF: https://github.com/loongson/edk2/tree/LoongArch, there is a PR, URL: https://github.com/loongson/edk2/pull/1.
Thanks,
Chao
--
----------------------------原始邮件----------------------------
UEFI Spec V2.10 already supports LoongArch and all changes of this commit passwed Azure CI testing, so let's enable it in EDK2. This commit contains 35 patchs, with patch 0 is the cover and the rest being the LoongArch base code. Modified modules: FatPkg, FmpDevicePkg, NetworkPkg, NetworkPkg/HttpBootDxe, CryptoPkg, MdePkg/Include, SecurityPkg, ShellPkg, UnitTestFrameworkPkg, MdePkg/DxeServicesLib, MdeModulePkg, .python/SpellCheck, BaseTools, .azurepipelines, .pytool, MdePkg, MdeModulePkg and MdePkg/MdePkg.ci.yaml. Cc: Ray Ni Cc: Liming Gao Cc: Michael D Kinney Cc: Guomin Jiang Cc: Wei6 Xu Cc: Maciej Rabeda Cc: Jiaxin Wu Cc: Siyuan Fu Cc: Jiewen Yao Cc: Jian J Wang Cc: Xiaoyu Lu Cc: Zhiguang Liu Cc: Zhichao Gao Cc: Bob Feng Cc: Yuwei Chen Chao Li (34): MdePkg: Added file of DebugSupport.h to MdePkg.ci.yaml MdePkg: Added LoongArch jump buffer register definition to MdePkg.ci.yaml FatPkg: Add LOONGARCH64 architecture for EDK2 CI. FmpDevicePkg: Add LOONGARCH64 architecture for EDK2 CI. NetworkPkg: Add LOONGARCH64 architecture for EDK2 CI. NetworkPkg/HttpBootDxe: Add LOONGARCH64 architecture for EDK2 CI. CryptoPkg: Add LOONGARCH64 architecture for EDK2 CI. MdePkg/Include: Add LOONGARCH related definitions EDK2 CI. SecurityPkg: Add LOONGARCH64 architecture for EDK2 CI. ShellPkg: Add LOONGARCH64 architecture for EDK2 CI. UnitTestFrameworkPkg: Add LOONGARCH64 architecture for EDK2 CI. MdePkg/DxeServicesLib: Add LOONGARCH64 architecture MdeModulePkg: Use LockBoxNullLib for LOONGARCH64 .python/SpellCheck: Add "Loongson" and "LOONGARCH" to "words" section BaseTools: BaseTools changes for LoongArch platform. BaseTools: BaseTools changes for LoongArch platform. BaseTools: BaseTools changes for LoongArch platform. BaseTools: Enable LoongArch64 architecture for LoongArch64 EDK2 CI. .azurepipelines: Add LoongArch64 architecture on LoongArch64 EDK2 CI. .pytool: Add LoongArch64 architecture on LoongArch64 EDK2 CI. MdePkg: Add LoongArch LOONGARCH64 binding MdePkg/Include: LoongArch definitions. MdePkg/BaseLib: BaseLib for LOONGARCH64 architecture. MdePkg/BaseCacheMaintenanceLib: LoongArch cache maintenance implementation. MdePkg/BaseIoLibIntrinsic: IoLibNoIo for LoongArch architecture. MdePkg/BasePeCoff: Add LoongArch PE/Coff related code. MdePkg/BaseCpuLib: LoongArch Base CPU library implementation. MdePkg/BaseSynchronizationLib: LoongArch cache related code. MdePkg/BaseSafeIntLib: Add LoongArch64 architecture for BaseSafeIntLib. MdeModulePkg/Logo: Add LoongArch64 architecture. MdeModulePkg/CapsuleRuntimeDxe: Add LoongArch64 architecture. MdeModulePkg/DxeIplPeim : LoongArch DxeIPL implementation. NetworkPkg: Add LoongArch64 architecture. BaseTools: Add LoongArch64 binding. .azurepipelines/Ubuntu-GCC5.yml | 3 +- .pytool/CISettings.py | 5 +- .pytool/Plugin/SpellCheck/cspell.base.yaml | 4 +- ...gcc_loongarch64_unknown_linux_ext_dep.yaml | 22 ++ BaseTools/Conf/tools_def.template | 54 +++- .../LinuxGcc5ToolChain/LinuxGcc5ToolChain.py | 31 ++ BaseTools/Source/C/Common/BasePeCoff.c | 15 +- BaseTools/Source/C/Common/PeCoffLoaderEx.c | 79 +++++ BaseTools/Source/C/GNUmakefile | 3 + BaseTools/Source/C/GenFv/GenFvInternalLib.c | 125 +++++++- BaseTools/Source/C/GenFw/Elf64Convert.c | 293 +++++++++++++++++- BaseTools/Source/C/GenFw/elf_common.h | 94 ++++++ .../C/Include/IndustryStandard/PeImage.h | 57 ++-- .../C/Include/LoongArch64/ProcessorBind.h | 80 +++++ BaseTools/Source/C/Makefiles/header.makefile | 6 + BaseTools/Source/Python/Common/DataType.py | 21 +- .../Source/Python/UPT/Library/DataType.py | 24 +- BaseTools/Source/Python/build/buildoptions.py | 3 +- CryptoPkg/CryptoPkg.dsc | 3 +- .../Library/BaseCryptLib/BaseCryptLib.inf | 6 +- .../Library/BaseCryptLib/RuntimeCryptLib.inf | 4 + .../BaseCryptLibNull/BaseCryptLibNull.inf | 3 +- .../BaseCryptLibOnProtocolPpi/DxeCryptLib.inf | 3 +- .../BaseCryptLibOnProtocolPpi/PeiCryptLib.inf | 3 +- CryptoPkg/Library/Include/CrtLibSupport.h | 3 +- CryptoPkg/Library/OpensslLib/OpensslLib.inf | 2 + .../Library/OpensslLib/OpensslLibCrypto.inf | 2 + CryptoPkg/Library/TlsLib/TlsLib.inf | 3 +- CryptoPkg/Library/TlsLibNull/TlsLibNull.inf | 3 +- FatPkg/FatPkg.dsc | 3 +- FmpDevicePkg/FmpDevicePkg.dsc | 3 +- MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf | 6 +- .../Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c | 63 ++++ MdeModulePkg/Logo/Logo.inf | 3 +- MdeModulePkg/MdeModulePkg.dsc | 4 +- .../CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf | 9 +- MdePkg/Include/IndustryStandard/Dhcp.h | 41 +-- MdePkg/Include/IndustryStandard/PeImage.h | 9 + MdePkg/Include/Library/BaseLib.h | 24 ++ MdePkg/Include/LoongArch64/ProcessorBind.h | 120 +++++++ MdePkg/Include/Protocol/DebugSupport.h | 107 ++++++- MdePkg/Include/Protocol/PxeBaseCode.h | 3 + MdePkg/Include/Uefi/UefiBaseType.h | 14 + MdePkg/Include/Uefi/UefiSpec.h | 16 +- .../BaseCacheMaintenanceLib.inf | 4 + .../BaseCacheMaintenanceLib/LoongArchCache.c | 252 +++++++++++++++ MdePkg/Library/BaseCpuLib/BaseCpuLib.inf | 7 +- MdePkg/Library/BaseCpuLib/BaseCpuLib.uni | 5 +- .../BaseCpuLib/LoongArch/CpuFlushTlb.S | 15 + .../Library/BaseCpuLib/LoongArch/CpuSleep.S | 15 + .../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf | 10 +- MdePkg/Library/BaseIoLibIntrinsic/IoLibNoIo.c | 3 +- MdePkg/Library/BaseLib/BaseLib.inf | 13 + .../BaseLib/LoongArch64/CpuBreakpoint.S | 24 ++ MdePkg/Library/BaseLib/LoongArch64/CpuPause.S | 31 ++ .../BaseLib/LoongArch64/DisableInterrupts.S | 21 ++ .../BaseLib/LoongArch64/EnableInterrupts.S | 21 ++ .../BaseLib/LoongArch64/GetInterruptState.S | 35 +++ .../BaseLib/LoongArch64/InternalSwitchStack.c | 58 ++++ .../Library/BaseLib/LoongArch64/MemoryFence.S | 19 ++ .../BaseLib/LoongArch64/SetJumpLongJump.S | 49 +++ .../Library/BaseLib/LoongArch64/SwitchStack.S | 39 +++ .../Library/BaseLib/LoongArch64/Unaligned.c | 242 +++++++++++++++ MdePkg/Library/BasePeCoffLib/BasePeCoff.c | 3 +- .../Library/BasePeCoffLib/BasePeCoffLib.inf | 5 + .../Library/BasePeCoffLib/BasePeCoffLib.uni | 2 + .../BasePeCoffLib/LoongArch/PeCoffLoaderEx.c | 137 ++++++++ .../Library/BaseSafeIntLib/BaseSafeIntLib.inf | 9 +- .../BaseSynchronizationLib.inf | 5 + .../LoongArch64/Synchronization.c | 246 +++++++++++++++ .../Library/DxeServicesLib/DxeServicesLib.inf | 4 +- MdePkg/MdePkg.ci.yaml | 13 + MdePkg/MdePkg.dec | 4 + MdePkg/MdePkg.dsc | 3 +- NetworkPkg/HttpBootDxe/HttpBootDhcp4.h | 3 + NetworkPkg/Network.dsc.inc | 3 +- NetworkPkg/NetworkPkg.dsc | 3 +- SecurityPkg/SecurityPkg.dsc | 3 +- ShellPkg/ShellPkg.dsc | 3 +- UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc | 3 +- 80 files changed, 2576 insertions(+), 115 deletions(-) create mode 100644 BaseTools/Bin/gcc_loongarch64_unknown_linux_ext_dep.yaml create mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h create mode 100644 MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c create mode 100644 MdePkg/Include/LoongArch64/ProcessorBind.h create mode 100644 MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.c create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.S create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuBreakpoint.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuPause.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/DisableInterrupts.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/EnableInterrupts.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/GetInterruptState.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/InternalSwitchStack.c create mode 100644 MdePkg/Library/BaseLib/LoongArch64/MemoryFence.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/SetJumpLongJump.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/SwitchStack.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Unaligned.c create mode 100644 MdePkg/Library/BasePeCoffLib/LoongArch/PeCoffLoaderEx.c create mode 100644 MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronization.c -- 2.27.0