From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 0A08174004A for ; Fri, 3 Nov 2023 08:17:09 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=WIyNPZI49h+jeZEIjpmyetLcrbAEXYyLvm60XmsDXvo=; c=relaxed/simple; d=groups.io; h=Subject:To:Cc:References:From:Message-ID:Date:User-Agent:MIME-Version:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Language:Content-Transfer-Encoding; s=20140610; t=1698999428; v=1; b=ZmgVCJxvnyn3Shnsg5w2HFWc83onBc58fxnNzMugqxb0Z1g6g7ZylM322rCuPTJfZ5/5dup/ nZwboab8/LkOletc0uq2eA78KBsgdhyy8hTCY5v7pika607aAqIoPV9tXDk3P1oEuEw7KEY8XbW PfWUcP8b3hbKMeZXAWVLr55U= X-Received: by 127.0.0.2 with SMTP id KzQRYY7687511xjpgtueSgbm; Fri, 03 Nov 2023 01:17:08 -0700 X-Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web11.40560.1698999426975263669 for ; Fri, 03 Nov 2023 01:17:07 -0700 X-Received: from loongson.cn (unknown [10.20.42.173]) by gateway (Coremail) with SMTP id _____8BxpPB+rERlIq02AA--.41880S3; Fri, 03 Nov 2023 16:17:02 +0800 (CST) X-Received: from [10.20.42.173] (unknown [10.20.42.173]) by localhost.localdomain (Coremail) with SMTP id AQAAf8DxfS96rERlegQ5AA--.58535S3; Fri, 03 Nov 2023 16:17:01 +0800 (CST) Subject: Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2 To: Chao Li , devel@edk2.groups.io, ray.ni@intel.com Cc: "Kinney, Michael D" , "Gao, Liming" , "Liu, Zhiguang" , "Dong, Eric" , "Kumar, Rahul R" , Gerd Hoffmann , Leif Lindholm , Ard Biesheuvel , Abner Chang , Daniel Schaefer , Sami Mujawar , "Yao, Jiewen" , "Justen, Jordan L" References: <20231103010302.4052990-1-lichao@loongson.cn> <0a6b9701-4e48-451e-bc7e-3a683abc2246@loongson.cn> <8939fcae-b40e-32aa-b598-4f720f2e380e@loongson.cn> From: "maobibo" Message-ID: Date: Fri, 3 Nov 2023 16:16:58 +0800 User-Agent: Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: X-CM-TRANSID: AQAAf8DxfS96rERlegQ5AA--.58535S3 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBj9fXoWfXFWxWF1UuF48AFyDGF1UCFX_yoW5WFW5Go W8Kr47ur45Jr48u34rG398JrW5Wa17Crs8Xr48Zay7GF1Yy3WUZayDXryFgay5XF95Wr1U G34Yqw1DJFy2qr4fl-sFpf9Il3svdjkaLaAFLSUrUUUU1b8apTn2vfkv8UJUUUU8wcxFpf 9Il3svdxBIdaVrn0xqx4xG64xvF2IEw4CE5I8CrVC2j2Jv73VFW2AGmfu7bjvjm3AaLaJ3 UjIYCTnIWjp_UUUYA7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI 8IcIk0rVWrJVCq3wAFIxvE14AKwVWUXVWUAwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xG Y2AK021l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14 v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAF wI0_Gr1j6F4UJwAaw2AFwI0_Jrv_JF1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2 xF0cIa020Ex4CE44I27wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_ Jrv_JF1lYx0Ex4A2jsIE14v26r4j6F4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwI xGrwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY 6r1j6r4UMxCIbckI1I0E14v26rWY6Fy7MI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7 xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc40Y0x0EwIxGrwCI42IY6xII jxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw2 0EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z280aVCY1x02 67AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU8CksDUUUUU== Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,maobibo@loongson.cn List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: PzuNtHIKx5QAPPtkvXW8iUNax7686176AA= Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=ZmgVCJxv; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io On 2023/11/3 下午4:09, Chao Li wrote: > Hi Bibo, > > Yes, you are right, MpInitLib is most used on the physical machines, but > in LoongArch, this library is a public library, so it is the minimum > requirement that it can worke on physical machines and virtual machines. > This library has been tested on the actual and virtual machines to > ensure it works right. If so, it is ok for me-:) Regards Bibo Mao > > > Thanks, > Chao > 在 2023/11/3 15:51, maobibo 写道: >> >> >> On 2023/11/3 下午3:08, Chao Li wrote: >>> Hi Ray, >>> >>> Thanks for review. >>> >>> >>> I think the MpInitLib is necessary, because this library will serve >>> PEI and DEX phases. In LoongArch, the MP initialization function will >>> be  called first in the PEI phase. It will wake up all of AP, collect >>> accurate online cores, and all APs will fill in their self >>> information to prepare for next wakeup. >>> >>> The second time the MP initialization function is called will in DXE >>> phase, usually located CpuDxe, I guess you are checked this code. >>> This time the MP service HOB will be brought from PEI to DXE phase, >>> and the MP protocal will be registered to prepare for service DXE phase. >>> >>> Like you saied, why not use the MP PPI? I think it's just that the >>> code hasn't been added yet, and I think LoongArch will definitely >>> need the MP PPI in the future, like memory trainning, configure APs >>> local registers, etc. >> >> It is necessary for physical machine like memory trainning/configure >> APs local register etc, however I doubt whether it is useful for >> LoongArch virt-machine, I do not see the advantages for wakeup APs in >> UEFI BIOS. ACPI FADT table is prepared in qemu side rather than BIOS >> side. >> >> Regards >> Bibo Mao >>> >>> >>> Thanks, >>> Chao >>> 在 2023/11/3 13:10, Ni, Ray 写道: >>>> Chao, >>>> MpInitLib is to avoid code duplication between CpuMpPeim and CpuDxe. >>>> If you only need MP protocol but not MP PPI, do you still need to >>>> add MpInitLib? >>>> Can MpInitLib code be included in CpuDxe folder? >>>> >>>> Thanks, >>>> Ray >>>> ------------------------------------------------------------------------ >>>> >>>> *From:* Chao Li >>>> *Sent:* Friday, November 3, 2023 9:03 AM >>>> *To:* devel@edk2.groups.io >>>> *Cc:* Kinney, Michael D ; Gao, Liming >>>> ; Liu, Zhiguang ; >>>> Dong, Eric ; Ni, Ray ; Kumar, >>>> Rahul R ; Gerd Hoffmann >>>> ; Leif Lindholm ; Ard >>>> Biesheuvel ; Abner Chang >>>> ; Daniel Schaefer ; Sami >>>> Mujawar ; Yao, Jiewen ; >>>> Justen, Jordan L >>>> *Subject:* [PATCH v1 00/29] Enable LoongArch virtual machine in edk2 >>>> This patch set will enable LoongArch virtual machine in edk2, the new >>>> LoongArch virtual machine is located in OvmfPkg/LoongArchVirt/, it is a >>>> generic platform that dose not require any actual hardware. >>>> >>>> Patch1-Patch14: Submit the common library and driver for LoongArch >>>> virtual machine and real hardware. Such as base help functions, >>>> exception handel, MMU library, multiprocessor library etc. >>>> >>>> Patch15-Patch16: Add PrePiCpuIoSize for LoongArch64. and move >>>> ArmVirtPkg >>>> two PCDs into OvmfPkg for easier use by other architectures. >>>> >>>> Patch17-Patch29: LoongArch virtual machine private code, include SEC >>>> and >>>> PEI phase code, some library and drivers. >>>> >>>> Modfied modues: MdePkg, UefiCpuPkg, EmbeddedPkg, ArmVirtPkg, OvmfPkg. >>>> >>>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4584 >>>> >>>> Cc: Michael D Kinney >>>> Cc: Liming Gao >>>> Cc: Zhiguang Liu >>>> Cc: Eric Dong >>>> Cc: Ray Ni >>>> Cc: Rahul Kumar >>>> Cc: Gerd Hoffmann >>>> Cc: Leif Lindholm >>>> Cc: Ard Biesheuvel >>>> Cc: Abner Chang >>>> Cc: Daniel Schaefer >>>> Cc: Sami Mujawar >>>> Cc: Jiewen Yao >>>> Cc: Jordan Justen >>>> >>>> Chao Li (29): >>>>   MdePkg: Add the header file named Csr.h for LoongArch64 >>>>   MdePkg: Add LoongArch64 FPU function set into BaseCpuLib >>>>   MdePkg: Add LoongArch64 exception function set into BaseLib >>>>   MdePkg: Add LoongArch64 local interrupt function set into BaseLib >>>>   MdePkg: Add LoongArch Cpucfg function >>>>   MdePkg: Add read stable counter operation for LoongArch >>>>   MdePkg: Add CSR operation for LoongArch >>>>   MdePkg: Add IOCSR operation for LoongArch >>>>   UefiCpuPkg: Add LoongArch64 CPU Timer library >>>>   UefiCpuPkg: Add CPU exception library for LoongArch >>>>   UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg >>>>   UefiCpuPkg: Add LoongArch64CpuMmuLib to UefiCpuPkg >>>>   UefiCpuPkg: Add multiprocessor library for LoongArch64 >>>>   UefiCpuPkg: Add CpuDxe driver for LoongArch64 >>>>   EmbeddedPkg: Add PcdPrePiCpuIoSize width for LOONGARCH64 >>>>   ArmVirtPkg: Move PCD of FDT base address and FDT padding to OvmfPkg >>>>   OvmfPkg/LoongArchVirt: Add PciCpuIo2Dxe module >>>>   OvmfPkg/LoongArchVirt: Add stable timer driver >>>>   OvmfPkg/LoongArchVirt: Add a NULL library named >>>>     CollectApResouceLibNull >>>>   OvmfPkg/LoongArchVirt: Add serial port library >>>>   OvmfPkg/LoongArchVirt: Add real time clock library >>>>   OvmfPkg/LoongArchVirt: Add NorFlashQemuLib >>>>   OvmfPkg/LoongArchVirt: Add PeiServiceTablePointerLib >>>>   OvmfPkg/LoongArchVirt: Add platform boot manager library >>>>   OvmfPkg/LoongArchVirt: Add FdtQemuFwCfgLib >>>>   OvmfPkg/LoongArchVirt: Add reset system library >>>>   OvmfPkg/LoongArchVirt: Support SEC phase >>>>   OvmfPkg/LoongArchVirt: Support PEI phase >>>>   OvmfPkg/LoongArchVirt: Add build file >>>> >>>>  ArmVirtPkg/ArmVirtCloudHv.dsc                 |    2 +- >>>>  ArmVirtPkg/ArmVirtKvmTool.dsc                 |    2 +- >>>>  ArmVirtPkg/ArmVirtPkg.dec                     |   14 - >>>>  ArmVirtPkg/ArmVirtQemu.dsc                    |    2 +- >>>>  ArmVirtPkg/ArmVirtQemuKernel.dsc              |    2 +- >>>>  ArmVirtPkg/ArmVirtXen.dsc                     |    2 +- >>>>  .../ArmVirtPsciResetSystemPeiLib.inf          |    3 +- >>>>  .../CloudHvVirtMemInfoPeiLib.inf              |    3 +- >>>>  .../DebugLibFdtPL011UartFlash.inf             |    3 +- >>>>  .../EarlyFdt16550SerialPortHookLib.inf        |    3 +- >>>>  .../EarlyFdtPL011SerialPortLib.inf            |    3 +- >>>>  .../KvmtoolPlatformPeiLib.inf                 |    5 +- >>>>  .../Library/PlatformPeiLib/PlatformPeiLib.inf |   10 +- >>>>  .../QemuVirtMemInfoPeiLib.inf                 |    3 +- >>>>  .../PrePi/ArmVirtPrePiUniCoreRelocatable.inf  |    3 +- >>>>  EmbeddedPkg/EmbeddedPkg.dec                   |    3 + >>>>  MdePkg/Include/Library/BaseLib.h              |  221 +++ >>>>  MdePkg/Include/Library/CpuLib.h               |   37 +- >>>>  MdePkg/Include/Protocol/DebugSupport.h        |   76 +- >>>>  MdePkg/Include/Register/LoongArch64/Cpucfg.h  |  565 ++++++ >>>>  MdePkg/Include/Register/LoongArch64/Csr.h     |  221 +++ >>>>  MdePkg/Library/BaseCpuLib/BaseCpuLib.inf      |    7 +- >>>>  .../Library/BaseCpuLib/LoongArch/DisableFpu.S |   17 + >>>>  .../Library/BaseCpuLib/LoongArch/EnableFpu.S  |   17 + >>>>  .../BaseCpuLib/LoongArch/InitializeFpu.S      |   51 + >>>>  MdePkg/Library/BaseLib/BaseLib.inf            |    6 + >>>>  MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S   |  422 +++++ >>>>  MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S   |   26 + >>>>  MdePkg/Library/BaseLib/LoongArch64/Csr.c      |   81 + >>>>  .../BaseLib/LoongArch64/DisableInterrupts.S   |   22 +- >>>>  .../BaseLib/LoongArch64/EnableInterrupts.S    |   22 +- >>>>  .../BaseLib/LoongArch64/ExceptionBase.S       |   41 + >>>>  MdePkg/Library/BaseLib/LoongArch64/IoCsr.S    |  120 ++ >>>>  .../BaseLib/LoongArch64/ReadStableCounter.S   |   24 + >>>>  MdePkg/MdePkg.ci.yaml                         |    3 +- >>>>  .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c       |  547 ++++++ >>>>  .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf     |   45 + >>>>  .../Drivers/StableTimerDxe/Timer.c            |  381 ++++ >>>>  .../Drivers/StableTimerDxe/Timer.h            |  127 ++ >>>>  .../Drivers/StableTimerDxe/TimerDxe.inf       |   41 + >>>>  .../CollectApResourceLibNull.c                |   35 + >>>>  .../CollectApResourceLibNull.inf              |   32 + >>>>  .../CollectApResourceLibNull.uni              |    9 + >>>>  .../EarlyFdtSerialPortLib16550.c              |  824 +++++++++ >>>>  .../EarlyFdtSerialPortLib16550.inf            |   47 + >>>>  .../EarlyFdt16550SerialPortHookLib.c          |  136 ++ >>>>  .../EarlyFdt16550SerialPortHookLib.inf        |   36 + >>>>  .../Fdt16550SerialPortHookLib.c               |   41 + >>>>  .../Fdt16550SerialPortHookLib.inf             |   33 + >>>>  .../Fdt16550SerialPortHookLib.uni             |   13 + >>>>  .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c      |  505 ++++++ >>>>  .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf    |   42 + >>>>  .../FdtQemuFwCfgLib/QemuFwCfgLibInternal.h    |   73 + >>>>  .../Library/FdtQemuFwCfgLib/QemuFwCfgPei.c    |  117 ++ >>>>  .../DxeLsRealTimeClockLib.c                   |  333 ++++ >>>>  .../DxeLsRealTimeClockLib.inf                 |   42 + >>>>  .../LsRealTimeClockLib/LsRealTimeClock.h      |   47 + >>>>  .../PeiLsRealTimeClockLib.c                   |   31 + >>>>  .../PeiLsRealTimeClockLib.inf                 |   29 + >>>>  .../Library/NorFlashQemuLib/NorFlashQemuLib.c |  140 ++ >>>>  .../NorFlashQemuLib/NorFlashQemuLib.inf       |   43 + >>>>  .../PeiServicesTablePointer.c                 |   75 + >>>>  .../PeiServicesTablePointerLib.inf            |   31 + >>>>  .../PlatformBootManagerLib/PlatformBm.c       |  829 +++++++++ >>>>  .../PlatformBootManagerLib/PlatformBm.h       |  112 ++ >>>>  .../PlatformBootManagerLib.inf                |   73 + >>>>  .../PlatformBootManagerLib/QemuKernel.c       |   81 + >>>>  .../BaseResetSystemAcpiGed.c                  |  148 ++ >>>>  .../BaseResetSystemAcpiGedLib.inf             |   37 + >>>>  .../DxeResetSystemAcpiGed.c                   |  259 +++ >>>>  .../DxeResetSystemAcpiGedLib.inf              |   41 + >>>>  .../ResetSystemAcpiLib/ResetSystemAcpiGed.c   |  128 ++ >>>>  .../ResetSystemAcpiLib/ResetSystemAcpiGed.h   |   23 + >>>>  OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc   |   34 + >>>>  OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc   |  675 +++++++ >>>>  OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf   |  313 ++++ >>>>  OvmfPkg/LoongArchVirt/PlatformPei/Fv.c        |   40 + >>>>  OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c |  203 +++ >>>>  OvmfPkg/LoongArchVirt/PlatformPei/Platform.c  |  393 ++++ >>>>  OvmfPkg/LoongArchVirt/PlatformPei/Platform.h  |  128 ++ >>>>  .../LoongArchVirt/PlatformPei/PlatformPei.inf |   72 + >>>>  OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S |  176 ++ >>>>  OvmfPkg/LoongArchVirt/Sec/SecMain.c           |  507 ++++++ >>>>  OvmfPkg/LoongArchVirt/Sec/SecMain.inf         |   53 + >>>>  OvmfPkg/LoongArchVirt/VarStore.fdf.inc        |   67 + >>>>  OvmfPkg/OvmfPkg.dec                           |   15 + >>>>  UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c         |  440 +++++ >>>>  UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h         |  261 +++ >>>>  UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf       |   60 + >>>>  UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni       |   15 + >>>>  UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c          |  544 ++++++ >>>>  UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h          |  471 +++++ >>>>  UefiCpuPkg/CpuDxeLoongArch64/Exception.c      |  150 ++ >>>>  UefiCpuPkg/Include/Library/CpuMmuLib.h        |  194 ++ >>>>  .../BaseLoongArch64CpuTimerLib.inf            |   30 + >>>>  .../BaseLoongArch64CpuTimerLib.uni            |   15 + >>>>  .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c  |  226 +++ >>>>  .../DxeCpuExceptionHandlerLib.inf             |   45 + >>>>  .../DxeCpuExceptionHandlerLib.uni             |   15 + >>>>  .../DxeExceptionLib.c                         |  202 +++ >>>>  .../ExceptionCommon.c                         |  170 ++ >>>>  .../ExceptionCommon.h                         |  111 ++ >>>>  .../LoongArch64/ArchExceptionHandler.c        |  214 +++ >>>>  .../LoongArch64/ExceptionHandlerAsm.S         |  320 ++++ >>>>  .../SecPeiCpuExceptionHandlerLib.inf          |   45 + >>>>  .../SecPeiCpuExceptionHandlerLib.uni          |   15 + >>>>  .../SecPeiExceptionLib.c                      |   90 + >>>>  .../LoongArch64CpuMmuLib/CommonMmuLib.c       |  963 ++++++++++ >>>>  .../LoongArch64CpuMmuLib/CommonMmuLib.h       |   43 + >>>>  .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf     |   37 + >>>>  .../LoongArch64CpuMmuLib/DxeCpuMmuLib.uni     |   14 + >>>>  .../Library/LoongArch64CpuMmuLib/Page.h       |  279 +++ >>>>  .../LoongArch64CpuMmuLib/PeiCpuMmuLib.c       |  165 ++ >>>>  .../LoongArch64CpuMmuLib/PeiCpuMmuLib.inf     |   44 + >>>>  .../LoongArch64CpuMmuLib/PeiCpuMmuLib.uni     |   14 + >>>>  UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h |   48 + >>>>  .../LoongArch64CpuMmuLib/TlbOperation.S       |   44 + >>>>  .../LoongArch64MpInitLib/DxeMpInitLib.inf     |   45 + >>>>  .../LoongArch64MpInitLib/DxeMpInitLib.uni     |   15 + >>>>  .../Library/LoongArch64MpInitLib/DxeMpLib.c   |  481 +++++ >>>>  .../Library/LoongArch64MpInitLib/MpLib.c      | 1596 +++++++++++++++++ >>>>  .../Library/LoongArch64MpInitLib/MpLib.h      |  361 ++++ >>>>  .../LoongArch64MpInitLib/PeiMpInitLib.inf     |   37 + >>>>  .../LoongArch64MpInitLib/PeiMpInitLib.uni     |   15 + >>>>  .../Library/LoongArch64MpInitLib/PeiMpLib.c   |  404 +++++ >>>>  UefiCpuPkg/UefiCpuPkg.dec                     |   10 + >>>>  UefiCpuPkg/UefiCpuPkg.dsc                     |   10 + >>>>  127 files changed, 18478 insertions(+), 84 deletions(-) >>>>  create mode 100644 MdePkg/Include/Register/LoongArch64/Cpucfg.h >>>>  create mode 100644 MdePkg/Include/Register/LoongArch64/Csr.h >>>>  create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/DisableFpu.S >>>>  create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/EnableFpu.S >>>>  create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/InitializeFpu.S >>>>  create mode 100644 MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S >>>>  create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S >>>>  create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Csr.c >>>>  create mode 100644 MdePkg/Library/BaseLib/LoongArch64/ExceptionBase.S >>>>  create mode 100644 MdePkg/Library/BaseLib/LoongArch64/IoCsr.S >>>>  create mode 100644 >>>> MdePkg/Library/BaseLib/LoongArch64/ReadStableCounter.S >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.h >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/TimerDxe.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/CollectApResourceLibNull.uni >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib16550/EarlyFdtSerialPortLib16550.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/EarlyFdt16550SerialPortHookLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib/Fdt16550SerialPortHookLib.uni >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfgLibInternal.h >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfgPei.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsRealTimeClockLib.c >>>> >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsRealTimeClockLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/LsRealTimeClock.h >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsRealTimeClockLib.c >>>> >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsRealTimeClockLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQemuLib.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQemuLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/PlatformBm.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/PlatformBm.h >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/QemuKernel.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGed.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseResetSystemAcpiGedLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGed.c >>>> >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeResetSystemAcpiGedLib.inf >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.c >>>>  create mode 100644 >>>> OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetSystemAcpiGed.h >>>>  create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc >>>>  create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc >>>>  create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf >>>>  create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Fv.c >>>>  create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c >>>>  create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.c >>>>  create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.h >>>>  create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/PlatformPei.inf >>>>  create mode 100644 OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S >>>>  create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.c >>>>  create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.inf >>>>  create mode 100644 OvmfPkg/LoongArchVirt/VarStore.fdf.inc >>>>  create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c >>>>  create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h >>>>  create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf >>>>  create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni >>>>  create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c >>>>  create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h >>>>  create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/Exception.c >>>>  create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h >>>>  create mode 100644 >>>> UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTimerLib.inf >>>>  create mode 100644 >>>> UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoongArch64CpuTimerLib.uni >>>>  create mode 100644 >>>> UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/CpuTimerLib.c >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.uni >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/DxeExceptionLib.c >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/ExceptionCommon.c >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/ExceptionCommon.h >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/LoongArch64/ArchExceptionHandler.c >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/LoongArch64/ExceptionHandlerAsm.S >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.uni >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/SecPeiExceptionLib.c >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuLib.c >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuLib.h >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuLib.inf >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuLib.uni >>>>  create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Page.h >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.c >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.inf >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.uni >>>>  create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64CpuMmuLib/TlbOperation.S >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitLib.inf >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitLib.uni >>>>  create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpLib.c >>>>  create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.c >>>>  create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.h >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitLib.inf >>>>  create mode 100644 >>>> UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitLib.uni >>>>  create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpLib.c >>>> >>> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110617): https://edk2.groups.io/g/devel/message/110617 Mute This Topic: https://groups.io/mt/102355705/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-