--
Thanks,
Chao
------------------------
Hi Li,I had went through the whole patch set and gave feedbacks to the patch respectively. Apart from those comments, I have no problems with this contribution. I think we can adopt LoongArch port in the mainstream edk2 repo after the comments are addressed and the corresponding spec defined in UEFI spec unless any objections from others.ThanksAbnerFrom: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Chao Li <lichao@loongson.cn>Sent: Wednesday, February 9, 2022 2:51 PMTo: devel@edk2.groups.io <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: [edk2-devel] [staging/LoongArch RESEND PATCH v1 00/33] Add a new architecture called LoongArch in EDK IIThis new Arch should go through the EDK II Code First Process and thenthe USWG can review our ECR. This commit contains 34 patchs, patch 0 isthe cover, patch 33 is Readme modification, and the others are the newArch support.Modified modules: FatPkg, FmpDevicePkg, NetworkPkg,NetworkPkg/HttpBootDxe, CryptoPkg, MdePkg/Include, SecurityPkg,ShellPkg, UnitTestFrameworkPkg, MdePkg/DxeServicesLib, MdeModulePkg,.python/SpellCheck, BaseTools, .azurepipelines, .pytool, MdePkg,MdeModulePkg.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 (33):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 architectureMdeModulePkg: Use LockBoxNullLib for LOONGARCH64.python/SpellCheck: Add "Loongson" and "LOONGARCH" to "words" sectionBaseTools: 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 bindingMdePkg/Include: LoongArch definitions.MdePkg/BaseLib: BaseLib for LOONGARCH64 architecture.MdePkg/BaseCacheMaintenanceLib: LoongArch cache maintenanceimplementation.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 forBaseSafeIntLib.MdeModulePkg/Logo: Add LoongArch64 architecture.MdeModulePkg/CapsuleRuntimeDxe: Add LoongArch64 architecture.MdeModulePkg/DxeIplPeim : LoongArch DxeIPL implementation.NetworkPkg: Add LoongArch64 architecture.BaseTools: Add LoongArch64 binding.Readme: Update the readme.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 | 43 ++-.../LinuxGcc5ToolChain/LinuxGcc5ToolChain.py | 31 +++BaseTools/Source/C/Common/BasePeCoff.c | 15 +-BaseTools/Source/C/Common/PeCoffLoaderEx.c | 76 ++++++BaseTools/Source/C/GNUmakefile | 3 +BaseTools/Source/C/GenFv/GenFvInternalLib.c | 128 ++++++++-BaseTools/Source/C/GenFw/Elf64Convert.c | 153 ++++++++++-BaseTools/Source/C/GenFw/elf_common.h | 58 ++++.../C/Include/IndustryStandard/PeImage.h | 57 ++--.../C/Include/LoongArch64/ProcessorBind.h | 80 ++++++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 | 61 +++++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 | 121 +++++++++MdePkg/Include/Protocol/DebugSupport.h | 65 ++++-MdePkg/Include/Protocol/PxeBaseCode.h | 3 +MdePkg/Include/Uefi/UefiBaseType.h | 14 +MdePkg/Include/Uefi/UefiSpec.h | 16 +-.../BaseCacheMaintenanceLib.inf | 4 +.../BaseCacheMaintenanceLib/LoongArchCache.c | 253 ++++++++++++++++++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 | 244 +++++++++++++++++MdePkg/Library/BasePeCoffLib/BasePeCoff.c | 3 +-.../Library/BasePeCoffLib/BasePeCoffLib.inf | 5 +.../Library/BasePeCoffLib/BasePeCoffLib.uni | 2 +.../BasePeCoffLib/LoongArch/PeCoffLoaderEx.c | 132 +++++++++.../Library/BaseSafeIntLib/BaseSafeIntLib.inf | 9 +-.../BaseSynchronizationLib.inf | 5 +.../LoongArch64/Synchronization.c | 239 +++++++++++++++++.../Library/DxeServicesLib/DxeServicesLib.inf | 4 +-MdePkg/MdePkg.dec | 4 +MdePkg/MdePkg.dsc | 3 +-NetworkPkg/HttpBootDxe/HttpBootDhcp4.h | 3 +NetworkPkg/Network.dsc.inc | 3 +-NetworkPkg/NetworkPkg.dsc | 3 +-ReadMe.md | 17 ++SecurityPkg/SecurityPkg.dsc | 3 +-ShellPkg/ShellPkg.dsc | 3 +-UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc | 3 +-79 files changed, 2340 insertions(+), 110 deletions(-)create mode 100644 BaseTools/Bin/gcc_loongarch64_unknown_linux_ext_dep.yamlcreate mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.hcreate mode 100644 MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.ccreate mode 100644 MdePkg/Include/LoongArch64/ProcessorBind.hcreate mode 100644 MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCache.ccreate mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuFlushTlb.Screate mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/CpuSleep.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuBreakpoint.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/CpuPause.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/DisableInterrupts.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/EnableInterrupts.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/GetInterruptState.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/InternalSwitchStack.ccreate mode 100644 MdePkg/Library/BaseLib/LoongArch64/MemoryFence.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/SetJumpLongJump.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/SwitchStack.Screate mode 100644 MdePkg/Library/BaseLib/LoongArch64/Unaligned.ccreate mode 100644 MdePkg/Library/BasePeCoffLib/LoongArch/PeCoffLoaderEx.ccreate mode 100644 MdePkg/Library/BaseSynchronizationLib/LoongArch64/Synchronization.ccreate mode 100644 ReadMe.md--2.27.0