From: "Chao Li" <lichao@loongson.cn>
To: devel@edk2.groups.io
Cc: Ray Ni <ray.ni@intel.com>, Liming Gao <gaoliming@byosoft.com.cn>,
Michael D Kinney <michael.d.kinney@intel.com>,
Guomin Jiang <guomin.jiang@intel.com>,
Wei6 Xu <wei6.xu@intel.com>,
Maciej Rabeda <maciej.rabeda@linux.intel.com>,
Jiaxin Wu <jiaxin.wu@intel.com>, Siyuan Fu <siyuan.fu@intel.com>,
Jiewen Yao <jiewen.yao@intel.com>,
Jian J Wang <jian.j.wang@intel.com>,
Xiaoyu Lu <xiaoyu1.lu@intel.com>,
Zhiguang Liu <zhiguang.liu@intel.com>,
Zhichao Gao <zhichao.gao@intel.com>,
Bob Feng <bob.c.feng@intel.com>,
Yuwei Chen <yuwei.chen@intel.com>
Subject: [PATCH v1 00/34] Add a new architecture called LoongArch in EDK II
Date: Thu, 8 Sep 2022 12:47:27 +0800 [thread overview]
Message-ID: <20220908044801.1190586-1-lichao@loongson.cn> (raw)
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
next reply other threads:[~2022-09-08 4:48 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-08 4:47 Chao Li [this message]
2022-09-08 4:47 ` [PATCH v1 01/34] MdePkg: Added file of DebugSupport.h to MdePkg.ci.yaml Chao Li
2022-09-08 4:47 ` [PATCH v1 02/34] MdePkg: Added LoongArch jump buffer register definition " Chao Li
2022-09-08 4:47 ` [PATCH v1 03/34] FatPkg: Add LOONGARCH64 architecture for EDK2 CI Chao Li
2022-09-09 16:52 ` [edk2-devel] " Michael D Kinney
2022-09-08 4:47 ` [PATCH v1 04/34] FmpDevicePkg: " Chao Li
2022-09-09 17:10 ` [edk2-devel] " Michael D Kinney
2022-09-08 4:47 ` [PATCH v1 05/34] NetworkPkg: " Chao Li
2022-09-09 17:11 ` [edk2-devel] " Michael D Kinney
2022-09-23 8:06 ` Wu, Jiaxin
2022-09-08 4:47 ` [PATCH v1 06/34] NetworkPkg/HttpBootDxe: " Chao Li
2022-09-08 4:47 ` [PATCH v1 07/34] CryptoPkg: " Chao Li
2022-09-08 4:47 ` [PATCH v1 08/34] MdePkg/Include: Add LOONGARCH related definitions " Chao Li
2022-09-09 17:09 ` Michael D Kinney
2022-09-11 3:58 ` [edk2-devel] " Chao Li
2022-09-12 16:32 ` Michael D Kinney
2022-09-13 4:45 ` Chao Li
2022-09-08 4:47 ` [PATCH v1 09/34] SecurityPkg: Add LOONGARCH64 architecture for " Chao Li
2022-09-09 17:11 ` [edk2-devel] " Michael D Kinney
2022-09-08 4:47 ` [PATCH v1 10/34] ShellPkg: " Chao Li
2022-09-09 17:26 ` [edk2-devel] " Michael D Kinney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220908044801.1190586-1-lichao@loongson.cn \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox