From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 9662DD8026E for ; Tue, 9 Jul 2024 13:33:38 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=9wsa+/2iYaeooUn98+XCZg2Vd6oPrQyBNZYMSF9YCqM=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Transfer-Encoding; s=20240206; t=1720532018; v=1; b=zecoDtxcD/utMG1x/RqGic1J/i2REQaiI3gZNXwv0kAg4dC6sjmSHbagbjucYrELJDOT3anb 16fqCdiX2DTpGLvtKvW+czoZbCXN2qPn91WyIlbjl+JLy3WE1Z5ufAfetSx+N7SBKMATVRDmo2h s4lIWbrbwsr7vgCSxY/UebkkEWksAh7ncOZTGOsMvSkLCyZfjDQLMifQwVS54ffnLUEyiu+gc9T EMIr0xwAvsXxBui03BJIygfIDMsV/270QE66+81QNCW2lTQDf0NxhL1SIWCjw6XPqAnonwUUxkD 3XpqKTUhq4kVgEOS2leqfzx/zlVpfCqNxAbjHCVyYvGvQ== X-Received: by 127.0.0.2 with SMTP id IJBnYY7687511x14oz2ipJBI; Tue, 09 Jul 2024 06:33:37 -0700 X-Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) by mx.groups.io with SMTP id smtpd.web10.11984.1720528681792210240 for ; Tue, 09 Jul 2024 05:38:02 -0700 X-Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-37636c3872bso20232305ab.3 for ; Tue, 09 Jul 2024 05:38:01 -0700 (PDT) X-Gm-Message-State: JFPWF67c58Ov3u9nmZru0N6Qx7686176AA= X-Google-Smtp-Source: AGHT+IHMgVaBy7sb98P4cIxYwK0kq0K8MViTNg6NZIl85AFsAiCEqf7ynIserUx27H8T6GEkjTWq+A== X-Received: by 2002:a05:6e02:1d96:b0:374:ada1:296b with SMTP id e9e14a558f8ab-38a572134d7mr26324805ab.8.1720528679475; Tue, 09 Jul 2024 05:37:59 -0700 (PDT) X-Received: from localhost.localdomain ([47.246.98.206]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-70b439b9555sm1675664b3a.198.2024.07.09.05.37.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jul 2024 05:37:57 -0700 (PDT) From: Evan Chai X-Google-Original-From: Evan Chai To: devel@edk2.groups.io Cc: Evan Chai , Andrei Warkentin , Sunil V L , Yong Li Subject: [edk2-devel] [PATCH V2 1/2] RiscVQemuServerPlatform: Initial commit for RISC-V Qemu-based Server platform Date: Tue, 9 Jul 2024 20:37:26 +0800 Message-ID: <20240709123730.1694-2-evan.chai@linux.alibaba.com> In-Reply-To: <20240709123730.1694-1-evan.chai@linux.alibaba.com> References: <20240709123730.1694-1-evan.chai@linux.alibaba.com> MIME-Version: 1.0 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 Resent-Date: Tue, 09 Jul 2024 06:33:35 -0700 Resent-From: evanchai91@gmail.com Reply-To: devel@edk2.groups.io,evanchai91@gmail.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=zecoDtxc; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=gmail.com (policy=none) Leveraging RiscVVirt code, this initial commit establishes the foundational framework for the first phase of the RISC-V Qemu-based Server platform. Cc: Andrei Warkentin Cc: Sunil V L Cc: Yong Li Signed-off-by: Evan Chai --- Platform/Qemu/RiscVQemuServerPlatform/Documents/Media/RISC-V_Platform_EDK2_Firmware_Enabling_Philosophy.jpg | Bin 0 -> 329871 bytes Platform/Qemu/RiscVQemuServerPlatform/Readme.md | 355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc.inc | 341 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf | 315 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf.inc | 41 +++++++++++++++++++++++++++++++++++++++++ Platform/Qemu/RiscVQemuServerPlatform/VarStore.fdf.inc | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 1613 insertions(+) diff --git a/Platform/Qemu/RiscVQemuServerPlatform/Documents/Media/RISC-V_Platform_EDK2_Firmware_Enabling_Philosophy.jpg b/Platform/Qemu/RiscVQemuServerPlatform/Documents/Media/RISC-V_Platform_EDK2_Firmware_Enabling_Philosophy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e94ab4dd38bcb9d5cfe930dae91f9e34f485eb45 GIT binary patch literal 329871 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

p`P6Ek#OyF65_E~Zt5;vnK%yFW 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

1r+418xh!J*K|<^L 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

cqae`PYZ__+ZT=#}-Y;SF2{aJ%JoP31af!*E!dn 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 z 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 CBT}*e literal 0 HcmV?d00001 diff --git a/Platform/Qemu/RiscVQemuServerPlatform/Readme.md b/Platform/Qemu/RiscVQemuServerPlatform/Readme.md new file mode 100644 index 00000000..94a07fdf --- /dev/null +++ b/Platform/Qemu/RiscVQemuServerPlatform/Readme.md @@ -0,0 +1,355 @@ +# RISC-V UEFI Server Reference Board +The goal of this document is to provide a generic server platform firmware solution applicable to systems built on the RISC-V architecture SOC. + +## Revision History + +| Document Number | Revision Number | Description | Maintainer | Revision Date | +| ------------- | --- | :--------------------------------------------------------------------- | ---------- | -------- | +| \ | 0.1 | Initial release : create RISC-V UEFI server reference board | [Evan Chai](evan.chai@intel.com) | Mar 2024 | +| | 0.2 | | | | + + +## INDEX +* 1 [Overview](#1-Overview) +* 2 [Server SOC Reference Model](#2-Server-SOC-Reference-Model) +* 3 [Boot Flow](#3-Boot-Flow) +* 4 [Verification](#4-Verification) +* 5 [Pending Tasks](#5-Pending-Tasks) +* 6 [Known Issues](#6-Known-Issues) +* 7 [Appendix](#7-Appendix) + + +## 1 Overview +### 1.1 References +* UEFI Specification v2.10: https://uefi.org/sites/default/files/resources/UEFI_Spec_2_10_Aug29.pdf +* UEFI PI Specification v1.8.0: https://uefi.org/sites/default/files/resources/UEFI_PI_Spec_1_8_March3.pdf +* ACPI Specification v6.5: https://uefi.org/sites/default/files/resources/ACPI_Spec_6_5_Aug29.pdf +* OpenSbi Specification: https://github.com/riscv-software-src/opensbi +* BRS Specification: https://github.com/riscv-non-isa/riscv-brs +* Device Tree Specification v0.4: https://www.devicetree.org/ +* Smbios Specification v3.7.0: https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.7.0.pdf +* Server Soc Specification: https://github.com/riscv-non-isa/server-soc +* Server Platform Specification: https://github.com/riscv-non-isa/riscv-server-platform + +### 1.2 Target Audience +This document is intended for the following readers: +* IHVs and OSVs who actively engaged in the building of the RISC-V ecosystem, serving as a vital component in the vertical integration of systems. +* Bios developers, either those who create general-purpose BIOS and other firmware products or those who modify these products for use in various vendor architecture-based products. +* Other stakeholders who are interested in the RISC-V platform and have firmware development needs. + +### 1.3 Terminology + +| Term | Description +|:-------------------- |:------------------------- +| UEFI | Unified Extensible Firmware Interface +| SBI | Supervisor Binary Interface +| BRS | Boot and Runtime Services +| BMC | Baseboard Management Component BMC's main function is to automatically monitor the system platform management events, the events recorded in the system event log. +| OOB | Out of Band +| RVI | [RISC-V International](https://riscv.org/) +| RISE | [RISC-V Software Ecosystem](https://wiki.riseproject.dev/display/HOME/About+RISE) +| SCT | UEFI Self Certification Tests +| FWTS | Firmware Test Suite +| SPL | U-Boot Second Program Loader +| SAL | System Abstraction Layer + + +## 2 Server SOC Reference Model +This chapter introduces the hardware-level topology of ‘ssoc_ref’, allowing users to gain insights into the device list and resource allocation under this model. + +### 2.1 Requirements +This qemu virtual machine (server soc reference board) is required to be compliant with RISC-V [Server SOC Spec](https://github.com/riscv-non-isa/server-soc) (the commit id at writing this doc is aec20046c35b108f76a11a751f754505aaad7800) as much as possible. + +#### Table 1 Server SOC Requirement + +| Items | Requirements | On qemu reference board (1st version)| Future Plan +|:-------------------- |:-------------------------|:-------------------- |:------------------------- +| 2.1. Clocks and Timers | time CSR | supported +| 2.2. External Interrupt Controllers | AIA | supported with non-upstream patches +| 2.3. Input-Output Memory Management Unit (IOMMU) | RISC-V IOMMU spec | no support (need qemu/linux patches) | Yes +| 2.4. PCIe Subsystem Integration | PCIe features | supported using existing qemu implementation | +| 2.5. Reliability, Availability, and Serviceability (RAS) | The level of RAS implemented by the SoC is UNSPECIFIED | not considered +| 2.6. Quality of Service | capacity and bandwidth controller register interface (CBQRI), etc. | not considered | +| 2.7. Manageability | BMC | no support | TBD +| 2.8. Performance Monitoring | HPM counters | supported | +| 2.9. Security Requirements | On PCIe, off-chip DRAM and TPM | no support (follow qemu existing features) | Yes (for TPM) +| Harts features | (removed from this spec) | support the previous stated hart features | + + +### 2.2 High Level Design +The Implementation Choices +* Make the configuration as fixed as possible so that this new machine is easy-to-go and less confusing. +* Remove the unnecessary devices as many as possible, e.g. CLINT/PLIC are removed. +* Keep the MemMap entries as similar as RiscVVirt vm for easy adoption at the early stage. +* Keep dtb entries as small as possible. +#### Table 2 Devices and Memory Mappings + +| Devices | Base Addr | Size | Comment +|:-------------------- |:-------------------------|:-------------------- |:------------------------- +| MROM | 0x1000 | 0xf000 | +| TEST | 0x100000 | 0x1000 | For reset function (name misleading?) +| RTC | 0x101000 | 0x1000 | +| ACLINT | 0x2000000 | 0x10000 | aclint mtimer (spec definition missed) +| PCIE_PIO | 0x3000000 | 0x10000 | +| APLIC_M | 0xc000000 | APLIC_SIZE(SSOC_CPUS_MAX) | fixed AIA +| APLIC_S | 0xd000000 | APLIC_SIZE(SSOC_CPUS_MAX) | +| UART0 | 0x10000000 | 0x100 | +| FW_CFG | 0x10200000 | 0x18 | depend on ACPI support on firmware +| FLASH | 0x20000000 | 0x4000000 | +| IMSIC_M | 0x24000000 | SSOC_IMSIC_MAX_SIZE | +| IMSIC_S | 0x28000000 | SSOC_IMSIC_MAX_SIZE | +| PCIE_ECAM | 0x30000000 | 0x10000000 | +| PCIE_MMIO | 0x40000000 | 0x40000000 | +| DRAM | 0x80000000 | 0xff80000000ull (max) | still one continuous range +| VIRT64_HIGH_PCIE_MMIO | 0x10000000000ull | 0x10000000000ull | different from RiscVVirt +| AHCI | Handled as the PCIe device | | +| EHCI | Handled as the PCIe device | | +| IOMMU | to be decided | | patch yet to integrate (kernel/qemu/…) + +### 2.3 Qemu/Guest FW Interface +#### Hardcode Addresses +It's possible qemu and guest have no explicit interface about some information, e.g. address of specific devices, but both of them hardcodes the same address to access the device. + +## 3 Boot Flow +The following diagram illustrates various platform initialization scenarios. This document will not cover the detailed work of initializing on real hardware platforms, as it is beyond its scope. Our focus will be on the more general firmware initialization tasks performed on the qemu emulator. See the part of the diagram indicated by the blue color, which corresponds to QemuServerPlatform Boot Flow. + +Note: _For specifics on the qemu Server SOC reference model in this document, it is essential to consult both the latest developments in the qemu source code and the definition in the server platform specifications. Relevant information for both can be obtained from Server SOC TG and Server Platform TG of RVI.c_ + +#### Figuire 1 RISC-V Platform EDK2 Firmware Enabling Philosophy + +![RISC-V_Platform_EDK2_Firmware_Enabling_Philosophy](Documents/Media/RISC-V_Platform_EDK2_Firmware_Enabling_Philosophy.jpg) + +### 3.1 The Traditional Boot Flow + +[PI Architecture Firmware Phases](https://uefi.org/specs/PI/1.8/V2_Overview.html#pi-architecture-firmware-phases) shows the phases that a platform with PI Architecture firmware will execute. + +#### Figuire 2 PI Architecture Firmware Phases + +![PI_Boot_Phases](https://uefi.org/specs/PI/1.8/_images/V2_Overview-2.png) + +_In a PI Architecture firmware implementation, the phase executed prior to DXE is PEI. This specification covers the transition from the PEI to the DXE phase, the DXE phase, and the DXE phase’s interaction with the BDS phase. The DXE phase does not require a PEI phase to be executed. The only requirement for the DXE phase to execute is the presence of a valid HOB list. There are many different implementations that can produce a valid HOB list for the DXE phase to execute. The PEI phase in a PI Architecture firmware implementation is just one of many possible implementations._ + +Based on the content quoted from the PI specification above, it is evident that the PEI phase is merely a traditional and integral part of the UEFI boot flow. In actual PI Architecture firmware implementations, it is not mandatory. Currently, the primary purpose of the PEI Phase is to perform memory initialization and pass necessary HOBs to DXE. + +For the former, the alternative solution for the former involves the implementation of OOB firmware, which is currently beyond the scope of this document. Regarding the latter, we can move more works for building Hand-Off Blocks (HOBs) to the SEC phase. All of these considerations collectively contribute to providing additional insights and flexibility for the practical initiation of hardware. + +### 3.2 Alternative Boot Flow +The boot flow without the PEI phase, also known as the Pei-Less flow, is the initialization approach that will be further discussed in this document. Detailed standards for Pei-Less can be obtained from RISE's Firmware TG.(See [Boot Flow](https://wiki.riseproject.dev/display/HOME/EDK2_00_18+-+RISC-V+QEMU+Server+Reference+Platform?preview=/25395218/25395220/EDK2%20implementation%20choices%20for%20RISC-V%20platforms.pdf) in Project No. EDK2_00_18) + +#### 3.2.1 SEC Phase +See [HOB Translations](https://uefi.org/specs/PI/1.8/V2_DXE_Foundation.html#hob-translations) for more information on HOB types. + +#### Figuire 3 HOB List +![V2_DXE_Foundation-2](https://uefi.org/specs/PI/1.8/_images/V2_DXE_Foundation-2.png) + +The HOBs list, as mandated by the PI specification, is illustrated in Figure 2.3. It is recommended to refer to the SecMain structure in RiscVVirt for guidance. + +Figure 2.3 displays the HOBs list, a prerequisite set by the PI specification for readiness before entering the DXE phase. For additional insights, it is recommended to refer to the SecMain module in RiscVVirt. + +Regarding memory initialization, specific details are intentionally omitted in this document. The recommended strategy involves the use of OOB firmware, like SPL. This provides input to the System Memory HOB generated by the UEFI firmware during the SEC phase, and the input for HOB is extracted from static data in the device tree, including entries like 'memory' by AddMemoryBaseSizeHob() and 'reserved-memory BuildMemoryAllocationHob().' + +The creation of HOBs for IO, MMIO, and other resources provides SOC vendors with the flexibility to customize according to their chip specifications. The PopulateIoResources() function provides a straightforward approach to achieve this customization. + +It is essential to emphasize that RiscVVirt adopts a separate Flash Descriptor (FD) approach for firmware code and Variables. The advantage is clear as it allows for the protection of the firmware code by setting it as read-only, while conferring write permissions exclusively to the Variable FD, effectively ensuring the security of the firmware. Particularly, this approach provides convenient and flexible control, especially when dealing with firmware upgrade actions in the future. Of course, in qemu-based firmware development, virtualizing two or even more flashes is extremely straightforward. However, it's worth mentioning that in many real hardware platforms, the single-flash configuration is more common, and further elaboration on this point is not necessary here. + +In the upcoming server platform solution, we will continue to adopt a similar approach as RiscVVirt. However, there is a slight difference in the treatment of the Variable FD. + +#### 3.2.2 DXE Phase +The following table supplements the missing implementation details in Table 2.5 of the PI specification. The DXE Foundation is abstracted from the platform through the DXE Architectural Protocols. The DXE Architectural Protocols manifest the platform-specific components of the DXE Foundation. DXE drivers that are loaded and executed by the DXE Dispatcher component of the DXE Foundation must produce these protocols. + +For implementations outside of the EmbeddedPkg solutions, please follow the guidance outlined in the table. + + +#### Table 3 DXE Architectural Protocols +| Protocol Name | Driver Path in use | Driver Compatibility **1** | Task required | +| ------------------------------------ | ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------------ | +| Security Architectural | MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf | Platform independent | no extra work | +| CPU Architectural | UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf | Platform dependent | no extra work | +| Metronome Architectural | EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf (**Note**: Precision in the EmbeddedPkg version is limited to microseconds, whereas the MdeModulePkg version offers precision down to nanoseconds.) | Platform dependent | no extra work | +| Timer Architectural | UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf (**Note**: In S mode, utilize the TIME CSR for implementing GetTimer, and achieve SetTimer by the ‘Set Timer’ interface of SBI Timer Extension 6.1. Please note that the Runtime type of timer service isn’t presently supported yet. Runtime type of timer service will be produced by RealTimeClock.) | Platform dependent | no extra work | +| BDS Architectural | MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | Platform independent | no extra work | +| Watchdog Timer Architectural | MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf (**Note**: It depends on TimerLib and ResetLib, the implementation of which is typically determined by the different CPU architectures.) | Platform independent | no extra work | +| Runtime Architectural | MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf (**Note**: Some functionalities in the RISC-V version of CacheMaintenanceLib are still under development.) | Platform independent | need to complete the remaining functions of CacheMaintenanceLib. | +| Variable Architectural | MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf (**Note**: The dependency issue on VirtNorFlashDxe in RiscVVirt should be fixed. ) | Platform independent | need to clean up 'APRIORI DXE' | +| Variable Write ArchitecturalProtocol | MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf | Platform independent | no extra work | +| Monotonic Counter Architectural | MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf | Platform independent | no extra work | +| Reset Architectural | MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf (**Note**: ResetSystemLib implements warm reset, cold reset, and shutdown through the SBI interface.) | Platform independent | no extra work | +| Real Time Clock Architectural | EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf (**Note**: Some features in RealTimeClockLib remain unimplemented, including GetWakeUpTime/SetWakeUpTime. The present RealTimeClockLib is specifically designed for qemu; future adaptations should implement their own RTC timer based on the platform's needs.) | Platform dependent | no extra work | +| Capsule Architectural Protocol | MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf (**Note**: It depends on CacheMaintenanceLib and ResetLib.) | Platform independent | no extra work | + +Note: *1.The 'Driver Compatibility, task required' column addresses platform dependencies exclusively at the DXE driver level. The platform-specificity of the consumed libraries does not influence the conclusion.* + +#### 3.2.3 Network Stack +The Server SOC model currently in use, 'rvsp-ref,' comes with e1000 as the default NIC device. However, as this device lacks an integrated UEFI UNDI driver, it cannot provide the foundational services to enable the network. From a testing perspective, here are two recommended steps: +* Build UndiRuntimeDxe to your firmware FD, with the following patch: edk2-platforms/Drivers/OptionRomPkg/UndiRuntimeDxe/UndiRuntimeDxe.inf +* Append NIC ‘i82557b’ to the qemu command line. See the reference command in Chapter 4. + +From a product implementation perspective, it is not recommended to directly use UndiRuntimeDxe as the provider for the UNDI services. It is more appropriate to provide the UNDI services based on the NIC device integrated into the platform. + +### 3.3 Extra work for Fdt-to-OS +The DXE Foundation produces the UEFI System Table, and the UEFI System Table is consumed by every DXE driver and executable image invoked by the DXE Dispatcher and BDS. It contains all the information required for these components to utilize the services provided by the DXE Foundation and the services provided by any previously loaded DXE driver. [UEFI System Table and Related Components](https://uefi.org/specs/PI/1.8/V2_DXE_Foundation.html#uefi-system-table-and-related-components) shows the various components that are available through the UEFI System Table. + +#### Figuire 4 UEFI System Table and Related Components +![V2_DXE_Foundation-3](https://uefi.org/specs/PI/1.8/_images/V2_DXE_Foundation-3.png) + +As shown in figure 9.2, the UEFI Configuration Tables are an extensible list of tables that describe the configuration of the platform. Today, this includes pointers to tables such as DXE Services, the HOB list, ACPI table, SMBIOS table, and the SAL System Table. This list may be expanded in the future as new table types are defined. + +Due to the broad usage of device trees in embedded firmware products, several chip manufacturers in the upstream and downstream supply chains use static data from the device tree to initialize specific peripherals. For compatibility reasons, it is essential to install the device tree pointer into the system configuration table. Two DXE drivers are available as references: + +#### Table 4 The Proposal for FdtTabGuid +|Table Guid |Driver Path in use |Comments| +|:-------------------- |:-------------------------|:--------------------| +|gFdtTableGuid |EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf |Using in RiscVVirt| +|gFdtTableGuid |Silicon/RISCV/ProcessorPkg/Universal/FdtDxe/FdtDxe.inf |The streamlined DXE driver can also meet if no required for FdtClientProtocl| + +### 3.4 DT File Decoding +The DXE driver FdtClientDxe, mentioned in the previous section, supplies a limited set of APIs for parsing DT binary, handling fundamental DT data extraction tasks. + +Users with more advanced demands can turn to another DXE service produced by [FdtBusPkg](https://github.com/intel/FdtBusPkg), which offers an extensive array of APIs to meet the requirements of more complex scenarios. Detailed information is accessible in the firmware TG of RISE community (Project No. [EDK2_00_03](https://wiki.riseproject.dev/display/HOME/Firmware+Projects)), and the source code is available from [FdtBusPkg](https://github.com/intel/FdtBusPkg) repository. It will be upstreamed to the [edk2](https://github.com/tianocore/edk2) repository in the future, and any suggestions or requirements for improvement are encouraged before this transition. + +### 3.5 OpenSbi +It is recommended to align with the version of OpenSBI in the [RISC-V BRS Development Suite Repository](https://github.com/intel/rv-brs-test-suite). The binary file can be found at the following path: ./rv-brs-test-suite/brsi/scripts/opensbi/build/platform/generic/firmware/fw_dynamic.bin + +__Or build it by the command example1__: +``` +cd opensbi +make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=generic +``` +### 3.6 OS Image +Similarly, the BRS Repo offers an OS image based on RISC-V. To validate the boot flow, you can make use of the prebuilt images located in the test suite at /rv-brs-test-suite/brsi/prebuilt_images/. For those interested in building their own image, please refer to the repository guidance for detailed steps. + +## 4 Verification +The tests covered in this document are based on the BRS spec, focusing on two primary modules: SCT and FWTS. The relevant test scripts, pre-build image and guidance can be obtained from the [RISC-V BRS Development Suite Repository](https://github.com/intel/rv-brs-test-suite): + +__Command example2__: +``` + ./qemu-system-riscv64 -nographic -m 8G -smp 2 \ + -machine rvsp-ref,pflash0=pflash0,pflash1=pflash1 \ + -blockdev node-name=pflash0,driver=file,read-only=on,filename=$FW_DIR/RISCV_SP_CODE.fd \ + -blockdev node-name=pflash1,driver=file,filename=$FW_DIR/RISCV_SP_VARS.fd \ + -bios $Sbi_DIR/fw_dynamic.bin \ + -drive file=$Img_DIR/brs_live_image.img,if=ide,format=raw +``` + +__Note__: +* _‘rvsp-ref’ is a specified qemu-based SOC model, whose source code is still under development and will be accessible from the RVI staging repository later._ +* _The Pre-build image ‘brs_live_image.img,if’ can be downloaded in RISC-V BRS Development Suite repository, or you can build it by yourself. See 3.6_ +* _‘-bios $Sbi_DIR/fw_dynamic.bin’ the parameter points to the opensbi path. See more in 3.5._ + +In general, a series of modules related to Network are enabled by default. However, during SCT test execution, it is noticed that most Network test items fail to pass. The most likely reason is the lack of a UNDI driver built in the current platform firmware codebase. So, if you intend to enable the edk2 network stack with QEMU in the boot flow, it is suggested to use the following command: + +__Command example3__: +``` + Command example2 \ + -device i82557b,netdev=net2 \ + -netdev type=user,id=net2 +``` + +## 5 Pending Tasks +The listed items in the table represent ongoing firmware development tasks that are still unfinished. Some specifications are in the process of refinement, and a few are yet to be drafted. Please refer to subsequent updates from the RISE community for more information. +### 5.1 Bios Requirements and TODOs + +#### Table 5-1 Bios Requirements +| ID | Requirements/TODOs | Comment | +| ---- | ------------------------------ | ------------------------------------------------------------ | +| 1 | 'APRIORI DXE' cleaning up | Usage of 'APRIORI DXE' syntax is strictly forbidden going forward, regardless of the rationale. | +| 2 | Implement a generic ECAM model | Support for RC configuration via PCDs, DT properties, or any other form of input. | +| 3 | ACPI enabling | The establishment of all ACPI tables is currently achieved through qemu, leveraging a series of libraries such as QemuFwCfgLib to interact with the Linux kernel. The following task is to implement the publishment of all ACPI tables solely through firmware. | +| 4 | Smbios enabling | The upcoming tasks for SMBIOS should be handled exclusively through firmware publishment, replacing the existing qemu method entirely. | +| 5 | FWTS test | Upon the completion of tasks 3 and 4, the pass ratio for FWTS should be maintained at a specific benchmark. | +| 6 | Security | Not started | +| 7 | TPM | Not started | + +### 5.2 UEFI Implementation and TODOs + +#### Table 5-2 Upcoming UEFI Features List + +| Task Category | Task Description | Comments | +|------------------------------|-----------------------------------------------------------|-------------------------------------------------------------------------| +| \# Enable Non-Virtio devices | 1. Add Memory mapped AHCI controller, to enable SATA device | Inlcude drivers for AHCI and Sata, eg: OvmfPkg/SataControllerDxe/SataControllerDxe.inf MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf | +| | 2. Add Memory mapped EHCI/XHCI controller to enable USB devices | Inlcude drivers for AHCI and Sata, eg: OvmfPkg/SataControllerDxe/SataControllerDxe.inf MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf | +| | 3. Clean-up OVMF version of the NOR flash DXE driver, which supports QEMU's NOR flash emulation | Existing OVMF Norflash driver will cause some BRS related cases’ failure, this takes includes the code clean-up and bug fixes to the existing Norflash drvier in OVMF: ExitBootServicesTestVariable * 1, BS.GetNextMonotonicCount * 3, RT.SetVariable - Non-volatile variable after system reset * 4, RT.SetTime - Verify xx after change * 8 | +| | 4. Enable non-virtio network, eg: E1000E NIC | This may depend on QEMU side implementation, and the server platform spec requirement, can take it as low priority and use virtio-net first. | +| | 5. Enable non-virto VGA display | This may depend on QEMU side implementation, and the server platform spec requirement, can take it as low priority and use virtio-gpu first. | +| \# Add initial support for static ACPI tables | 6. Add the DSDT, FADT, GTDT, SPCR tables for ServerPlatform-Ref platform, | This can refer to SBSA’s implementation https://github.com/tianocore/edk2-platforms/commit/4476e34cf93458e0ea84820fb88e82a2997e5075 | +| | 7. Handle EHCI and XHCI in DSDT, not to try to initialize non-existing hardware | This can refer to SBSA’s implementation https://www.mail-archive.com/devel@edk2.groups.io/msg64706.html | +| \# Add SMBIOS tables | 8. Add SMBIOS tables by referencing ArmPkg/Universal/Smbios, set PcdSmbiosVersion to the version as required by RISCV server platform spec | Refer to https://github.com/tianocore/edk2-platforms/commit/c2016d9b6836acc27df939f0cccffe61c1bac492 | +| | 9. Add implementation that provides the system information. The serial numbers, asset tags etc. are currently all fixed strings, to allow fwts to pass without errors. | Refer to https://github.com/tianocore/edk2-platforms/tree/master/Platform/Qemu/SbsaQemu/OemMiscLib | +| \# Move drivers toward to FdtBusPkg-based implementation (This will not be 1st priority) | 10. Verify and replace the OVMF Norflash driver to device tree-based Norflash driver | Refer to https://github.com/intel/FdtBusPkg | +| | 11. Verify and replace the PCI root bridge driver to device tree-based PCI root bridge driver | Refer to https://github.com/intel/FdtBusPkg | +| \# MSIC | 12. Initiate the design by Intel, keep ReadMe.md update with partner | Refer to https://github.com/tianocore/edk2-platforms/blob/master/Platform/Qemu/SbsaQemu/Readme.md | +| | | | + +## 6 Known Issues + +The following table outlines the current known issues, which will be resolved gradually during the subsequent phases of development. + +#### Table 6 Known Issues +| No. | Issue Description | Cause | Comment | +| ---- | --------------------------- | -------------------------------------------- | --------------------- | +| 1 | Graphic device doesn’t work | ‘rvsp-ref’ doesn’t provide a default GPU yet | Will do in next phase | +| 2 | ACPI/Smbios don’t work | Not firmware implementation | Will do in next phase | + +## 7 Appendix + + + +### 7.1 Building and running based on BRS environment + +1. Build brs test suit +``` +git clone https://github.com/intel/rv-brs-test-suite.git +``` + +Please refer to detailed build steps from [README.md](https://github.com/intel/rv-brs-test-suite/blob/main/README.md), then you will get the following stuff: +``` + QEMU_DIR=$WORKSPACE/rv-brs-test-suite/brsi/scripts/qemu/build + BRS_IMG_DIR=$WORKSPACE/rv-brs-test-suite/brsi/scripts/output + OPENSBI_DIR=$WORKSPACE/rv-brs-test-suite/brsi/scripts/opensbi/build/platform/generic/firmware + EDK2_DIR=$WORKSPACE/rv-brs-test-suite/brsi/scripts/Build/RiscVQemuServerPlatform/DEBUG_GCC5/FV +``` + +2. Boot Execution(See Command example2) +``` +$QEMU_DIR/qemu-system-riscv64 \ + -machine rvsp-ref,pflash0=pflash0,pflash1=pflash1 \ + -blockdev node-name=pflash0,driver=file,read-only=on,filename=$EDK2_DIR/RISCV_SP_CODE.fd \ + -blockdev node-name=pflash1,driver=file,filename=$EDK2_DIR/RISCV_SP_VARS.fd \ + -bios $OPENSBI_DIR/fw_dynamic.bin \ + -drive file=$BRS_IMG_DIR/brs_live_image.img,if=ide,format=raw +``` +### 7.2 Compiling edk2 firmware separately outside of BRS +1. Building the RISC-V edk2 server platform + +``` +git clone https://github.com/tianocore/edk2.git +cd edk2 +git submodule update --init +cd .. + +git clone https://github.com/tianocore/edk2-platforms.git +cd edk2-platforms +git submodule update --init +cd .. + +export WORKSPACE=`pwd` +export GCC5_RISCV64_PREFIX=riscv64-linux-gnu- +export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms + +cd edk2 +make -C BaseTools clean +make -C BaseTools +source edksetup.sh +./edksetup.sh + +build -a RISCV64 -t GCC5 -p Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc +``` +2. Convert FD files +``` + truncate -s 32M Build/RiscVQemuServerPlatform/DEBUG_GCC5/FV/RISCV_SP_CODE.fd + truncate -s 32M Build/RiscVQemuServerPlatform/DEBUG_GCC5/FV/RISCV_SP_VARS.fd +``` + +## Contributors +- ~~Evan Chai ~~ +- Evan Chai \ No newline at end of file diff --git a/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc new file mode 100644 index 00000000..fe555968 --- /dev/null +++ b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc @@ -0,0 +1,489 @@ +## @file +# RISC-V Qemu-based Server Platform +# +# Copyright (c) 2024, Intel Corporation. All rights reserved.
+# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
+# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+# Copyright (C) 2024, Alibaba Group Holding Limited.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +[Defines] + PLATFORM_NAME = RiscVQemuServerPlatform + PLATFORM_GUID = A5FAC672-1D51-4461-AB37-B7DB202F34BA + PLATFORM_VERSION = 0.1 + DSC_SPECIFICATION = 0x0001001c + OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES = RISCV64 + BUILD_TARGETS = DEBUG|RELEASE|NOOPT + SKUID_IDENTIFIER = DEFAULT + FLASH_DEFINITION = Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf + + # + # Enable below options may cause build error or may not work on + # the initial version of RISC-V package + # Defines for default states. These can be changed on the command line. + # -D FLAG=VALUE + # + DEFINE TTY_TERMINAL = FALSE + DEFINE SECURE_BOOT_ENABLE = FALSE + DEFINE TPM2_ENABLE = FALSE + DEFINE TPM2_CONFIG_ENABLE = FALSE + DEFINE DEBUG_ON_SERIAL_PORT = TRUE + + # + # Network definition + # + DEFINE NETWORK_IP6_ENABLE = FALSE + DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE + DEFINE NETWORK_SNP_ENABLE = FALSE + DEFINE NETWORK_TLS_ENABLE = FALSE + DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE + DEFINE NETWORK_ISCSI_ENABLE = FALSE + +!if $(NETWORK_SNP_ENABLE) == TRUE + !error "NETWORK_SNP_ENABLE is IA32/X64/EBC only" +!endif + +!include MdePkg/MdeLibs.dsc.inc +!include NetworkPkg/Network.dsc.inc + +[BuildOptions] + GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG +!ifdef $(SOURCE_DEBUG_ENABLE) + GCC:*_*_RISCV64_GENFW_FLAGS = --keepexceptiontable +!endif + +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] + GCC: *_*_*_DLINK_FLAGS = -z common-page-size=0x1000 + MSFT: *_*_*_DLINK_FLAGS = /ALIGN:4096 + +################################################################################ +# +# Library Class section - list of all Library Classes needed by this Platform. +# +################################################################################ + +!include Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc.inc + +!include MdePkg/MdeLibs.dsc.inc + +[LibraryClasses.common] + # Virtio Support + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf + VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf + QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgMmioDxeLib.inf + QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf + QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf + QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf + + TimerLib|UefiCpuPkg/Library/BaseRiscV64CpuTimerLib/BaseRiscV64CpuTimerLib.inf + VirtNorFlashPlatformLib|OvmfPkg/RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashDeviceTreeLib.inf + + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf + BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf + PlatformBootManagerLib|OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf + PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf + CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf + FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf + QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf + PciPcdProducerLib|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf + PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf + PciHostBridgeLib|OvmfPkg/Fdt/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf + PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf + PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf + PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf + ImagePropertiesRecordLib|MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf + +!if $(TPM2_ENABLE) == TRUE + Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf + Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/DxeTcg2PhysicalPresenceLib.inf + TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf + TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLib/PeiDxeTpmPlatformHierarchyLib.inf +!else + TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf + TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf +!endif + +[LibraryClasses.common.DXE_DRIVER] + AcpiPlatformLib|OvmfPkg/Library/AcpiPlatformLib/DxeAcpiPlatformLib.inf + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + PciExpressLib|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf + +!if $(TPM2_ENABLE) == TRUE + Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibTcg2/Tpm2DeviceLibTcg2.inf +!endif + +[LibraryClasses.common.UEFI_DRIVER] + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf + PciExpressLib|OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf + +################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform. +# +################################################################################ +[PcdsFeatureFlag.common] + gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderPciTranslation|TRUE + gUefiOvmfPkgTokenSpaceGuid.PcdQemuBootOrderMmioTranslation|TRUE + + ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe. + # It could be set FALSE to save size. + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + + gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE + +[PcdsFixedAtBuild.common] + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800 +!if $(NETWORK_TLS_ENABLE) == TRUE + # + # The cumulative and individual VOLATILE variable size limits should be set + # high enough for accommodating several and/or large CA certificates. + # + gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x80000 + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize|0x40000 +!endif + + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"2.7" + + # Serial Port + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x10000000 + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|9600 + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|3686400 + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1 + + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 } + +!if $(SECURE_BOOT_ENABLE) == TRUE + # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot + gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04 + gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04 + gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04 +!endif + + gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000 + gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x02 + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 + + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosEntryPointProvideMethod|0x2 + +[PcdsDynamicDefault.common] + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3 + + ## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI + # enumeration to complete before installing ACPI tables. + gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE + + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this + # PCD and PcdPciDisableBusEnumeration above have not been assigned yet + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF + + gEfiMdePkgTokenSpaceGuid.PcdPciIoTranslation|0x0 + + # + # Set video resolution for boot options and for text setup. + # PlatformDxe can set the former at runtime. + # + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|1280 + gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|800 + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640 + gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|0 + + # + # SMBIOS entry point version + # + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0300 + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 + gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE + + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 + + # + # IPv4 and IPv6 PXE Boot support. + # + gEfiNetworkPkgTokenSpaceGuid.PcdIPv4PXESupport|0x01 + gEfiNetworkPkgTokenSpaceGuid.PcdIPv6PXESupport|0x01 + + # + # TPM2 support + # +!if $(TPM2_ENABLE) == TRUE + gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0 + gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid|{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} + gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0 +!else +[PcdsPatchableInModule] + # make this PCD patchable instead of dynamic when TPM support is not enabled + # this permits setting the PCD in unreachable code without pulling in dynamic PCD support + gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0 +!endif + +[PcdsDynamicHii] + gUefiOvmfPkgTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gOvmfVariableGuid|0x0|FALSE|NV,BS + +!if $(TPM2_CONFIG_ENABLE) == TRUE + gEfiSecurityPkgTokenSpaceGuid.PcdTcgPhysicalPresenceInterfaceVer|L"TCG2_VERSION"|gTcg2ConfigFormSetGuid|0x0|"1.3"|NV,BS + gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev|L"TCG2_VERSION"|gTcg2ConfigFormSetGuid|0x8|3|NV,BS +!endif + + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5 + +[LibraryClasses.common.PEI_CORE, LibraryClasses.common.PEIM] +!if $(TPM2_ENABLE) == TRUE + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf +!else + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf +!endif + +################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform. +# +################################################################################ +[Components] + + # + # SEC Phase modules + # + OvmfPkg/RiscVVirt/Sec/SecMain.inf { + + ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf + LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf + PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf + HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf + PrePiHobListPointerLib|OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf + MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf + } + + # + # DXE + # + MdeModulePkg/Core/Dxe/DxeMain.inf { + + NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + } + + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { + + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + } + + # + # Architectural Protocols + # + UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { + + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf + # do not use unaligned CopyMem () on the UEFI varstore NOR flash region + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + } + +!if $(SECURE_BOOT_ENABLE) == TRUE + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { + + NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf +!if $(TPM2_ENABLE) == TRUE + NULL|SecurityPkg/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBootLib.inf +!endif + } + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf + OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf +!else + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf +!endif + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf + + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf + + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + + UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf + OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + + # + # Status Code Routing + # + MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf + MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf + + # + # Platform Driver + # + OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf + EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf { + + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + } + OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf + OvmfPkg/VirtioNetDxe/VirtioNet.inf + OvmfPkg/VirtioRngDxe/VirtioRng.inf + + # + # FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs + # + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + FatPkg/EnhancedFatDxe/Fat.inf + MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf + OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf + + # + # Bds + # + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { + + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + } + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf + MdeModulePkg/Logo/LogoDxe.inf + MdeModulePkg/Application/UiApp/UiApp.inf { + + NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf + NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf + NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf + } + OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf { + + NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf + } + + NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf { + + NULL|OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcdProducerLib.inf + } + +!if $(NETWORK_TLS_ENABLE) == TRUE + NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf { + + NULL|OvmfPkg/Library/TlsAuthConfigLib/TlsAuthConfigLib.inf + } +!endif + + # + # SCSI Bus and Disk Driver + # + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf + + # + # SATA + # + MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf + MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf + MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf + + # + # NVME Driver + # + MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf + + # + # SMBIOS Support + # + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf { + + NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf + } + OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf + + # + # PCI support + # + UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf { + + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf + } + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf + MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { + + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf + } + OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf + OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf + OvmfPkg/Virtio10Dxe/Virtio10.inf + + # + # Video support + # + OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf + OvmfPkg/VirtioGpuDxe/VirtioGpu.inf + OvmfPkg/PlatformDxe/Platform.inf + + # + # USB Support + # + MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf + MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf + MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf + MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + + # + # TPM2 support + # +!if $(TPM2_ENABLE) == TRUE + SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf { + + HashLib|SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.inf + Tpm2DeviceLib|SecurityPkg/Library/Tpm2DeviceLibRouter/Tpm2DeviceLibRouterDxe.inf + NULL|SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2InstanceLibDTpm.inf + NULL|SecurityPkg/Library/HashInstanceLibSha1/HashInstanceLibSha1.inf + NULL|SecurityPkg/Library/HashInstanceLibSha256/HashInstanceLibSha256.inf + NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf + NULL|SecurityPkg/Library/HashInstanceLibSha512/HashInstanceLibSha512.inf + NULL|SecurityPkg/Library/HashInstanceLibSm3/HashInstanceLibSm3.inf + } +!if $(TPM2_CONFIG_ENABLE) == TRUE + SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf +!endif +!endif + + # + # ACPI Support + # + OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf + MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf + OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf { + + NULL|OvmfPkg/Fdt/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf + } diff --git a/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc.inc b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc.inc new file mode 100644 index 00000000..06da8034 --- /dev/null +++ b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.dsc.inc @@ -0,0 +1,341 @@ +## @file +# RISC-V Qemu-based Server Platform +# +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved. +# Copyright (c) 2011 - 2022, ARM Limited. All rights reserved. +# Copyright (c) 2014, Linaro Limited. All rights reserved. +# Copyright (c) 2015 - 2024, Intel Corporation. All rights reserved. +# Copyright (c) Microsoft Corporation. +# Copyright (C) 2024, Alibaba Group Holding Limited.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# + +[Defines] + DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x80000047 + +[LibraryClasses.common] +!ifdef $(SOURCE_DEBUG_ENABLE) + PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf + DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf +!else + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf + DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif +!if $(DEBUG_ON_SERIAL_PORT) == TRUE + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif + DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf + BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf + CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf + ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf + OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf + + # + # Ramdisk Requirements + # + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf + + # Allow dynamic PCDs + # + + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + + # Networking Requirements +!include NetworkPkg/NetworkLibs.dsc.inc +!if $(NETWORK_TLS_ENABLE) == TRUE + TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf +!endif + + + # Add support for GCC stack protector + NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf + + # RISC-V Architectural Libraries + CpuExceptionHandlerLib|UefiCpuPkg/Library/BaseRiscV64CpuExceptionHandlerLib/BaseRiscV64CpuExceptionHandlerLib.inf + RiscVSbiLib|MdePkg/Library/BaseRiscVSbiLib/BaseRiscVSbiLib.inf + RiscVMmuLib|UefiCpuPkg/Library/BaseRiscVMmuLib/BaseRiscVMmuLib.inf + PlatformBootManagerLib|OvmfPkg/RiscVVirt/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf + ResetSystemLib|Platform/RISC-V/PlatformPkg/Library/ResetSystemLib/ResetSystemLib.inf + + RealTimeClockLib|EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf + TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf + SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf + + DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf + DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf + + # Flattened Device Tree (FDT) access library + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf + + # PCI Libraries + PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf + PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf + PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf + PciCapPciSegmentLib|OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCapPciSegmentLib.inf + PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf + DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf + + # USB Libraries + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf + + # + # CryptoPkg libraries needed by multiple firmware features + # + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf +!if $(NETWORK_TLS_ENABLE) == TRUE + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf +!else + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf +!endif + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf + RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + # + # Secure Boot dependencies + # +!if $(SECURE_BOOT_ENABLE) == TRUE + AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf + SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf + SecureBootVariableProvisionLib|SecurityPkg/Library/SecureBootVariableProvisionLib/SecureBootVariableProvisionLib.inf + PlatformPKProtectionLib|SecurityPkg/Library/PlatformPKProtectionLibVarPolicy/PlatformPKProtectionLibVarPolicy.inf + + # re-use the UserPhysicalPresent() dummy implementation from the ovmf tree + PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf +!else + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf +!endif + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf + VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf + VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + +[LibraryClasses.common.SEC] + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf + ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf + ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf + PlatformSecLib|UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf + HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf + PrePiHobListPointerLib|OvmfPkg/RiscVVirt/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf + MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf + +[LibraryClasses.common.DXE_CORE] + PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf + +[LibraryClasses.common.DXE_DRIVER] + SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + +[LibraryClasses.common.UEFI_APPLICATION] + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + +[LibraryClasses.common.UEFI_DRIVER] + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + +[LibraryClasses.common.DXE_RUNTIME_DRIVER] + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf +!if $(DEBUG_ON_SERIAL_PORT) == TRUE + DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf +!endif + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf + +!if $(SECURE_BOOT_ENABLE) == TRUE + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf +!endif + +################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################ + +[PcdsFeatureFlag.common] + gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE + + gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE + +[PcdsFeatureFlag] + # + # Activate AcpiSdtProtocol + # + gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE + +[PcdsFixedAtBuild.common] + gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride|0xFFFFFFFFFFFFFFF8 + gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000 + gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000 + gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|0 + gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000 + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320 + + # DEBUG_ASSERT_ENABLED 0x01 + # DEBUG_PRINT_ENABLED 0x02 + # DEBUG_CODE_ENABLED 0x04 + # CLEAR_MEMORY_ENABLED 0x08 + # ASSERT_BREAKPOINT_ENABLED 0x10 + # ASSERT_DEADLOOP_ENABLED 0x20 +!if $(DEBUG_ON_SERIAL_PORT) != TRUE + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21 +!else + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f +!endif + + # DEBUG_INIT 0x00000001 // Initialization + # DEBUG_WARN 0x00000002 // Warnings + # DEBUG_LOAD 0x00000004 // Load events + # DEBUG_FS 0x00000008 // EFI File system + # DEBUG_POOL 0x00000010 // Alloc & Free (pool) + # DEBUG_PAGE 0x00000020 // Alloc & Free (page) + # DEBUG_INFO 0x00000040 // Informational debug messages + # DEBUG_DISPATCH 0x00000080 // PEI/DXE/SMM Dispatchers + # DEBUG_VARIABLE 0x00000100 // Variable + # DEBUG_BM 0x00000400 // Boot Manager + # DEBUG_BLKIO 0x00001000 // BlkIo Driver + # DEBUG_NET 0x00004000 // SNP Driver + # DEBUG_UNDI 0x00010000 // UNDI Driver + # DEBUG_LOADFILE 0x00020000 // LoadFile + # DEBUG_EVENT 0x00080000 // Event messages + # DEBUG_GCD 0x00100000 // Global Coherency Database changes + # DEBUG_CACHE 0x00200000 // Memory range cachability changes + # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may + # // significantly impact boot performance + # DEBUG_ERROR 0x80000000 // Error +!if $(DEBUG_ON_SERIAL_PORT) == TRUE + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL) +!endif + + # + # Optional feature to help prevent EFI memory map fragments + # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob + # Values are in EFI Pages (4K). DXE Core will make sure that + # at least this much of each type of memory can be allocated + # from a single memory range. This way you only end up with + # maximum of two fragments for each type in the memory map + # (the memory used, and the free memory that was prereserved + # but not used). + # + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0 +!if $(SECURE_BOOT_ENABLE) == TRUE + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|600 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|400 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1500 +!else + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|300 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|150 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|1000 +!endif + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|6000 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20 + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0 + + # + # Enable strict image permissions for all images. (This applies + # only to images that were built with >= 4 KB section alignment.) + # + gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x3 + + # + # Enable NX memory protection for all non-code regions, including OEM and OS + # reserved ones, with the exception of LoaderData regions, of which OS loaders + # (i.e., GRUB) may assume that its contents are executable. + # + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD5 + +[Components.common] + # + # Ramdisk support + # + MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf + + ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf { + + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + } + ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf { + + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + } + OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { + + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + } + ShellPkg/Application/Shell/Shell.inf { + + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf +!if $(ACPIVIEW_ENABLE) == TRUE + NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf +!endif + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf +!if $(NETWORK_IP6_ENABLE) == TRUE + NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf +!endif + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + + + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } + + # + # ACPI Support + # + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf { + + NULL|EmbeddedPkg/Library/PlatformHasAcpiLib/PlatformHasAcpiLib.inf + } diff --git a/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf new file mode 100644 index 00000000..e2962993 --- /dev/null +++ b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf @@ -0,0 +1,315 @@ +## @file +# RISC-V Qemu-based Server Platform +# +# Copyright (c) 2024, Intel Corporation. All rights reserved.
+# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
+# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+# Copyright (C) 2024, Alibaba Group Holding Limited. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +!include RiscVQemuServerPlatform.fdf.inc + +################################################################################ +[FD.RISCV_SP_CODE] +BaseAddress = $(CODE_BASE_ADDRESS)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFdBaseAddress +Size = $(CODE_SIZE)|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFirmwareFdSize +ErasePolarity = 1 +BlockSize = $(BLOCK_SIZE) +NumBlocks = $(CODE_BLOCKS) + +0x00000000|$(CODE_SIZE) +gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize +FV = FVMAIN_COMPACT + +################################################################################ +[FD.RISCV_SP_VARS] +BaseAddress = $(VARS_BASE_ADDRESS) +Size = $(VARS_SIZE) +ErasePolarity = 1 +BlockSize = $(VARS_BLOCK_SIZE) +NumBlocks = $(VARS_BLOCKS) + +!include VarStore.fdf.inc +################################################################################ + +[FV.DXEFV] +BlockSize = 0x10000 +FvAlignment = 16 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + +APRIORI DXE { + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf + INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf + INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf + INF UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf + INF OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf +} + +# +# DXE Phase modules +# +INF MdeModulePkg/Core/Dxe/DxeMain.inf +INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf +INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf +INF OvmfPkg/Fdt/VirtioFdtDxe/VirtioFdtDxe.inf +INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf +INF OvmfPkg/Fdt/HighMemDxe/HighMemDxe.inf + +# +# PI DXE Drivers producing Architectural Protocols (EFI Services) +# +INF UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf +INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf +INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf +INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf +!if $(SECURE_BOOT_ENABLE) == TRUE + INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf +!endif +INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf +INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf +INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf +INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf +INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + +# +# Multiple Console IO support +# +INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf +INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf +INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf +INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf +INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf + +# RISC-V Core Drivers +INF UefiCpuPkg/CpuTimerDxeRiscV64/CpuTimerDxeRiscV64.inf +INF OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf +INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + +# +# FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs +# +INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf +INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf +INF FatPkg/EnhancedFatDxe/Fat.inf +INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf +INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf +INF OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf + +# +# Status Code Routing +# +INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf +INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf + +# +# Platform Driver +# +INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf +INF OvmfPkg/VirtioNetDxe/VirtioNet.inf +INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +INF OvmfPkg/VirtioRngDxe/VirtioRng.inf + +INF ShellPkg/Application/Shell/Shell.inf +INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf +INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf +INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf + +# +# Bds +# +INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf +INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf +INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf +INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf +INF MdeModulePkg/Application/UiApp/UiApp.inf +INF OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf + +# +# Networking stack +# +!include NetworkPkg/Network.fdf.inc + +# +# SCSI Bus and Disk Driver +# +INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf +INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf + +# +# SATA +# +INF MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf +INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf +INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf + +# +# NVME Driver +# +INF MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf + +# +# SMBIOS Support +# +INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf +INF OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf + +# +# ACPI Support +# +INF OvmfPkg/PlatformHasAcpiDtDxe/PlatformHasAcpiDtDxe.inf +INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf +INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf +INF OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf + +# +# PCI support +# +INF UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf +INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf +INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf +INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf +INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf +INF OvmfPkg/Virtio10Dxe/Virtio10.inf + +# +# Video support +# +INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf +INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf +INF OvmfPkg/PlatformDxe/Platform.inf + +# +# Usb Support +# +INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf +INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf +INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf +INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf +INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf +INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + +# +# TianoCore logo (splash screen) +# +INF MdeModulePkg/Logo/LogoDxe.inf + +# +# Ramdisk support +# +INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf + +################################################################################ + +[FV.FVMAIN_COMPACT] +FvAlignment = 16 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE +FvNameGuid = 27A72E80-3118-4c0c-8673-AA5B4EFA9613 + +INF OvmfPkg/RiscVVirt/Sec/SecMain.inf + +FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { + SECTION FV_IMAGE = DXEFV + } + } + +[Rule.Common.SEC] + FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED FIXED { + PE32 PE32 Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING ="$(MODULE_NAME)" Optional + VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_CORE] + FILE DXE_CORE = $(NAMED_GUID) { + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.DXE_RUNTIME_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_DRIVER.BINARY] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional |.depex + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_APPLICATION] + FILE APPLICATION = $(NAMED_GUID) { + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_APPLICATION.BINARY] + FILE APPLICATION = $(NAMED_GUID) { + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.USER_DEFINED.ACPITABLE] + FILE FREEFORM = $(NAMED_GUID) { + RAW ACPI |.acpi + RAW ASL |.aml + UI STRING="$(MODULE_NAME)" Optional + } diff --git a/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf.inc b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf.inc new file mode 100644 index 00000000..eb996c3b --- /dev/null +++ b/Platform/Qemu/RiscVQemuServerPlatform/RiscVQemuServerPlatform.fdf.inc @@ -0,0 +1,41 @@ +## @file +# Definitions of Flash definition file on RISC-V Qemu Server Platform +# +# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
+# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+# Copyright (c) 2024, Intel Corporation. All rights reserved.
+# Copyright (C) 2024, Alibaba Group Holding Limited. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## +[Defines] +DEFINE BLOCK_SIZE = 0x1000 + +DEFINE PFLASH0_BASE = 0x20000000 +DEFINE PFLASH1_BASE = 0x22000000 + +DEFINE CODE_BASE_ADDRESS = $(PFLASH0_BASE) +DEFINE CODE_SIZE = 0x00800000 +DEFINE CODE_BLOCKS = 0x800 + +DEFINE VARS_BASE_ADDRESS = $(PFLASH1_BASE) +DEFINE VARS_SIZE = 0x000C0000 +DEFINE VARS_BLOCK_SIZE = 0x40000 +DEFINE VARS_BLOCKS = 0x3 + +# +# EFI Variable memory region. +# The total size of EFI Variable FD must include +# all of sub regions of EFI Variable +# +DEFINE VARS_OFFSET = 0x00000000 +DEFINE VARS_LIVE_SIZE = 0x00040000 +DEFINE VARS_FTW_WORKING_OFFSET = $(VARS_OFFSET) + $(VARS_LIVE_SIZE) +DEFINE VARS_FTW_WORKING_SIZE = 0x00040000 +DEFINE VARS_FTW_SPARE_OFFSET = $(VARS_FTW_WORKING_OFFSET) + $(VARS_FTW_WORKING_SIZE) +DEFINE VARS_FTW_SPARE_SIZE = 0x00040000 + +SET gUefiCpuPkgTokenSpaceGuid.PcdCpuCoreCrystalClockFrequency = 10000000 +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase = 0x83FF0000 +SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize = 0x00010000 diff --git a/Platform/Qemu/RiscVQemuServerPlatform/VarStore.fdf.inc b/Platform/Qemu/RiscVQemuServerPlatform/VarStore.fdf.inc new file mode 100644 index 00000000..043b8e3a --- /dev/null +++ b/Platform/Qemu/RiscVQemuServerPlatform/VarStore.fdf.inc @@ -0,0 +1,72 @@ +## @file +# FDF include file with Layout Regions that define an empty variable store. +# +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.
+# Copyright (C) 2014, Red Hat, Inc. +# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +$(VARS_OFFSET)|$(VARS_LIVE_SIZE) +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize +# +# NV_VARIABLE_STORE +# +DATA = { + ## This is the EFI_FIRMWARE_VOLUME_HEADER + # ZeroVector [] + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + # FileSystemGuid: gEfiSystemNvDataFvGuid = + # { 0xFFF12B8D, 0x7696, 0x4C8B, + # { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} + 0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C, + 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50, + # FvLength: 0xC0000 + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, + # Signature "_FVH" # Attributes + 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, + # HeaderLength # CheckSum # ExtHeaderOffset #Reserved #Revision + 0x48, 0x00, 0x28, 0x09, 0x00, 0x00, 0x00, 0x02, + # Blockmap[0]: 0x3 Blocks * 0x40000 Bytes / Block + 0x3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + # Blockmap[1]: End + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ## This is the VARIABLE_STORE_HEADER + # It is compatible with SECURE_BOOT_ENABLE == FALSE as well. + # Signature: gEfiAuthenticatedVariableGuid = + # { 0xaaf32c78, 0x947b, 0x439a, + # { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 }} + 0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, + 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92, + # Size: 0x40000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - + # 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0x3FFB8 + # This can speed up the Variable Dispatch a bit. + 0xB8, 0xFF, 0x03, 0x00, + # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32 + 0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +} + +$(VARS_FTW_WORKING_OFFSET)|$(VARS_FTW_WORKING_SIZE) +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize +# +#NV_FTW_WORK +# +DATA = { + # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEdkiiWorkingBlockSignatureGuid = + # { 0x9e58292b, 0x7c68, 0x497d, { 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95 }} + 0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, + 0xa0, 0xce, 0x65, 0x0, 0xfd, 0x9f, 0x1b, 0x95, + # Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved + 0x5b, 0xe7, 0xc6, 0x86, 0xFE, 0xFF, 0xFF, 0xFF, + # WriteQueueSize: UINT64 + 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 +} + +$(VARS_FTW_SPARE_OFFSET)|$(VARS_FTW_SPARE_SIZE) +gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize +# +#NV_FTW_SPARE -- 2.45.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119847): https://edk2.groups.io/g/devel/message/119847 Mute This Topic: https://groups.io/mt/107122511/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-