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.web10.34109.1669021690788964209 for ; Mon, 21 Nov 2022 01:08:11 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: loongson.cn, ip: 114.242.206.163, mailfrom: lichao@loongson.cn) Received: from loongson.cn (unknown [10.40.24.149]) by gateway (Coremail) with SMTP id _____8Bx37f2P3tjGhIJAA--.20487S3; Mon, 21 Nov 2022 17:08:06 +0800 (CST) Received: from lichao-PC (unknown [10.40.24.149]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxPuLyP3tje4UXAA--.61479S2; Mon, 21 Nov 2022 17:08:02 +0800 (CST) Date: Mon, 21 Nov 2022 17:08:02 +0800 From: "Chao Li" To: =?utf-8?Q?=22gaoliming=22?= , =?utf-8?Q?=22Michael=5FD=5FKinney=22?= Cc: "=?utf-8?Q?devel=40edk2.groups.io?=" , Ard Biesheuvel , Bibo Mao , Leif Lindholm , xianglai li Message-ID: <6D61CEDC-93CE-4E0A-A5C9-0379EA53A7E9@getmailspring.com> In-Reply-To: References: Subject: Re: [edk2-platforms][PATCH V6 00/16] Platform: Add Loongson support. X-Mailer: Mailspring MIME-Version: 1.0 X-CM-TRANSID: AQAAf8DxPuLyP3tje4UXAA--.61479S2 X-CM-SenderInfo: xolfxt3r6o00pqjv00gofq/1tbiAQARCGN6GOUKrwAHse X-Coremail-Antispam: 1Uk129KBjvAXoW3ZF4DCFWkAw17Gw1rGFyxAFb_yoW8Gw4rZo W8JFZruw4UJr1fAa4v9wnxJrWxX3W2gw4Fqr40vFWUZFZIkryqqFs8Ja4xWF15ZFy3Aw15 G34rK3ykJFW2qrZ3n29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXasCq-sGcSsGvf J3Ec02F40Eb7x2x7xS6r1j6r4UMc02F40EFcxC0VAKzVAqx4xG6I80ewAqx4xG64kEw2xG 04xIwI0_Gr0_XrUv73VFW2AGmfu7bjvjm3AaLaJ3UjIYCTnIWjp_UUUYi7kC6x804xWl14 x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWU GVWUXwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14 v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAF wI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr1j6F4UJwAS0I0E0xvYzxvE52 x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI0UMc02F40Eb7x2x7xS6r1j6r4UMc02 F40EFcxC0VAKzVAqx4xG6I80ewAqx4xG64kEw2xG04xIwI0_Gr0_Xr1lYx0E2Ix0cI8IcV AFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG 0xvY0x0EwIxGrwCjr7xvwVCIw2I0I7xG6c02F41l42xK82IYc2Ij64vIr41l4I8I3I0E4I kC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUGVWUWwC20s026x8GjcxK67AKxVWUGVWU WwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr 0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWU JVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYx BIdaVFxhVjvjDU0xZFpf9x07jnpnQUUUUU= Content-Type: multipart/alternative; boundary="637b3ff2_7c225e2e_2a03" --637b3ff2_7c225e2e_2a03 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi Mike and Liming, After the LoongArch EDK2 base code was merged, I become one of the mainta= iners of LoongArch, but I don't have push permissions in the EDK2 Platfor= mes repo. How do we get the push permissions in EDK2 LoongArch folder and= EDK2 Platformes repo=3F LoongArch Maintainers: M: Chao Li =5Bkilaterlee=5D M: Baoqi Zhang =5Bzhangbaoqi-ls=5D R: Dongyan Qian =5BMarsDoge=5D Thanks, Chao -------- On 11=E6=9C=88 17 2022, at 10:39 =E4=B8=8A=E5=8D=88, xianglai li wrote: > RE=46: https://bugzilla.tianocore.org/show=5Fbug.cgi=3Fid=3D4054 > > The uploaded code generates firmware to support Linux launching on the = LoongArch platform under qemu, > So it will run in a virtual machine. > > LoongArch is the general processor architecture of Loongson. > You can get the latest LoongArch documents or LoongArch tools at https:= //github.com/loongson/. > > You can also view the code through the Loongson community. > The edk2 code in Loongson community: > https://github.com/loongson/edk2/tree/LoongArch > The edk2-platform code in Loonson community: > https://github.com/loongson/edk2-platforms > The qemu code in Loongson community: > https://gitlab.com/qemu-project/qemu.git > The LoongArch Documentation in Loongson community: > https://github.com/loongson/LoongArch-Documentation/tree/main/docs > The all patches at: > https://github.com/loongson/edk2-platforms/tree/devel-LoongArch-patch > > v2 changes: > - Remove the inline assembly from StableTimerLib. > - troubleshoot TAB strings, convert TAB characters to spaces. > - remove smm related code, loongarch has no smm mode. > > v3 changes: > - delete ExtractHandler related code. > - Boot UE=46I with low 256M memory. > - Modify common interrupt handling. > > v4 changes: > - Remove qemu flash related code. > - Modify fdt base address. > > v5 changes: > - Add Udf driver support. > - Split readme file into a separate patch. > - Modify the code style > - delete extra blank lines > - use the assembly function definition macros in MdePkg > - sort out the PCD variable Token value. > > v6 changes: > - Obtain the serial port base address by resolving fdt. > - Obtain the RTC base address by resolving fdt. > - Use the public 16550 serial port driver. > - Add Dxe Hob lib. > > Cc: Ard Biesheuvel > Cc: Bibo Mao > Cc: Chao Li > Cc: Leif Lindholm > Cc: Liming Gao > Cc: Michael D Kinney > > xianglai li (16): > Platform/Loongson: Add Serial Port library > Platform/Loongson: Support SEC > Platform/Loongson: Add PeiServicesTablePointerLib. > Platform/Loongson: Add Qemu=46wCfgLib. > Platform/Loongson: Add MmuLib. > Platform/Loongson: Add StableTimerLib. > Platform/Loongson: Support PEI phase. > Platform/Loongson: Add CPU DXE driver. > Platform/Loongson: Add PciCpuIoDxe driver. > Platform/Loongson: Add timer Dxe driver. > Platform/Loongson: Add RealTime Clock lib. > Platform/Loongson: Add Platform Boot Manager Lib. > Platform/Loongson: Add Reset System Lib. > Platform/Loongson: Add Hob Dxe Lib. > Platform/Loongson: Support Dxe > Platform/Loongson: Add Readme. > > .../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.c =7C 367 +++++++ > .../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.h =7C 199 ++++ > .../Drivers/CpuDxe/CpuDxe.inf =7C 59 ++ > .../Drivers/CpuDxe/LoongArch64/Exception.c =7C 335 +++++++ > .../Drivers/CpuDxe/LoongArch64/=46pu.S =7C 97 ++ > .../Drivers/CpuDxe/LoongArch64/LoongArch.S =7C 321 +++++++ > .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c =7C 538 +++++++++++ > .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.h =7C 207 ++++ > .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf =7C 44 + > .../Drivers/StableTimerDxe/Timer.c =7C 388 ++++++++ > .../Drivers/StableTimerDxe/Timer.h =7C 172 ++++ > .../Drivers/StableTimerDxe/TimerConfig.S =7C 38 + > .../Drivers/StableTimerDxe/TimerDxe.inf =7C 44 + > .../Include/Guid/Early16550UartBaseAddress.h =7C 22 + > .../LoongArchQemuPkg/Include/Library/Cpu.h =7C 237 +++++ > .../LoongArchQemuPkg/Include/Library/MmuLib.h =7C 85 ++ > .../Include/Library/Qemu=46wCfgLib.h =7C 174 ++++ > .../Include/Library/StableTimer.h =7C 59 ++ > .../=46dt16550SerialPortHookLib.c =7C 57 ++ > .../=46dt16550SerialPortHookLib.inf =7C 38 + > .../LsRealTimeClockLib/LsRealTimeClock.h =7C 40 + > .../LsRealTimeClockLib/LsRealTimeClockLib.c =7C 335 +++++++ > .../LsRealTimeClockLib/LsRealTimeClockLib.inf =7C 47 + > .../LoongArchQemuPkg/Library/MmuLib/Mmu.S =7C 155 +++ > .../Library/MmuLib/MmuBaseLib.inf =7C 40 + > .../Library/MmuLib/MmuBaseLibPei.inf =7C 47 + > .../Library/MmuLib/MmuLibCore.c =7C 831 ++++++++++++++++ > .../Library/MmuLib/MmuLibCore.h =7C 40 + > .../Library/MmuLib/MmuLibCorePei.c =7C 231 +++++ > .../LoongArchQemuPkg/Library/MmuLib/mmu.h =7C 190 ++++ > .../LoongArchQemuPkg/Library/MmuLib/page.h =7C 280 ++++++ > .../LoongArchQemuPkg/Library/MmuLib/pte.h =7C 57 ++ > .../PeiServicesTablePointer.c =7C 79 ++ > .../PeiServicesTablePointer.h =7C 39 + > .../PeiServicesTablePointerLib.S =7C 40 + > .../PeiServicesTablePointerLib.inf =7C 32 + > .../PlatformBootManagerLib/PlatformBm.c =7C 742 +++++++++++++++ > .../PlatformBootManagerLib/PlatformBm.h =7C 112 +++ > .../PlatformBootManagerLib.inf =7C 75 ++ > .../PlatformBootManagerLib/QemuKernel.c =7C 81 ++ > .../Qemu=46wCfgLib/Qemu=46wCfgLibInternal.h =7C 63 ++ > .../Library/Qemu=46wCfgLib/Qemu=46wCfgPei.c =7C 117 +++ > .../Library/Qemu=46wCfgLib/Qemu=46wCfgPeiLib.c =7C 463 +++++++++ > .../Library/Qemu=46wCfgLib/Qemu=46wCfgPeiLib.inf =7C 46 + > .../BaseResetSystemAcpiGed.c =7C 146 +++ > .../BaseResetSystemAcpiGedLib.inf =7C 37 + > .../DxeResetSystemAcpiGed.c =7C 257 +++++ > .../DxeResetSystemAcpiGedLib.inf =7C 41 + > .../ResetSystemAcpiLib/ResetSystemAcpiGed.c =7C 128 +++ > .../ResetSystemAcpiLib/ResetSystemAcpiGed.h =7C 23 + > .../SerialPortLib/EarlySerialPortLib16550.c =7C 900 ++++++++++++++++++ > .../SerialPortLib/EarlySerialPortLib16550.inf =7C 46 + > .../Library/StableTimerLib/Count.S =7C 52 + > .../Library/StableTimerLib/TimerLib.c =7C 236 +++++ > .../Library/StableTimerLib/TimerLib.inf =7C 32 + > .../Library/VirtDxeHobLib/HobLib.c =7C 590 ++++++++++++ > .../Library/VirtDxeHobLib/VirtDxeHobLib.inf =7C 34 + > .../Loongson/LoongArchQemuPkg/Loongson.dec =7C 76 ++ > .../Loongson/LoongArchQemuPkg/Loongson.dsc =7C 647 +++++++++++++ > .../Loongson/LoongArchQemuPkg/Loongson.fdf =7C 347 +++++++ > .../LoongArchQemuPkg/Loongson.fdf.inc =7C 29 + > .../LoongArchQemuPkg/PlatformPei/=46v.c =7C 58 ++ > .../LoongArchQemuPkg/PlatformPei/MemDetect.c =7C 104 ++ > .../LoongArchQemuPkg/PlatformPei/Platform.c =7C 433 +++++++++ > .../LoongArchQemuPkg/PlatformPei/Platform.h =7C 86 ++ > .../PlatformPei/PlatformPei.inf =7C 74 ++ > Platform/Loongson/LoongArchQemuPkg/Readme.md =7C 60 ++ > .../LoongArchQemuPkg/Sec/LoongArch64/Start.S =7C 84 ++ > .../Loongson/LoongArchQemuPkg/Sec/SecMain.c =7C 494 ++++++++++ > .../Loongson/LoongArchQemuPkg/Sec/SecMain.inf =7C 51 + > Readme.md =7C 9 + > 71 files changed, 12737 insertions(+) > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Cp= uDxe.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Cp= uDxe.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Cp= uDxe.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Lo= ongArch64/Exception.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Lo= ongArch64/=46pu.S > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Lo= ongArch64/LoongArch.S > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2= Dxe/PciCpuIo2Dxe.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2= Dxe/PciCpuIo2Dxe.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2= Dxe/PciCpuIo2Dxe.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTim= erDxe/Timer.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTim= erDxe/Timer.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTim= erDxe/TimerConfig.S > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTim= erDxe/TimerDxe.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Guid/Earl= y16550UartBaseAddress.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/C= pu.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/M= muLib.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/Q= emu=46wCfgLib.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Library/S= tableTimer.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/=46dt1655= 0SerialPortHookLib/=46dt16550SerialPortHookLib.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/=46dt1655= 0SerialPortHookLib/=46dt16550SerialPortHookLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTim= eClockLib/LsRealTimeClock.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTim= eClockLib/LsRealTimeClockLib.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTim= eClockLib/LsRealTimeClockLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mm= u.S > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mm= uBaseLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mm= uBaseLibPei.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mm= uLibCore.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mm= uLibCore.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mm= uLibCorePei.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/mm= u.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/pa= ge.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/pt= e.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiServic= esTablePointerLib/PeiServicesTablePointer.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiServic= esTablePointerLib/PeiServicesTablePointer.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiServic= esTablePointerLib/PeiServicesTablePointerLib.S > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiServic= esTablePointerLib/PeiServicesTablePointerLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformB= ootManagerLib/PlatformBm.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformB= ootManagerLib/PlatformBm.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformB= ootManagerLib/PlatformBootManagerLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PlatformB= ootManagerLib/QemuKernel.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/Qemu=46wC= fgLib/Qemu=46wCfgLibInternal.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/Qemu=46wC= fgLib/Qemu=46wCfgPei.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/Qemu=46wC= fgLib/Qemu=46wCfgPeiLib.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/Qemu=46wC= fgLib/Qemu=46wCfgPeiLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSyst= emAcpiLib/BaseResetSystemAcpiGed.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSyst= emAcpiLib/BaseResetSystemAcpiGedLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSyst= emAcpiLib/DxeResetSystemAcpiGed.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSyst= emAcpiLib/DxeResetSystemAcpiGedLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSyst= emAcpiLib/ResetSystemAcpiGed.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSyst= emAcpiLib/ResetSystemAcpiGed.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/SerialPor= tLib/EarlySerialPortLib16550.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/SerialPor= tLib/EarlySerialPortLib16550.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/StableTim= erLib/Count.S > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/StableTim= erLib/TimerLib.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/StableTim= erLib/TimerLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/VirtDxeHo= bLib/HobLib.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/VirtDxeHo= bLib/VirtDxeHobLib.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dec > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dsc > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc > create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/=46v.= c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDe= tect.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Platf= orm.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Platf= orm.h > create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Platf= ormPei.inf > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Readme.md > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/LoongArch64/S= tart.S > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c > create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.inf > > -- > 2.31.1 > --637b3ff2_7c225e2e_2a03 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Hi Mike and Liming,
After the LoongArch EDK2 base code was= merged, I become one of the maintainers of LoongArch, but I don't have p= ush permissions in the EDK2 Platformes repo. How do we get the push permi= ssions in EDK2 LoongArch folder and EDK2 Platformes repo=3F

LoongArch Maintainers:=
M: Chao Li <lichao=40loongso= n.cn> =5Bkilaterlee=5D
M: Baoqi Zhang <zhangbaoqi=40loongson.cn> =5Bzhangbaoqi-ls=5D=
R: Dongyan Qian &l= t;qiandongyan=40loongson.cn> =5BMarsDoge=5D


Thanks,
Chao
--------

On 11=E6=9C=88 17 2022, at 10:3= 9 =E4=B8=8A=E5=8D=88, xianglai li <lixianglai=40loongson.cn> wrote:=
RE=46: https://bugzilla.tianocore.org/show=5F= bug.cgi=3Fid=3D4054

The uploaded code generates firmware to= support Linux launching on the LoongArch platform under qemu,
= So it will run in a virtual machine.

LoongArch is the gener= al processor architecture of Loongson.
You can get the latest L= oongArch documents or LoongArch tools at https://github.com/loongson/.
You can also view the code through the Loongson community.
The edk2 code in Loongson community:
https://github.com= /loongson/edk2/tree/LoongArch
The edk2-platform code in Loonson= community:
https://github.com/loongson/edk2-platforms
The qemu code in Loongson community:
https://gitlab.com/qemu-= project/qemu.git
The LoongArch Documentation in Loongson commun= ity:
https://github.com/loongson/LoongArch-Documentation/tree/m= ain/docs
The all patches at:
https://github.com/loong= son/edk2-platforms/tree/devel-LoongArch-patch

v2 changes:
- Remove the inline assembly from StableTimerLib.
- tr= oubleshoot TAB strings, convert TAB characters to spaces.
- rem= ove smm related code, loongarch has no smm mode.

v3 changes= :
- delete ExtractHandler related code.
- Boot UE=46I= with low 256M memory.
- Modify common interrupt handling.
v4 changes:
- Remove qemu flash related code.
- Modify fdt base address.

v5 changes:
- Add U= df driver support.
- Split readme file into a separate patch.
- Modify the code style
- delete extra blank lines
- use the assembly function definition macros in MdePkg
= - sort out the PCD variable Token value.

v6 changes:
<= div>- Obtain the serial port base address by resolving fdt.
- O= btain the RTC base address by resolving fdt.
- Use the public 1= 6550 serial port driver.
- Add Dxe Hob lib.

Cc: A= rd Biesheuvel <ardb+tianocore=40kernel.org>
Cc: Bibo Mao = <maobibo=40loongson.cn>
Cc: Chao Li <lichao=40loongson= .cn>
Cc: Leif Lindholm <quic=5Fllindhol=40quicinc.com>=
Cc: Liming Gao <gaoliming=40byosoft.com.cn>
Cc= : Michael D Kinney <michael.d.kinney=40intel.com>

xia= nglai li (16):
Platform/Loongson: Add Serial Port library
=
Platform/Loongson: Support SEC
Platform/Loongson: Add PeiS= ervicesTablePointerLib.
Platform/Loongson: Add Qemu=46wCfgLib.<= /div>
Platform/Loongson: Add MmuLib.
Platform/Loongson: Add= StableTimerLib.
Platform/Loongson: Support PEI phase.
Platform/Loongson: Add CPU DXE driver.
Platform/Loongson: Add= PciCpuIoDxe driver.
Platform/Loongson: Add timer Dxe driver.
Platform/Loongson: Add RealTime Clock lib.
Platform/Lo= ongson: Add Platform Boot Manager Lib.
Platform/Loongson: Add R= eset System Lib.
Platform/Loongson: Add Hob Dxe Lib.
= Platform/Loongson: Support Dxe
Platform/Loongson: Add Readme.
.../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.c =7C 367 +++++++=
.../LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.h =7C 199 ++++
.../Drivers/CpuDxe/CpuDxe.inf =7C 59 ++
.../Drivers/CpuDx= e/LoongArch64/Exception.c =7C 335 +++++++
.../Drivers/CpuDxe/Lo= ongArch64/=46pu.S =7C 97 ++
.../Drivers/CpuDxe/LoongArch64/Loon= gArch.S =7C 321 +++++++
.../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c= =7C 538 +++++++++++
.../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.h =7C= 207 ++++
.../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf =7C 44 +
.../Drivers/StableTimerDxe/Timer.c =7C 388 ++++++++
...= /Drivers/StableTimerDxe/Timer.h =7C 172 ++++
.../Drivers/Stable= TimerDxe/TimerConfig.S =7C 38 +
.../Drivers/StableTimerDxe/Time= rDxe.inf =7C 44 +
.../Include/Guid/Early16550UartBaseAddress.h = =7C 22 +
.../LoongArchQemuPkg/Include/Library/Cpu.h =7C 237 +++= ++
.../LoongArchQemuPkg/Include/Library/MmuLib.h =7C 85 ++
.../Include/Library/Qemu=46wCfgLib.h =7C 174 ++++
.../Inc= lude/Library/StableTimer.h =7C 59 ++
.../=46dt16550SerialPortHo= okLib.c =7C 57 ++
.../=46dt16550SerialPortHookLib.inf =7C 38 +<= /div>
.../LsRealTimeClockLib/LsRealTimeClock.h =7C 40 +
...= /LsRealTimeClockLib/LsRealTimeClockLib.c =7C 335 +++++++
.../Ls= RealTimeClockLib/LsRealTimeClockLib.inf =7C 47 +
.../LoongArchQ= emuPkg/Library/MmuLib/Mmu.S =7C 155 +++
.../Library/MmuLib/MmuB= aseLib.inf =7C 40 +
.../Library/MmuLib/MmuBaseLibPei.inf =7C 47= +
.../Library/MmuLib/MmuLibCore.c =7C 831 ++++++++++++++++
.../Library/MmuLib/MmuLibCore.h =7C 40 +
.../Library/Mmu= Lib/MmuLibCorePei.c =7C 231 +++++
.../LoongArchQemuPkg/Library/= MmuLib/mmu.h =7C 190 ++++
.../LoongArchQemuPkg/Library/MmuLib/p= age.h =7C 280 ++++++
.../LoongArchQemuPkg/Library/MmuLib/pte.h = =7C 57 ++
.../PeiServicesTablePointer.c =7C 79 ++
...= /PeiServicesTablePointer.h =7C 39 +
.../PeiServicesTablePointer= Lib.S =7C 40 +
.../PeiServicesTablePointerLib.inf =7C 32 +
.../PlatformBootManagerLib/PlatformBm.c =7C 742 +++++++++++++++
.../PlatformBootManagerLib/PlatformBm.h =7C 112 +++
.../= PlatformBootManagerLib.inf =7C 75 ++
.../PlatformBootManagerLib= /QemuKernel.c =7C 81 ++
.../Qemu=46wCfgLib/Qemu=46wCfgLibIntern= al.h =7C 63 ++
.../Library/Qemu=46wCfgLib/Qemu=46wCfgPei.c =7C = 117 +++
.../Library/Qemu=46wCfgLib/Qemu=46wCfgPeiLib.c =7C 463 = +++++++++
.../Library/Qemu=46wCfgLib/Qemu=46wCfgPeiLib.inf =7C = 46 +
.../BaseResetSystemAcpiGed.c =7C 146 +++
.../Bas= eResetSystemAcpiGedLib.inf =7C 37 +
.../DxeResetSystemAcpiGed.c= =7C 257 +++++
.../DxeResetSystemAcpiGedLib.inf =7C 41 +
<= div>.../ResetSystemAcpiLib/ResetSystemAcpiGed.c =7C 128 +++
...= /ResetSystemAcpiLib/ResetSystemAcpiGed.h =7C 23 +
.../SerialPor= tLib/EarlySerialPortLib16550.c =7C 900 ++++++++++++++++++
.../S= erialPortLib/EarlySerialPortLib16550.inf =7C 46 +
.../Library/S= tableTimerLib/Count.S =7C 52 +
.../Library/StableTimerLib/Timer= Lib.c =7C 236 +++++
.../Library/StableTimerLib/TimerLib.inf =7C= 32 +
.../Library/VirtDxeHobLib/HobLib.c =7C 590 ++++++++++++
.../Library/VirtDxeHobLib/VirtDxeHobLib.inf =7C 34 +
.= ../Loongson/LoongArchQemuPkg/Loongson.dec =7C 76 ++
.../Loongso= n/LoongArchQemuPkg/Loongson.dsc =7C 647 +++++++++++++
.../Loong= son/LoongArchQemuPkg/Loongson.fdf =7C 347 +++++++
.../LoongArch= QemuPkg/Loongson.fdf.inc =7C 29 +
.../LoongArchQemuPkg/Platform= Pei/=46v.c =7C 58 ++
.../LoongArchQemuPkg/PlatformPei/MemDetect= .c =7C 104 ++
.../LoongArchQemuPkg/PlatformPei/Platform.c =7C 4= 33 +++++++++
.../LoongArchQemuPkg/PlatformPei/Platform.h =7C 86= ++
.../PlatformPei/PlatformPei.inf =7C 74 ++
Platfor= m/Loongson/LoongArchQemuPkg/Readme.md =7C 60 ++
.../LoongArchQe= muPkg/Sec/LoongArch64/Start.S =7C 84 ++
.../Loongson/LoongArchQ= emuPkg/Sec/SecMain.c =7C 494 ++++++++++
.../Loongson/LoongArchQ= emuPkg/Sec/SecMain.inf =7C 51 +
Readme.md =7C 9 +
71 = files changed, 12737 insertions(+)
create mode 100644 Platform/= Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.c
create mode 1= 00644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/CpuDxe.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Cp= uDxe.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/= Drivers/CpuDxe/LoongArch64/Exception.c
create mode 100644 Platf= orm/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/LoongArch64/=46pu.S
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/CpuDxe/Lo= ongArch64/LoongArch.S
create mode 100644 Platform/Loongson/Loon= gArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c
create mode 10= 0644 Platform/Loongson/LoongArchQemuPkg/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe= .h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Driver= s/PciCpuIo2Dxe/PciCpuIo2Dxe.inf
create mode 100644 Platform/Loo= ngson/LoongArchQemuPkg/Drivers/StableTimerDxe/Timer.c
create mo= de 100644 Platform/Loongson/LoongArchQemuPkg/Drivers/StableTimerDxe/Timer= .h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Driver= s/StableTimerDxe/TimerConfig.S
create mode 100644 Platform/Loon= gson/LoongArchQemuPkg/Drivers/StableTimerDxe/TimerDxe.inf
creat= e mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Guid/Early16550U= artBaseAddress.h
create mode 100644 Platform/Loongson/LoongArch= QemuPkg/Include/Library/Cpu.h
create mode 100644 Platform/Loong= son/LoongArchQemuPkg/Include/Library/MmuLib.h
create mode 10064= 4 Platform/Loongson/LoongArchQemuPkg/Include/Library/Qemu=46wCfgLib.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/Libr= ary/StableTimer.h
create mode 100644 Platform/Loongson/LoongArc= hQemuPkg/Library/=46dt16550SerialPortHookLib/=46dt16550SerialPortHookLib.= c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library= /=46dt16550SerialPortHookLib/=46dt16550SerialPortHookLib.inf
cr= eate mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTimeClo= ckLib/LsRealTimeClock.h
create mode 100644 Platform/Loongson/Lo= ongArchQemuPkg/Library/LsRealTimeClockLib/LsRealTimeClockLib.c
= create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/LsRealTimeC= lockLib/LsRealTimeClockLib.inf
create mode 100644 Platform/Loon= gson/LoongArchQemuPkg/Library/MmuLib/Mmu.S
create mode 100644 P= latform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuBaseLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/Mmu= BaseLibPei.inf
create mode 100644 Platform/Loongson/LoongArchQe= muPkg/Library/MmuLib/MmuLibCore.c
create mode 100644 Platform/L= oongson/LoongArchQemuPkg/Library/MmuLib/MmuLibCore.h
create mod= e 100644 Platform/Loongson/LoongArchQemuPkg/Library/MmuLib/MmuLibCorePei.= c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library= /MmuLib/mmu.h
create mode 100644 Platform/Loongson/LoongArchQem= uPkg/Library/MmuLib/page.h
create mode 100644 Platform/Loongson= /LoongArchQemuPkg/Library/MmuLib/pte.h
create mode 100644 Platf= orm/Loongson/LoongArchQemuPkg/Library/PeiServicesTablePointerLib/PeiServi= cesTablePointer.c
create mode 100644 Platform/Loongson/LoongArc= hQemuPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiS= ervicesTablePointerLib/PeiServicesTablePointerLib.S
create mode= 100644 Platform/Loongson/LoongArchQemuPkg/Library/PeiServicesTablePointe= rLib/PeiServicesTablePointerLib.inf
create mode 100644 Platform= /Loongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/PlatformBm.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/Pla= tformBootManagerLib/PlatformBm.h
create mode 100644 Platform/Lo= ongson/LoongArchQemuPkg/Library/PlatformBootManagerLib/PlatformBootManage= rLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/= Library/PlatformBootManagerLib/QemuKernel.c
create mode 100644 = Platform/Loongson/LoongArchQemuPkg/Library/Qemu=46wCfgLib/Qemu=46wCfgLibI= nternal.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg= /Library/Qemu=46wCfgLib/Qemu=46wCfgPei.c
create mode 100644 Pla= tform/Loongson/LoongArchQemuPkg/Library/Qemu=46wCfgLib/Qemu=46wCfgPeiLib.= c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library= /Qemu=46wCfgLib/Qemu=46wCfgPeiLib.inf
create mode 100644 Platfo= rm/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/BaseResetSystemAc= piGed.c
create mode 100644 Platform/Loongson/LoongArchQemuPkg/L= ibrary/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf
create = mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib= /DxeResetSystemAcpiGed.c
create mode 100644 Platform/Loongson/L= oongArchQemuPkg/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/Re= setSystemAcpiLib/ResetSystemAcpiGed.c
create mode 100644 Platfo= rm/Loongson/LoongArchQemuPkg/Library/ResetSystemAcpiLib/ResetSystemAcpiGe= d.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Libra= ry/SerialPortLib/EarlySerialPortLib16550.c
create mode 100644 P= latform/Loongson/LoongArchQemuPkg/Library/SerialPortLib/EarlySerialPortLi= b16550.inf
create mode 100644 Platform/Loongson/LoongArchQemuPk= g/Library/StableTimerLib/Count.S
create mode 100644 Platform/Lo= ongson/LoongArchQemuPkg/Library/StableTimerLib/TimerLib.c
creat= e mode 100644 Platform/Loongson/LoongArchQemuPkg/Library/StableTimerLib/T= imerLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuP= kg/Library/VirtDxeHobLib/HobLib.c
create mode 100644 Platform/L= oongson/LoongArchQemuPkg/Library/VirtDxeHobLib/VirtDxeHobLib.inf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dec
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dsc<= /div>
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.= fdf
create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loong= son.fdf.inc
create mode 100644 Platform/Loongson/LoongArchQemuP= kg/PlatformPei/=46v.c
create mode 100644 Platform/Loongson/Loon= gArchQemuPkg/PlatformPei/MemDetect.c
create mode 100644 Platfor= m/Loongson/LoongArchQemuPkg/PlatformPei/Platform.c
create mode = 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Platform.h
create mode 100644 Platform/Loongson/LoongArchQemuPkg/PlatformPei/Platf= ormPei.inf
create mode 100644 Platform/Loongson/LoongArchQemuPk= g/Readme.md
create mode 100644 Platform/Loongson/LoongArchQemuP= kg/Sec/LoongArch64/Start.S
create mode 100644 Platform/Loongson= /LoongArchQemuPkg/Sec/SecMain.c
create mode 100644 Platform/Loo= ngson/LoongArchQemuPkg/Sec/SecMain.inf

--
2.31.1<= /div>
--637b3ff2_7c225e2e_2a03--