public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Chao Li" <lichao@loongson.cn>
To: devel@edk2.groups.io
Cc: Michael D Kinney <michael.d.kinney@intel.com>,
	Liming Gao <gaoliming@byosoft.com.cn>,
	Zhiguang Liu <zhiguang.liu@intel.com>,
	Leif Lindholm <quic_llindhol@quicinc.com>,
	Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Abner Chang <abner.chang@amd.com>,
	Laszlo Ersek <lersek@redhat.com>,
	Sami Mujawar <sami.mujawar@arm.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Ray Ni <ray.ni@intel.com>,
	Rahul Kumar <rahul1.kumar@intel.com>,
	Jiewen Yao <jiewen.yao@intel.com>,
	Sunil V L <sunilvl@ventanamicro.com>,
	Andrei Warkentin <andrei.warkentin@intel.com>,
	Dongyan Qian <qiandongyan@loongson.cn>
Subject: [edk2-devel] [PATCH v1 00/19] Add LoongArch helper functions and defines
Date: Fri,  2 Feb 2024 10:26:37 +0800	[thread overview]
Message-ID: <20240202022637.2444159-1-lichao@loongson.cn> (raw)

This series is part 1 of enabling LoongArch64 virtual machine.

Added LoongArch helper functions and defines in MdePkg, added LoongArch
CPU IO width in EmbeddedPkg, moved some libraries and PCDs from
ArmVirtPkg to OvmfPkg for easiser use by other ARCHs, added a new CPU IO2
driver named CpuMmio2Dxe in UefiCpuPkg, for non-IO port implement CPUs.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Cc: Andrei Warkentin <andrei.warkentin@intel.com>
Cc: Dongyan Qian <qiandongyan@loongson.cn>

Chao Li (19):
  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
  MdePkg: Add a new library named PeiServicesTablePointerLibKs0
  MdePkg: Add some comments for LoongArch exceptions
  EmbeddedPkg: Add PcdPrePiCpuIoSize width for LOONGARCH64
  ArmVirtPkg: Move PCD of FDT base address and FDT padding to OvmfPkg
  UefiCpuPkg: Add a new CPU IO 2 driver named CpuMmio2Dxe
  ArmVirtPkg: Enable CpuMmio2Dxe
  OvmfPkg/RiscVVirt: Enable CpuMmio2Dxe
  OvmfPkg/RiscVVirt: Remove PciCpuIo2Dxe from RiscVVirt
  ArmVirtPkg: Move the FdtSerialPortAddressLib to OvmfPkg
  ArmVirtPkg: Move two PCD variables into OvmfPkg
  ArmVirtPkg: Move PlatformBootManagerLib to OvmfPkg

 ArmVirtPkg/ArmVirt.dsc.inc                    |   2 +-
 ArmVirtPkg/ArmVirtCloudHv.dsc                 |   4 +-
 ArmVirtPkg/ArmVirtCloudHv.fdf                 |   2 +-
 ArmVirtPkg/ArmVirtKvmTool.dsc                 |   4 +-
 ArmVirtPkg/ArmVirtKvmTool.fdf                 |   2 +-
 ArmVirtPkg/ArmVirtPkg.ci.yaml                 |   1 -
 ArmVirtPkg/ArmVirtPkg.dec                     |  28 -
 ArmVirtPkg/ArmVirtQemu.dsc                    |   8 +-
 ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc          |   2 +-
 ArmVirtPkg/ArmVirtQemuKernel.dsc              |   8 +-
 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               |  43 +-
 .../Library/PeiServicesTablePointerLib.h      |   9 +-
 MdePkg/Include/Protocol/DebugSupport.h        |  14 +
 MdePkg/Include/Register/LoongArch64/Cpucfg.h  | 565 ++++++++++++++++++
 MdePkg/Include/Register/LoongArch64/Csr.h     | 263 ++++++++
 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 +
 .../PeiServicesTablePointer.c                 |  87 +++
 .../PeiServicesTablePointerLibKs0.inf         |  37 ++
 .../PeiServicesTablePointerLibKs0.uni         |  20 +
 MdePkg/MdePkg.ci.yaml                         |   3 +-
 MdePkg/MdePkg.dsc                             |   3 +
 .../Include/Library/FdtSerialPortAddressLib.h |   0
 .../FdtSerialPortAddressLib.c                 |   0
 .../FdtSerialPortAddressLib.inf               |   2 +-
 .../PlatformBootManagerLibLight}/PlatformBm.c |   0
 .../PlatformBootManagerLibLight}/PlatformBm.h |   0
 .../PlatformBootManagerLib.inf                |   5 +-
 .../PlatformBootManagerLibLight}/QemuKernel.c |   0
 OvmfPkg/OvmfPkg.dec                           |  32 +
 OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc           |   2 +-
 OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf           |   2 +-
 .../CpuMmio2Dxe/CpuMmio2Dxe.c                 |   8 +-
 .../CpuMmio2Dxe/CpuMmio2Dxe.inf               |  16 +-
 UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.uni        |  18 +
 UefiCpuPkg/UefiCpuPkg.dsc                     |   1 +
 59 files changed, 2209 insertions(+), 100 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 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointer.c
 create mode 100644 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.inf
 create mode 100644 MdePkg/Library/PeiServicesTablePointerLibKs0/PeiServicesTablePointerLibKs0.uni
 rename {ArmVirtPkg => OvmfPkg}/Include/Library/FdtSerialPortAddressLib.h (100%)
 rename {ArmVirtPkg => OvmfPkg}/Library/FdtSerialPortAddressLib/FdtSerialPortAddressLib.c (100%)
 rename {ArmVirtPkg => OvmfPkg}/Library/FdtSerialPortAddressLib/FdtSerialPortAddressLib.inf (90%)
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/PlatformBm.c (100%)
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/PlatformBm.h (100%)
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/PlatformBootManagerLib.inf (89%)
 rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibLight}/QemuKernel.c (100%)
 rename OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.c => UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.c (96%)
 rename OvmfPkg/RiscVVirt/PciCpuIo2Dxe/PciCpuIo2Dxe.inf => UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf (61%)
 create mode 100644 UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.uni

-- 
2.27.0



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114985): https://edk2.groups.io/g/devel/message/114985
Mute This Topic: https://groups.io/mt/104112112/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



             reply	other threads:[~2024-02-02  2:27 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-02  2:26 Chao Li [this message]
2024-02-02  2:27 ` [edk2-devel] [PATCH v1 01/19] MdePkg: Add the header file named Csr.h for LoongArch64 Chao Li
2024-02-02  2:27 ` [edk2-devel] [PATCH v1 02/19] MdePkg: Add LoongArch64 FPU function set into BaseCpuLib Chao Li
2024-02-02  2:27 ` [edk2-devel] [PATCH v1 03/19] MdePkg: Add LoongArch64 exception function set into BaseLib Chao Li
2024-02-02  2:27 ` [edk2-devel] [PATCH v1 04/19] MdePkg: Add LoongArch64 local interrupt " Chao Li
2024-02-02  2:27 ` [edk2-devel] [PATCH v1 05/19] MdePkg: Add LoongArch Cpucfg function Chao Li
2024-02-02  2:27 ` [edk2-devel] [PATCH v1 06/19] MdePkg: Add read stable counter operation for LoongArch Chao Li
2024-02-02  2:27 ` [edk2-devel] [PATCH v1 07/19] MdePkg: Add CSR " Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 08/19] MdePkg: Add IOCSR " Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 09/19] MdePkg: Add a new library named PeiServicesTablePointerLibKs0 Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 10/19] MdePkg: Add some comments for LoongArch exceptions Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 11/19] EmbeddedPkg: Add PcdPrePiCpuIoSize width for LOONGARCH64 Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 12/19] ArmVirtPkg: Move PCD of FDT base address and FDT padding to OvmfPkg Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 13/19] UefiCpuPkg: Add a new CPU IO 2 driver named CpuMmio2Dxe Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 14/19] ArmVirtPkg: Enable CpuMmio2Dxe Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 15/19] OvmfPkg/RiscVVirt: " Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 16/19] OvmfPkg/RiscVVirt: Remove PciCpuIo2Dxe from RiscVVirt Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 17/19] ArmVirtPkg: Move the FdtSerialPortAddressLib to OvmfPkg Chao Li
2024-02-02  2:28 ` [edk2-devel] [PATCH v1 18/19] ArmVirtPkg: Move two PCD variables into OvmfPkg Chao Li
2024-02-02  2:29 ` [edk2-devel] [PATCH v1 19/19] ArmVirtPkg: Move PlatformBootManagerLib to OvmfPkg Chao Li
2024-02-02 14:56 ` [edk2-devel] [PATCH v1 00/19] Add LoongArch helper functions and defines Laszlo Ersek
2024-02-02 15:17   ` Ni, Ray
2024-02-02 16:14     ` Laszlo Ersek
2024-02-04  3:16       ` Chao Li
2024-02-05  7:34         ` Laszlo Ersek
2024-02-05  9:11           ` Chao Li
2024-02-06 15:52             ` 回复: " gaoliming via groups.io

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240202022637.2444159-1-lichao@loongson.cn \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox