From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from loongson.cn (loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web12.3369.1665459180848880156 for ; Mon, 10 Oct 2022 20:33:01 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: loongson.cn, ip: 114.242.206.163, mailfrom: lichao@loongson.cn) Received: from lichao-PC (unknown [10.40.24.149]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Dx_2vp40RjPaMqAA--.20995S2; Tue, 11 Oct 2022 11:32:57 +0800 (CST) Date: Tue, 11 Oct 2022 11:32:49 +0800 From: "Chao Li" To: "=?utf-8?Q?devel=40edk2.groups.io?=" , "=?utf-8?Q?lichao=40loongson.cn?=" Cc: "=?utf-8?Q?=22_devel=40edk2.groups.io_=22?=" , =?utf-8?Q?=22Ray=5FNi=22?= , =?utf-8?Q?=22Liming=5FGao=22?= , =?utf-8?Q?=22Michael=5FD=5FKinney=22?= , =?utf-8?Q?=22Guomin=5FJiang=22?= , =?utf-8?Q?=22Wei6=5FXu=22?= , =?utf-8?Q?=22Maciej=5FRabeda=22?= , =?utf-8?Q?=22Jiaxin=5FWu=22?= , =?utf-8?Q?=22Siyuan=5FFu=22?= , =?utf-8?Q?=22Jiewen=5FYao=22?= , =?utf-8?Q?=22Jian=5FJ=5FWang=22?= , =?utf-8?Q?=22Xiaoyu=5FLu=22?= , =?utf-8?Q?=22Zhiguang=5FLiu=22?= , =?utf-8?Q?=22Zhichao=5FGao=22?= , =?utf-8?Q?=22Bob=5FFeng=22?= , =?utf-8?Q?=22Yuwei=5FChen=22?= Message-ID: <8E708030-54F4-491F-8A87-08A00CC89660@getmailspring.com> In-Reply-To: <171BFD106AA206F3.26570@groups.io> References: <171BFD106AA206F3.26570@groups.io> Subject: Re: [edk2-devel] [PATCH v3 00/34] Add a new architecture called LoongArch in EDK II X-Mailer: Mailspring MIME-Version: 1.0 X-CM-TRANSID: AQAAf8Dx_2vp40RjPaMqAA--.20995S2 X-Coremail-Antispam: 1UD129KBjvAXoW3tr48Jr4UKFWkGFy7Jw4Utwb_yoW8GF48Jo Z7Jayxur48Xw1fZ3ykCwsxJFW2gaySkr4fXr4Iqa4UJF4UA3W7Kws8A3W5WrW5XF90kwn8 Wa4rW39FkFZrtr1rn29KB7ZKAUJUUUU8529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUUOg7k0a2IF6F4UM7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0 x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj4 1l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0 I7IYx2IY6xkF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4 vEx4A2jsIEc7CjxVAFwI0_Cr1j6rxdM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVAY j202j2C_Jr0_Gr1l5I8CrVAaz4v26cxKscIFY7kG0wAqx4xG64xvF2IEw4CE5I8CrVC2j2 Wl5I8CrVAKz4kIr2xC04v26r4j6ryUMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l7480Y4vEI4 kI2Ix0rVAqx4xJMxkIecxEwVCm-wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWU JVW8JwC20s026c02F40E14v26r106r1rMI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67 kF1VAFwI0_GFv_WrylIxkvb40EIxkG14v26r4j6ryUMIIYrxkI7VAKI48JMIIF0xvE2Ix0 cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42xK8V AvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E 14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x07jrmiiUUUUU= X-CM-SenderInfo: xolfxt3r6o00pqjv00gofq/1tbiAQAQCGNEC18KPgADsd Content-Type: multipart/alternative; boundary="6344e3e1_29f168d0_9d8c" --6344e3e1_29f168d0_9d8c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi All, I have created a PR in EDK2 repo: https://github.com/tianocore/edk2/pull/34= 57 (https://link.getmailspring.com/link/8E708030-54F4-491F-8A87-08A00CC8966= 0@getmailspring.com/0?redirect=3Dhttps%3A%2F%2Fgithub.com%2Ftianocore%2Fedk= 2%2Fpull%2F3457&recipient=3DZGV2ZWxAZWRrMi5ncm91cHMuaW8%3D), and all the ED= K2 CI passed, so I think LoongArch port is ready to be enabled, I request t= o merge the LoongArch base code into EDK2 master branch. Thanks, Chao -------- On 10=E6=9C=88 8 2022, at 12:18 =E4=B8=AD=E5=8D=88, "Chao Li" wrote: > Hi All, > I have updated LoongArch repo, the CI has passed, please check again: > https://dev.azure.com/kilaterlee/LoongArch_edk2/_build/results?buildId=3D= 77&view=3Dresults (https://link.getmailspring.com/link/8E708030-54F4-491F-8= A87-08A00CC89660@getmailspring.com/1?redirect=3Dhttps%3A%2F%2Flink.getmails= pring.com%2Flink%2FF2807860-FE79-4500-AAAC-A40889944AEC%40getmailspring.com= %2F0%3Fredirect%3Dhttps%253A%252F%252Fdev.azure.com%252Fkilaterlee%252FLoon= gArch_edk2%252F_build%252Fresults%253FbuildId%253D77%2526view%253Dresults%2= 6recipient%3DZGV2ZWxAZWRrMi5ncm91cHMuaW8%253D&recipient=3DZGV2ZWxAZWRrMi5nc= m91cHMuaW8%3D) > > > > Thanks, > Chao > -------- > > On 10=E6=9C=88 1 2022, at 8:54 =E6=97=A9=E4=B8=8A, "Chao Li" wrote: > > Hi All, > > Today, all of LoongArch patches have been approved, a big thank you to = all the maintainers! > > > > I have updated the LoongArch code repo to the EDK2 latest commit, appli= ed the LoongArch patches based on it, and CI passed. > > LoongArch repo URL: https://github.com/loongson/edk2/tree/LoongArch > > CI results: https://dev.azure.com/kilaterlee/LoongArch_edk2/_build/resu= lts?buildId=3D75&view=3Dresults > > > > I think the LoongArch port is ready to merge into the EDK2 master branc= h, if so please help me merge them. Please let me know if something should = I do next. > > > > -- > > Thanks, > > Chao > > > > > -----=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6----- > > > =E5=8F=91=E4=BB=B6=E4=BA=BA: "Chao Li" > > > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4:2022-09-27 19:13:20 (=E6=98=9F= =E6=9C=9F=E4=BA=8C) > > > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io > > > =E6=8A=84=E9=80=81: "Ray Ni" , "Liming Gao" , "Michael D Kinney" , "Guom= in Jiang" , "Wei6 Xu" , "Maciej = Rabeda" , "Jiaxin Wu" ,= "Siyuan Fu" , "Jiewen Yao" , "J= ian J Wang" , "Xiaoyu Lu" , "Z= higuang Liu" , "Zhichao Gao" , "Bob Feng" , "Yuwei Chen" > > > =E4=B8=BB=E9=A2=98: [edk2-devel] [PATCH v3 00/34] Add a new architect= ure called LoongArch in EDK II > > > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4053 > > > > > > 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 com= mit > > > contains 35 patches, with patch 0 is the cover and the rest being the > > > LoongArch base code. > > > > > > Changes from v1 to v2: > > > 1. For patch 0008, added IANA website link in the commit message and > > > Dhcp.h. > > > 2. Added IANA, Microsft and UEFI specification links in every patch > > > commit message that uses them. > > > 3. For patch 0023, LoongArch64 supports unaligned access operations, = so > > > use the unaligned read/write generic implementation. Added Barrier.S > > > file to provide barrier operations for LoongArch. > > > 4. For patch 0024, convert inline assembly code to ASM code. > > > 5. Added the BZ link in every patch commit message. > > > > > > Changes from v2 to v3: > > > 1. Added all reviewer in the correspondings patches. > > > 2. For patch 0029, converted LoongArch synchronization operations fro= m > > > inline assembly code to ASM code. > > > 3. For patch 0015, 0016, 0017, changed the commit message for more > > > clarity. > > > 4. For patch 0034, move it to patch 0018, as it also changes the Base= Tools. > > > > > > Please refer to this URL for the code repo of LoongArch64: > > > https://github.com/loongson/edk2/tree/LoongArch > > > > > > Fore more documents of LoongArch please refer to following URL: > > > https://loongson.github.io/LoongArch-Documentation/README-EN.html > > > > > > 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: Update GenFw/GenFv to support LoongArch platform. > > > BaseTools: Updated for GCC5 tool chain for LoongArch platfrom. > > > BaseTools: Updated build tools to support new LoongArch. > > > BaseTools: Add LoongArch64 binding. > > > 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. > > > > > > .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 | 45 +-- > > > 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 | 6 +- > > > .../BaseCacheMaintenanceLib/LoongArchCache.c | 254 +++++++++++++++ > > > 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 | 16 +- > > > MdePkg/Library/BaseLib/LoongArch64/Barrier.S | 28 ++ > > > .../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 | 18 ++ > > > .../BaseLib/LoongArch64/SetJumpLongJump.S | 49 +++ > > > .../Library/BaseLib/LoongArch64/SwitchStack.S | 39 +++ > > > 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 | 6 + > > > .../LoongArch64/AsmSynchronization.S | 122 ++++++++ > > > .../LoongArch64/Synchronization.c | 233 ++++++++++++++ > > > .../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 +- > > > 81 files changed, 2478 insertions(+), 119 deletions(-) > > > create mode 100644 BaseTools/Bin/gcc_loongarch64_unknown_linux_ext_de= p.yaml > > > create mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBi= nd.h > > > create mode 100644 MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFu= nc.c > > > create mode 100644 MdePkg/Include/LoongArch64/ProcessorBind.h > > > create mode 100644 MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCa= che.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/Barrier.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/DisableInterrup= ts.S > > > create mode 100644 MdePkg/Library/BaseLib/LoongArch64/EnableInterrupt= s.S > > > create mode 100644 MdePkg/Library/BaseLib/LoongArch64/GetInterruptSta= te.S > > > create mode 100644 MdePkg/Library/BaseLib/LoongArch64/InternalSwitchS= tack.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/BasePeCoffLib/LoongArch/PeCoffLoade= rEx.c > > > create mode 100644 MdePkg/Library/BaseSynchronizationLib/LoongArch64/= AsmSynchronization.S > > > create mode 100644 MdePkg/Library/BaseSynchronizationLib/LoongArch64/= Synchronization.c > > > > > > -- > > > 2.27.0 > > > > > > > > > > > > > > > > > > > > > =E6=9C=AC=E9=82=AE=E4=BB=B6=E5=8F=8A=E5=85=B6=E9=99=84=E4=BB=B6=E5=90= =AB=E6=9C=89=E9=BE=99=E8=8A=AF=E4=B8=AD=E7=A7=91=E7=9A=84=E5=95=86=E4=B8=9A= =E7=A7=98=E5=AF=86=E4=BF=A1=E6=81=AF=EF=BC=8C=E4=BB=85=E9=99=90=E4=BA=8E=E5= =8F=91=E9=80=81=E7=BB=99=E4=B8=8A=E9=9D=A2=E5=9C=B0=E5=9D=80=E4=B8=AD=E5=88= =97=E5=87=BA=E7=9A=84=E4=B8=AA=E4=BA=BA=E6=88=96=E7=BE=A4=E7=BB=84=E3=80=82= =E7=A6=81=E6=AD=A2=E4=BB=BB=E4=BD=95=E5=85=B6=E4=BB=96=E4=BA=BA=E4=BB=A5=E4= =BB=BB=E4=BD=95=E5=BD=A2=E5=BC=8F=E4=BD=BF=E7=94=A8=EF=BC=88=E5=8C=85=E6=8B= =AC=E4=BD=86=E4=B8=8D=E9=99=90=E4=BA=8E=E5=85=A8=E9=83=A8=E6=88=96=E9=83=A8= =E5=88=86=E5=9C=B0=E6=B3=84=E9=9C=B2=E3=80=81=E5=A4=8D=E5=88=B6=E6=88=96=E6= =95=A3=E5=8F=91=EF=BC=89=E6=9C=AC=E9=82=AE=E4=BB=B6=E5=8F=8A=E5=85=B6=E9=99= =84=E4=BB=B6=E4=B8=AD=E7=9A=84=E4=BF=A1=E6=81=AF=E3=80=82=E5=A6=82=E6=9E=9C= =E6=82=A8=E9=94=99=E6=94=B6=E6=9C=AC=E9=82=AE=E4=BB=B6=EF=BC=8C=E8=AF=B7=E6= =82=A8=E7=AB=8B=E5=8D=B3=E7=94=B5=E8=AF=9D=E6=88=96=E9=82=AE=E4=BB=B6=E9=80= =9A=E7=9F=A5=E5=8F=91=E4=BB=B6=E4=BA=BA=E5=B9=B6=E5=88=A0=E9=99=A4=E6=9C=AC= =E9=82=AE=E4=BB=B6=E3=80=82 > > This email and its attachments contain confidential information from Lo= ongson Technology , which is intended only for the person or entity whose a= ddress is listed above. Any use of the information contained herein in any = way (including, but not limited to, total or partial disclosure, reproducti= on or dissemination) by persons other than the intended recipient(s) is pro= hibited. If you receive this email in error, please notify the sender by ph= one or email immediately and delete it. > > >=20 --6344e3e1_29f168d0_9d8c Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Hi All,
I have created a PR in EDK2 repo: https://github.com/tianocore/edk2/pull/3457= , and all the EDK2 CI passed, so I think LoongArch port is ready to be = enabled, I request to merge the LoongArch base code into EDK2 master branch= .


Thanks,
Chao
--------

<= /div>
On 10=E6=9C=88 8 2022, at 12:18= =E4=B8=AD=E5=8D=88, "Chao Li" <lichao@loongson.cn> wrote:
Hi All,
I have updated LoongArch repo, the CI has pas= sed, please check again:


<= div>Thanks,
Chao
--------

On 10=E6=9C=88 1 2022, at 8:54 =E6=97=A9=E4=B8=8A, "C= hao Li" <lichao@loongson.cn> wrote:
Hi All= ,
Today, all of LoongArch patches have been approved, a big thank= you to all the maintainers!

I have updated the LoongArch cod= e repo to the EDK2 latest commit, applied the LoongArch patches based on it= , and CI passed.

LoongArch repo URL: https://github.com/loong= son/edk2/tree/LoongArch
CI results: https://dev.azure.com/kilater= lee/LoongArch_edk2/_build/results?buildId=3D75&view=3Dresults

=
I think the LoongArch port is ready to merge into the EDK2 master bran= ch, if so please help me merge them. Please let me know if something should= I do next.


--
Thanks,
Chao

=
> -----=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6-----
> =E5= =8F=91=E4=BB=B6=E4=BA=BA: "Chao Li" <lichao@loongson.cn>
&g= t; =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4:2022-09-27 19:13:20 (=E6=98=9F=E6= =9C=9F=E4=BA=8C)
> =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.gro= ups.io
> =E6=8A=84=E9=80=81: "Ray Ni" <ray.ni@intel.com>= , "Liming Gao" <gaoliming@byosoft.com.cn>, "Michael D Kinney" <mic= hael.d.kinney@intel.com>, "Guomin Jiang" <guomin.jiang@intel.com>,= "Wei6 Xu" <wei6.xu@intel.com>, "Maciej Rabeda" <maciej.rabeda@lin= ux.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&= gt;, "Zhiguang Liu" <zhiguang.liu@intel.com>, "Zhichao Gao" <zhich= ao.gao@intel.com>, "Bob Feng" <bob.c.feng@intel.com>, "Yuwei Chen"= <yuwei.chen@intel.com>
> =E4=B8=BB=E9=A2=98: [edk2-deve= l] [PATCH v3 00/34] Add a new architecture called LoongArch in EDK II
=
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?i= d=3D4053
>
> UEFI Spec V2.10 already supports Loo= ngArch and all changes of this
> commit passwed Azure CI testi= ng, so let's enable it in EDK2. This commit
> contains 35 patc= hes, with patch 0 is the cover and the rest being the
> LoongA= rch base code.
>
> Changes from v1 to v2:
> 1. For patch 0008, added IANA website link in the commit message an= d
> Dhcp.h.
> 2. Added IANA, Microsft and UEFI sp= ecification links in every patch
> commit message that uses th= em.
> 3. For patch 0023, LoongArch64 supports unaligned access= operations, so
> use the unaligned read/write generic impleme= ntation. Added Barrier.S
> file to provide barrier operations = for LoongArch.
> 4. For patch 0024, convert inline assembly co= de to ASM code.
> 5. Added the BZ link in every patch commit m= essage.
>
> Changes from v2 to v3:
>= 1. Added all reviewer in the correspondings patches.
> 2. For= patch 0029, converted LoongArch synchronization operations from
= > inline assembly code to ASM code.
> 3. For patch 0015, 00= 16, 0017, changed the commit message for more
> clarity.
=
> 4. For patch 0034, move it to patch 0018, as it also changes the = BaseTools.
>
> Please refer to this URL for the c= ode repo of LoongArch64:
> https://github.com/loongson/edk2/tr= ee/LoongArch
>
> Fore more documents of LoongArch= please refer to following URL:
> https://loongson.github.io/L= oongArch-Documentation/README-EN.html
>
> Modifie= d modules: FatPkg, FmpDevicePkg, NetworkPkg,
> NetworkPkg/Http= BootDxe, CryptoPkg, MdePkg/Include, SecurityPkg,
> ShellPkg, U= nitTestFrameworkPkg, MdePkg/DxeServicesLib, MdeModulePkg,
> .p= ython/SpellCheck, BaseTools, .azurepipelines, .pytool, MdePkg,
&g= t; MdeModulePkg and MdePkg/MdePkg.ci.yaml.
>
> Cc= : Ray Ni <ray.ni@intel.com>
> Cc: Liming Gao <gaolimi= ng@byosoft.com.cn>
> Cc: Michael D Kinney <michael.d.kin= ney@intel.com>
> Cc: Guomin Jiang <guomin.jiang@intel.co= m>
> Cc: Wei6 Xu <wei6.xu@intel.com>
> C= c: Maciej Rabeda <maciej.rabeda@linux.intel.com>
> Cc: J= iaxin Wu <jiaxin.wu@intel.com>
> Cc: Siyuan Fu <siyua= n.fu@intel.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com&g= t;
> Cc: Jian J Wang <jian.j.wang@intel.com>
&= gt; Cc: Xiaoyu Lu <xiaoyu1.lu@intel.com>
> Cc: Zhiguang = Liu <zhiguang.liu@intel.com>
> Cc: Zhichao Gao <zhich= ao.gao@intel.com>
> Cc: Bob Feng <bob.c.feng@intel.com&g= t;
> Cc: Yuwei Chen <yuwei.chen@intel.com>
>= ;
> Chao Li (34):
> MdePkg: Added file of DebugSu= pport.h to MdePkg.ci.yaml
> MdePkg: Added LoongArch jump buffe= r register definition to
> MdePkg.ci.yaml
> FatPk= g: Add LOONGARCH64 architecture for EDK2 CI.
> FmpDevicePkg: A= dd LOONGARCH64 architecture for EDK2 CI.
> NetworkPkg: Add LOO= NGARCH64 architecture for EDK2 CI.
> NetworkPkg/HttpBootDxe: A= dd LOONGARCH64 architecture for EDK2 CI.
> CryptoPkg: Add LOON= GARCH64 architecture for EDK2 CI.
> MdePkg/Include: Add LOONGA= RCH related definitions EDK2 CI.
> SecurityPkg: Add LOONGARCH6= 4 architecture for EDK2 CI.
> ShellPkg: Add LOONGARCH64 archit= ecture for EDK2 CI.
> UnitTestFrameworkPkg: Add LOONGARCH64 ar= chitecture for EDK2 CI.
> MdePkg/DxeServicesLib: Add LOONGARCH= 64 architecture
> MdeModulePkg: Use LockBoxNullLib for LOONGAR= CH64
> .python/SpellCheck: Add "Loongson" and "LOONGARCH" to "= words" section
> BaseTools: Update GenFw/GenFv to support Loon= gArch platform.
> BaseTools: Updated for GCC5 tool chain for L= oongArch platfrom.
> BaseTools: Updated build tools to support= new LoongArch.
> BaseTools: Add LoongArch64 binding.
> BaseTools: Enable LoongArch64 architecture for LoongArch64 EDK2 CI.<= /div>
> .azurepipelines: Add LoongArch64 architecture on LoongArch64= EDK2 CI.
> .pytool: Add LoongArch64 architecture on LoongArch= 64 EDK2 CI.
> MdePkg: Add LoongArch LOONGARCH64 binding
<= div>> MdePkg/Include: LoongArch definitions.
> MdePkg/BaseL= ib: BaseLib for LOONGARCH64 architecture.
> MdePkg/BaseCacheMa= intenanceLib: LoongArch cache maintenance
> implementation.
> MdePkg/BaseIoLibIntrinsic: IoLibNoIo for LoongArch architectur= e.
> MdePkg/BasePeCoff: Add LoongArch PE/Coff related code.
> MdePkg/BaseCpuLib: LoongArch Base CPU library implementation.<= /div>
> MdePkg/BaseSynchronizationLib: LoongArch cache related code.=
> MdePkg/BaseSafeIntLib: Add LoongArch64 architecture for
> BaseSafeIntLib.
> MdeModulePkg/Logo: Add LoongArch= 64 architecture.
> MdeModulePkg/CapsuleRuntimeDxe: Add LoongAr= ch64 architecture.
> MdeModulePkg/DxeIplPeim : LoongArch DxeIP= L implementation.
> NetworkPkg: Add LoongArch64 architecture.<= /div>
>
> .azurepipelines/Ubuntu-GCC5.yml | 3 +-
<= div>> .pytool/CISettings.py | 5 +-
> .pytool/Plugin/SpellCh= eck/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 +++++
> BaseT= ools/Source/C/GNUmakefile | 3 +
> BaseTools/Source/C/GenFv/Gen= FvInternalLib.c | 125 +++++++-
> BaseTools/Source/C/GenFw/Elf6= 4Convert.c | 293 +++++++++++++++++-
> BaseTools/Source/C/GenFw= /elf_common.h | 94 ++++++
> .../C/Include/IndustryStandard/PeI= mage.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 +-
> Bas= eTools/Source/Python/build/buildoptions.py | 3 +-
> CryptoPkg/= CryptoPkg.dsc | 3 +-
> .../Library/BaseCryptLib/BaseCryptLib.i= nf | 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/Op= ensslLib/OpensslLib.inf | 2 +
> .../Library/OpensslLib/Openssl= LibCrypto.inf | 2 +
> CryptoPkg/Library/TlsLib/TlsLib.inf | 3 = +-
> CryptoPkg/Library/TlsLibNull/TlsLibNull.inf | 3 +-
<= div>> FatPkg/FatPkg.dsc | 3 +-
> FmpDevicePkg/FmpDevicePkg.= dsc | 3 +-
> MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf | 6 +-
> .../Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c | 63 ++++
<= div>> MdeModulePkg/Logo/Logo.inf | 3 +-
> MdeModulePkg/MdeM= odulePkg.dsc | 4 +-
> .../CapsuleRuntimeDxe/CapsuleRuntimeDxe.= inf | 9 +-
> MdePkg/Include/IndustryStandard/Dhcp.h | 45 +--
> MdePkg/Include/IndustryStandard/PeImage.h | 9 +
>= ; MdePkg/Include/Library/BaseLib.h | 24 ++
> MdePkg/Include/Lo= ongArch64/ProcessorBind.h | 120 +++++++
> MdePkg/Include/Proto= col/DebugSupport.h | 107 ++++++-
> MdePkg/Include/Protocol/Pxe= BaseCode.h | 3 +
> MdePkg/Include/Uefi/UefiBaseType.h | 14 +
> MdePkg/Include/Uefi/UefiSpec.h | 16 +-
> .../Bas= eCacheMaintenanceLib.inf | 6 +-
> .../BaseCacheMaintenanceLib/= LoongArchCache.c | 254 +++++++++++++++
> MdePkg/Library/BaseCp= uLib/BaseCpuLib.inf | 7 +-
> MdePkg/Library/BaseCpuLib/BaseCpu= Lib.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 | 16 +-
> MdePkg/Library/BaseLib/= LoongArch64/Barrier.S | 28 ++
> .../BaseLib/LoongArch64/CpuBre= akpoint.S | 24 ++
> MdePkg/Library/BaseLib/LoongArch64/CpuPaus= e.S | 31 ++
> .../BaseLib/LoongArch64/DisableInterrupts.S | 21= ++
> .../BaseLib/LoongArch64/EnableInterrupts.S | 21 ++
=
> .../BaseLib/LoongArch64/GetInterruptState.S | 35 +++
&g= t; .../BaseLib/LoongArch64/InternalSwitchStack.c | 58 ++++
> .= ../Library/BaseLib/LoongArch64/MemoryFence.S | 18 ++
> .../Bas= eLib/LoongArch64/SetJumpLongJump.S | 49 +++
> .../Library/Base= Lib/LoongArch64/SwitchStack.S | 39 +++
> MdePkg/Library/BasePe= CoffLib/BasePeCoff.c | 3 +-
> .../Library/BasePeCoffLib/BasePe= CoffLib.inf | 5 +
> .../Library/BasePeCoffLib/BasePeCoffLib.un= i | 2 +
> .../BasePeCoffLib/LoongArch/PeCoffLoaderEx.c | 137 += +++++++
> .../Library/BaseSafeIntLib/BaseSafeIntLib.inf | 9 +-=
> .../BaseSynchronizationLib.inf | 6 +
> .../Loo= ngArch64/AsmSynchronization.S | 122 ++++++++
> .../LoongArch64= /Synchronization.c | 233 ++++++++++++++
> .../Library/DxeServi= cesLib/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/NetworkPk= g.dsc | 3 +-
> SecurityPkg/SecurityPkg.dsc | 3 +-
&g= t; ShellPkg/ShellPkg.dsc | 3 +-
> UnitTestFrameworkPkg/UnitTes= tFrameworkPkg.dsc | 3 +-
> 81 files changed, 2478 insertions(+= ), 119 deletions(-)
> create mode 100644 BaseTools/Bin/gcc_loo= ngarch64_unknown_linux_ext_dep.yaml
> create mode 100644 BaseT= ools/Source/C/Include/LoongArch64/ProcessorBind.h
> create mod= e 100644 MdeModulePkg/Core/DxeIplPeim/LoongArch64/DxeLoadFunc.c
&= gt; create mode 100644 MdePkg/Include/LoongArch64/ProcessorBind.h
> create mode 100644 MdePkg/Library/BaseCacheMaintenanceLib/LoongArchCa= che.c
> create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch= /CpuFlushTlb.S
> create mode 100644 MdePkg/Library/BaseCpuLib/= LoongArch/CpuSleep.S
> create mode 100644 MdePkg/Library/BaseL= ib/LoongArch64/Barrier.S
> create mode 100644 MdePkg/Library/B= aseLib/LoongArch64/CpuBreakpoint.S
> create mode 100644 MdePkg= /Library/BaseLib/LoongArch64/CpuPause.S
> create mode 100644 M= dePkg/Library/BaseLib/LoongArch64/DisableInterrupts.S
> create= mode 100644 MdePkg/Library/BaseLib/LoongArch64/EnableInterrupts.S
> create mode 100644 MdePkg/Library/BaseLib/LoongArch64/GetInterruptSt= ate.S
> create mode 100644 MdePkg/Library/BaseLib/LoongArch64/= InternalSwitchStack.c
> create mode 100644 MdePkg/Library/Base= Lib/LoongArch64/MemoryFence.S
> create mode 100644 MdePkg/Libr= ary/BaseLib/LoongArch64/SetJumpLongJump.S
> create mode 100644= MdePkg/Library/BaseLib/LoongArch64/SwitchStack.S
> create mod= e 100644 MdePkg/Library/BasePeCoffLib/LoongArch/PeCoffLoaderEx.c
= > create mode 100644 MdePkg/Library/BaseSynchronizationLib/LoongArch64/A= smSynchronization.S
> create mode 100644 MdePkg/Library/BaseSy= nchronizationLib/LoongArch64/Synchronization.c
>
>= ; --
> 2.27.0
>
>
>
>
>


=E6=9C=AC=E9=82=AE=E4=BB=B6=E5= =8F=8A=E5=85=B6=E9=99=84=E4=BB=B6=E5=90=AB=E6=9C=89=E9=BE=99=E8=8A=AF=E4=B8= =AD=E7=A7=91=E7=9A=84=E5=95=86=E4=B8=9A=E7=A7=98=E5=AF=86=E4=BF=A1=E6=81=AF= =EF=BC=8C=E4=BB=85=E9=99=90=E4=BA=8E=E5=8F=91=E9=80=81=E7=BB=99=E4=B8=8A=E9= =9D=A2=E5=9C=B0=E5=9D=80=E4=B8=AD=E5=88=97=E5=87=BA=E7=9A=84=E4=B8=AA=E4=BA= =BA=E6=88=96=E7=BE=A4=E7=BB=84=E3=80=82=E7=A6=81=E6=AD=A2=E4=BB=BB=E4=BD=95= =E5=85=B6=E4=BB=96=E4=BA=BA=E4=BB=A5=E4=BB=BB=E4=BD=95=E5=BD=A2=E5=BC=8F=E4= =BD=BF=E7=94=A8=EF=BC=88=E5=8C=85=E6=8B=AC=E4=BD=86=E4=B8=8D=E9=99=90=E4=BA= =8E=E5=85=A8=E9=83=A8=E6=88=96=E9=83=A8=E5=88=86=E5=9C=B0=E6=B3=84=E9=9C=B2= =E3=80=81=E5=A4=8D=E5=88=B6=E6=88=96=E6=95=A3=E5=8F=91=EF=BC=89=E6=9C=AC=E9= =82=AE=E4=BB=B6=E5=8F=8A=E5=85=B6=E9=99=84=E4=BB=B6=E4=B8=AD=E7=9A=84=E4=BF= =A1=E6=81=AF=E3=80=82=E5=A6=82=E6=9E=9C=E6=82=A8=E9=94=99=E6=94=B6=E6=9C=AC= =E9=82=AE=E4=BB=B6=EF=BC=8C=E8=AF=B7=E6=82=A8=E7=AB=8B=E5=8D=B3=E7=94=B5=E8= =AF=9D=E6=88=96=E9=82=AE=E4=BB=B6=E9=80=9A=E7=9F=A5=E5=8F=91=E4=BB=B6=E4=BA= =BA=E5=B9=B6=E5=88=A0=E9=99=A4=E6=9C=AC=E9=82=AE=E4=BB=B6=E3=80=82
This email and its attachments contain confidential information from Loon= gson Technology , which is intended only for the person or entity whose add= ress is listed above. Any use of the information contained herein in any wa= y (including, but not limited to, total or partial disclosure, reproduction= or dissemination) by persons other than the intended recipient(s) is prohi= bited. If you receive this email in error, please notify the sender by phon= e or email immediately and delete it.

--6344e3e1_29f168d0_9d8c--