From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) by mx.groups.io with SMTP id smtpd.web10.9634.1665766122251995153 for ; Fri, 14 Oct 2022 09:48:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@ventanamicro.com header.s=google header.b=aVZdeWeG; spf=pass (domain: ventanamicro.com, ip: 209.85.210.175, mailfrom: sunilvl@ventanamicro.com) Received: by mail-pf1-f175.google.com with SMTP id d10so5418012pfh.6 for ; Fri, 14 Oct 2022 09:48:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=fysF1etWjyPPoZMmtCoPj/9VyNTJbozLcxK/GfMjPOc=; b=aVZdeWeGWiY0nMkoYgvia9XAKYPZicT3VJM01esHIgTXzYtwNfouVhWcBPiANBxwut d0Z1aEAfg84Cj1RK3p4i9TnZf+vrdddhc1A619y9TYMuSMkuRgpk+GKFBy/e+NUDwIcI TFXKgU/2RWQGPifGJ2hp4Tq11bo0qT9POcZTvTOkZPpn6iAlq9ksla6bM62s9HjkElMg BYNcg4NdAbIu+ehv6UniId+Y6zsgzKe5sjBPydTtqGMLuiXm2Os5WjELlH/6pDAPtMrU rk2Wb5CGCsgmlJviKf666RJdx/b/AaQB9AGsCYl/1tnaAidq5DG8gzvDLlSW6dDVDOAe p0pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fysF1etWjyPPoZMmtCoPj/9VyNTJbozLcxK/GfMjPOc=; b=eTo/6tXni5NPDh0yjZCHLMQbLAyE+RJjWlJytjP9UTXiQcF8GxMVWRd1UJkpNKCZQU SXeyAw4Jy2yoXqlDdoWX6mfWHUeyhx87jUCe9jMoKlv4BQxga7LmmblXUVdGCWyv0PHj 9m7gYrWrd6ol4/MsxlXfV8QLtDjv37eYZ2bkLu0K15m2NKerVXCDMYIStDFY0QPuZ3xf ekezcE7nxlJpFfQ/t6poizqf6THcfxFKEFp9WD1MDcRAM3zD2kAqpE+h9IDqbJIrx2fG Os6QZwtC6XOlGQNkXo4piEa6UgHCK+93TJ2k1T8fbTlFo6OJmfOLwqLHlSvsT9eJfSEM Vgjw== X-Gm-Message-State: ACrzQf3qmyMiqCJt9HuRn6Wfnwt102lZz6HaowSmnkxgS5ify5jAzx7u 63f/hQI6U0sq5nTGVQIkk5oFdyap7Bc0Ag== X-Google-Smtp-Source: AMsMyM7rI+wudi/YZy6soz3qbkLas9PQkGcoEKqE+wdgoPdtqtP2Ux5Hurc61vIcLBJwNmCPC9WTXg== X-Received: by 2002:a05:6a00:150c:b0:563:9f05:bd68 with SMTP id q12-20020a056a00150c00b005639f05bd68mr6212973pfu.44.1665766121045; Fri, 14 Oct 2022 09:48:41 -0700 (PDT) Return-Path: Received: from localhost.localdomain ([49.206.13.138]) by smtp.gmail.com with ESMTPSA id f3-20020a62db03000000b0056265011136sm1963368pfg.112.2022.10.14.09.48.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Oct 2022 09:48:40 -0700 (PDT) From: "Sunil V L" To: devel@edk2.groups.io Subject: [edk2-staging/RiscV64QemuVirt PATCH V4 00/34] Add support for RISC-V virt machine Date: Fri, 14 Oct 2022 22:18:02 +0530 Message-Id: <20221014164836.1513036-1-sunilvl@ventanamicro.com> X-Mailer: git-send-email 2.38.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4076 Add support for RISC-V qemu virt machine. Most of the changes are migrated from edk2-platforms repo and followed the latest guidelines for EDK2 code structuring. The changes at a high level are, 1) MdePkg: - Add RISC-V register definitions - Add RISCV_EFI_BOOT_PROTOCOL related definitions - Add BaseRiscVSbiLib library to make ecall to machine mode firmware - Created Null instance of the NorFlashPlatformLib library class - Moved NorFlashPlatformLib.h from ArmPlatformPkg 2) UefiCpuPkg: - Refactor modules/libraries as per latest guidelines - Add RISC-V support in below modules/libraries. - CpuTimerLib, CpuExceptionHandlerLib, CpuDxe - Add new CpuTimerDxe module 3) ArmVirtPkg: - Migrate below libraries/modules to OvmfPkg - PlatformBootManagerLib, PlatformHasAcpiDtDxe - Fix up the consumers of these modules 4) OvmfPkg: - Refactor the libraries/modules as per latest guidelines - Add RISC-V support for below libraries/modules. - Sec, ResetSystemLib, PlatformInitLib, PlatformPei - Add optimized version of NorFlashDxe driver - Add NorFlashQemuLib (Copied from ArmVirtPkg and SbsaQemu) - Add new DSC/FDF files to build for RISC-V virt machine 5) MdeModulePkg/EmbeddedPkg: - Migrated NvVarStoreFormattedLib from EmbeddedPkg to MdeModulePkg - Fix up the consumers of NvVarStoreFormattedLib Changes since V3: 1) Addressed Abner's comments 2) Changed folder name from Ia32_X64 to Ia32X64 as per latest guidelines. 2) Rebased Changes since V2: 1) Fixed issues detected by CI (https://github.com/tianocore/edk2/pull/3471) 2) Added an extra patch to fix up the consumers of NvVarStoreFormattedLib Changes since V1: 1) Added couple of patches from Ard to optimize the NorFlashDxe in Ovmf. Note: There will be a separate patch series in future to update existing consumers of NorFlashDxe driver. 2) Migrated NvVarStoreFormattedLib from EmbeddedPkg to MdeModulePkg 3) Created Null instance of the NorFlashPlatformLib library class 4) Moved NorFlashPlatformLib.h from ArmPlatformPkg These changes are available at: https://github.com/vlsunil/edk2/tree/RiscV64QemuVirt The changes are tested on risc-v qemu with an additional patch series to enable pflash available at https://github.com/vlsunil/qemu/tree/pflash_v3 Sunil V L (34): MdePkg/Register: Add register definition header files for RISC-V MdePkg: Add RISCV_EFI_BOOT_PROTOCOL related definitions MdePkg/BaseLib: RISC-V: Add few more helper functions MdePkg: Add BaseRiscVSbiLib Library for RISC-V OvmfPkg/PlatformInitLib: Refactor to allow other architectures OvmfPkg/PlatformInitLib: Add support for RISC-V OvmfPkg/ResetSystemLib: Refactor to allow other architectures. OvmfPkg/ResetSystemLib: Add support for RISC-V OvmfPkg/Sec: Refactor to allow other architectures OvmfPkg/Sec: Add RISC-V support OvmfPkg/PlatformPei: Refactor to allow other architectures OvmfPkg/PlatformPei: Add support for RISC-V UefiCpuPkg/CpuTimerLib: Refactor to allow other architectures UefiCpuPkg/CpuTimerLib: Add support for RISC-V UefiCpuPkg/CpuExceptionHandlerLib: Refactor to allow other architectures UefiCpuPkg/CpuExceptionHandlerLib: Add support for RISC-V UefiCpuPkg/CpuDxe: Refactor to allow other architectures UefiCpuPkg/CpuDxe: Add support for RISC-V UefiCpuPkg/CpuDxe: Add RISCV_EFI_BOOT_PROTOCOL support UefiCpuPkg: Add CpuTimerDxe module ArmVirtPkg/PlatformHasAcpiDtDxe: Move to OvmfPkg ArmVirtPkg: Fix up the location of PlatformHasAcpiDtDxe ArmVirtPkg/PlatformBootManagerLib: Move to OvmfPkg ArmVirtPkg: Fix up the paths to PlatformBootManagerLib ArmPlatformPkg/NorFlashPlatformLib.h:Move to MdePkg EmbeddedPkg/NvVarStoreFormattedLib: Migrate to MdeModulePkg ArmVirtPkg: Update the references to NvVarStoreFormattedLib OvmfPkg: Add NorFlashQemuLib library OvmfPkg: Add Qemu NOR flash DXE driver OvmfPkg/NorFlashDxe: Avoid switching to array mode during writes OvmfPkg/NorFlashDxe: Avoid switching between modes in a tight loop OvmfPkg: RiscVVirt: Add Qemu Virt platform support Maintainers.txt: Add entry for OvmfPkg/RiscVVirt UefiCpuPkg/UefiCpuPkg.ci.yaml: Ignore RISC-V file ArmPlatformPkg/ArmPlatformPkg.dec | 4 - ArmVirtPkg/ArmVirtPkg.dec | 9 - EmbeddedPkg/EmbeddedPkg.dec | 3 - MdeModulePkg/MdeModulePkg.dec | 3 + MdePkg/MdePkg.dec | 13 + OvmfPkg/OvmfPkg.dec | 18 + ArmVirtPkg/ArmVirtCloudHv.dsc | 2 +- ArmVirtPkg/ArmVirtKvmTool.dsc | 2 +- ArmVirtPkg/ArmVirtQemu.dsc | 10 +- ArmVirtPkg/ArmVirtQemuKernel.dsc | 8 +- MdeModulePkg/MdeModulePkg.dsc | 2 + MdePkg/MdePkg.dsc | 4 + OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc | 726 ++++++++++++++++ UefiCpuPkg/UefiCpuPkg.dsc | 15 +- OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf | 406 +++++++++ ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf | 2 +- ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf | 2 +- {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf | 1 - MdePkg/Library/BaseLib/BaseLib.inf | 2 + MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf | 25 + MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf | 22 + OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf | 67 ++ OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf | 61 ++ OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf | 40 + OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf | 30 + {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf | 3 +- OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf | 31 +- OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf | 12 +- OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibBhyve.inf | 4 +- OvmfPkg/Library/ResetSystemLib/BaseResetSystemLibMicrovm.inf | 2 +- OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf | 15 +- OvmfPkg/Library/ResetSystemLib/DxeResetSystemLibMicrovm.inf | 4 +- {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf | 3 +- OvmfPkg/PlatformPei/PlatformPei.inf | 43 +- OvmfPkg/Sec/SecMain.inf | 34 +- UefiCpuPkg/CpuDxe/CpuDxe.inf | 39 +- UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf | 51 ++ UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf | 21 +- UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf | 8 +- UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf | 19 +- UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf | 8 +- UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf | 6 +- UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf | 9 +- {EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h | 0 MdePkg/Include/Library/BaseLib.h | 50 ++ MdePkg/Include/Library/BaseRiscVSbiLib.h | 127 +++ {ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h | 0 MdePkg/Include/Protocol/RiscVBootProtocol.h | 34 + MdePkg/Include/Register/RiscV64/RiscVEncoding.h | 119 +++ MdePkg/Include/Register/RiscV64/RiscVImpl.h | 25 + OvmfPkg/Drivers/NorFlashDxe/NorFlash.h | 422 +++++++++ OvmfPkg/Include/Library/PlatformInitLib.h | 6 + {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h | 0 OvmfPkg/PlatformPei/RiscV64/Platform.h | 97 +++ OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h | 0 OvmfPkg/Sec/RiscV64/SecMain.h | 65 ++ OvmfPkg/Sec/SecMainCommon.h | 73 ++ UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h | 0 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h | 0 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h | 0 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h | 0 UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h | 122 +-- UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h | 177 ++++ UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h | 0 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h | 116 +++ {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c | 0 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c | 227 +++++ MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c | 26 + OvmfPkg/Drivers/NorFlashDxe/NorFlash.c | 908 ++++++++++++++++++++ OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c | 123 +++ OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c | 509 +++++++++++ OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c | 777 +++++++++++++++++ OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c | 386 +++++++++ OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c | 136 +++ OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c | 40 + {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c | 0 {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c | 0 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c | 0 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c | 0 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c | 0 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c | 0 OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c | 0 OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c | 72 ++ OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c | 0 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c | 0 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c | 0 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c | 0 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c | 0 OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c | 0 OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c | 20 + OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c | 128 +++ {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c | 0 OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c | 0 OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c | 43 +- OvmfPkg/PlatformPei/RiscV64/MemDetect.c | 212 +++++ OvmfPkg/PlatformPei/RiscV64/Platform.c | 372 ++++++++ OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c | 0 OvmfPkg/Sec/{ => Ia32X64}/SecMain.c | 227 +---- OvmfPkg/Sec/RiscV64/SecMain.c | 573 ++++++++++++ OvmfPkg/Sec/SecMainCommon.c | 238 +++++ UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c | 0 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c | 0 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c | 0 UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c | 0 UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c | 365 ++++++++ UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c | 294 +++++++ UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c | 0 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c | 0 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c | 0 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c | 0 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c | 0 UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c | 0 UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c} | 83 +- UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c | 0 UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c | 0 UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c | 199 +++++ ArmVirtPkg/ArmVirtPkg.ci.yaml | 1 - ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 2 +- Maintainers.txt | 4 + MdePkg/Library/BaseLib/RiscV64/CpuScratch.S | 31 + MdePkg/Library/BaseLib/RiscV64/ReadTimer.S | 23 + MdePkg/Library/BaseLib/RiscV64/RiscVInterrupt.S | 53 +- OvmfPkg/OvmfPkg.ci.yaml | 1 + OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc | 66 ++ OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc | 79 ++ OvmfPkg/Sec/RiscV64/SecEntry.S | 23 + UefiCpuPkg/CpuTimerDxe/CpuTimer.uni | 14 + UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni | 12 + UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S | 105 +++ UefiCpuPkg/UefiCpuPkg.ci.yaml | 1 + 138 files changed, 9064 insertions(+), 531 deletions(-) create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.dsc create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf (96%) create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.inf create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.inf create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.inf rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBootManagerLib.inf (92%) rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf (89%) create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerDxe.inf rename {EmbeddedPkg => MdeModulePkg}/Include/Guid/NvVarStoreFormatted.h (100%) create mode 100644 MdePkg/Include/Library/BaseRiscVSbiLib.h rename {ArmPlatformPkg => MdePkg}/Include/Library/NorFlashPlatformLib.h (100%) create mode 100644 MdePkg/Include/Protocol/RiscVBootProtocol.h create mode 100644 MdePkg/Include/Register/RiscV64/RiscVEncoding.h create mode 100644 MdePkg/Include/Register/RiscV64/RiscVImpl.h create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.h rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.h (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.h (100%) create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.h rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.h (100%) create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.h create mode 100644 OvmfPkg/Sec/SecMainCommon.h copy UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.h (100%) rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.h (100%) rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.h (100%) rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.h (100%) rename UefiCpuPkg/CpuDxe/{ => RiscV64}/CpuDxe.h (69%) create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.h rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.h (100%) create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/CpuExceptionHandlerLib.h rename {EmbeddedPkg => MdeModulePkg}/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.c (100%) create mode 100644 MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.c create mode 100644 MdePkg/Library/NorFlashPlatformLibNull/NorFlashPlatformLibNull.c create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlash.c create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashBlockIoDxe.c create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashDxe.c create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashFvb.c create mode 100644 OvmfPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.c create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuLib.c create mode 100644 OvmfPkg/Library/NorFlashQemuLib/NorFlashQemuUnifiedLib.c rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/PlatformBm.c (100%) rename {ArmVirtPkg/Library/PlatformBootManagerLib => OvmfPkg/Library/PlatformBootManagerLibVirt}/QemuKernel.c (100%) rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Cmos.c (100%) rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdx.c (100%) rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/IntelTdxNull.c (100%) rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/MemDetect.c (100%) rename OvmfPkg/Library/PlatformInitLib/{ => Ia32X64}/Platform.c (100%) create mode 100644 OvmfPkg/Library/PlatformInitLib/RiscV64/PlatformPeiLib.c rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdown.c (100%) rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/BaseResetShutdownBhyve.c (100%) rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetShutdown.c (100%) rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/DxeResetSystemLibMicrovm.c (100%) rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLib.c (100%) rename OvmfPkg/Library/ResetSystemLib/{ => Ia32X64}/ResetSystemLibMicrovm.c (100%) create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/DxeResetShutdown.c create mode 100644 OvmfPkg/Library/ResetSystemLib/RiscV64/ResetSystemLib.c rename {ArmVirtPkg => OvmfPkg}/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.c (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/AmdSev.c (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/ClearCache.c (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/FeatureControl.c (100%) copy OvmfPkg/PlatformPei/{ => Ia32X64}/Fv.c (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/IntelTdx.c (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemDetect.c (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/MemTypeInfo.c (100%) rename OvmfPkg/PlatformPei/{ => Ia32X64}/Platform.c (100%) rename OvmfPkg/PlatformPei/{ => RiscV64}/Fv.c (63%) create mode 100644 OvmfPkg/PlatformPei/RiscV64/MemDetect.c create mode 100644 OvmfPkg/PlatformPei/RiscV64/Platform.c rename OvmfPkg/Sec/{ => Ia32X64}/AmdSev.c (100%) rename OvmfPkg/Sec/{ => Ia32X64}/SecMain.c (75%) create mode 100644 OvmfPkg/Sec/RiscV64/SecMain.c create mode 100644 OvmfPkg/Sec/SecMainCommon.c rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuDxe.c (100%) rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuGdt.c (100%) rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuMp.c (100%) rename UefiCpuPkg/CpuDxe/{ => Ia32X64}/CpuPageTable.c (100%) create mode 100644 UefiCpuPkg/CpuDxe/RiscV64/CpuDxe.c create mode 100644 UefiCpuPkg/CpuTimerDxe/RiscV64/Timer.c rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/CpuExceptionCommon.c (100%) rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/DxeException.c (100%) rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiCpuException.c (100%) rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/PeiDxeSmmCpuException.c (100%) rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SecPeiCpuException.c (100%) copy UefiCpuPkg/Library/CpuExceptionHandlerLib/{ => Ia32X64}/SmmException.c (100%) rename UefiCpuPkg/Library/CpuExceptionHandlerLib/{SmmException.c => RiscV64/CpuExceptionHandlerLib.c} (67%) rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/BaseCpuTimerLib.c (100%) rename UefiCpuPkg/Library/CpuTimerLib/{ => Ia32X64}/CpuTimerLib.c (100%) create mode 100644 UefiCpuPkg/Library/CpuTimerLib/RiscV64/CpuTimerLib.c create mode 100644 MdePkg/Library/BaseLib/RiscV64/CpuScratch.S create mode 100644 MdePkg/Library/BaseLib/RiscV64/ReadTimer.S create mode 100644 OvmfPkg/Platforms/RiscVVirt/RiscVVirt.fdf.inc create mode 100644 OvmfPkg/Platforms/RiscVVirt/VarStore.fdf.inc create mode 100644 OvmfPkg/Sec/RiscV64/SecEntry.S create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimer.uni create mode 100644 UefiCpuPkg/CpuTimerDxe/CpuTimerExtra.uni create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/RiscV64/SupervisorTrapHandler.S -- 2.38.0