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 <ray.ni@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Guomin Jiang <guomin.jiang@intel.com>
Cc: Wei6 Xu <wei6.xu@intel.com>
Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyu1.lu@intel.com>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Yuwei Chen <yuwei.chen@intel.com>
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
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#93481): https://edk2.groups.io/g/devel/message/93481
Mute This Topic: https://groups.io/mt/93542506/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-