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 057069410BC for ; Fri, 3 Nov 2023 07:52:17 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=yEgxGPuiIeHJM9KeOR+4EHqRSOHZFrnUqJVdNaqQLQE=; 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=1698997936; v=1; b=plxTqELkhe/pZmPxHuGE9PISsy4BKEUArylynuci9DeqkLIVv5vs7E4w8sLaI9/QJtA/qTI0 CsaNZuinXjbKnG2EVDz7XPFVVc/XfqYjPSIn2eQ4C6dBhUAuqzxI0Nx6EsVkw1aqVK7wLz/pwUM OkOOC6aXysQfC1+AKR2gJfUM= X-Received: by 127.0.0.2 with SMTP id xkuBYY7687511xu3Z2Ds5nmC; Fri, 03 Nov 2023 00:52:16 -0700 X-Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web10.39838.1698997931565883463 for ; Fri, 03 Nov 2023 00:52:15 -0700 X-Received: from loongson.cn (unknown [10.20.42.173]) by gateway (Coremail) with SMTP id _____8CxRuimpkRlcqw2AA--.53673S3; Fri, 03 Nov 2023 15:52:06 +0800 (CST) X-Received: from [10.20.42.173] (unknown [10.20.42.173]) by localhost.localdomain (Coremail) with SMTP id AQAAf8BxK9ycpkRlewI5AA--.57879S3; Fri, 03 Nov 2023 15:51:58 +0800 (CST) Subject: Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2 To: devel@edk2.groups.io, lichao@loongson.cn, 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> From: "maobibo" Message-ID: <8939fcae-b40e-32aa-b598-4f720f2e380e@loongson.cn> Date: Fri, 3 Nov 2023 15:51:56 +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: <0a6b9701-4e48-451e-bc7e-3a683abc2246@loongson.cn> X-CM-TRANSID: AQAAf8BxK9ycpkRlewI5AA--.57879S3 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBj9fXoWfWr43ur45Gw4xZr15uFyxtFc_yoW5XF15Ao WxCrs3ur45Jr4ku34rGwsxJrW5WF47urs8Xr4xZay7tF15J3WUAayDJryFg3yrXF95Wr1U G345t3WkGFy2qr4fl-sFpf9Il3svdjkaLaAFLSUrUUUU8b8apTn2vfkv8UJUUUU8wcxFpf 9Il3svdxBIdaVrn0xqx4xG64xvF2IEw4CE5I8CrVC2j2Jv73VFW2AGmfu7bjvjm3AaLaJ3 UjIYCTnIWjp_UUUYW7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI 8IcIk0rVWrJVCq3wAFIxvE14AKwVWUXVWUAwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xG Y2AK021l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14 v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAF wI0_Gr1j6F4UJwAaw2AFwI0_Jrv_JF1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2 xF0cIa020Ex4CE44I27wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_ JF0_Jw1lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwI xGrwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY 6r1j6r4UMxCIbckI1I0E14v26r4a6rW5MI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7 xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc40Y0x0EwIxGrwCI42IY6xII jxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw2 0EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x02 67AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUc0eHDUUUU 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: Kz7kTXVr6DUGmFcdbbejMRqmx7686176AA= 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=plxTqELk; 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 下午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 (#110615): https://edk2.groups.io/g/devel/message/110615 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] -=-=-=-=-=-=-=-=-=-=-=-