Add HelloWorldRustDxe to QemuQ35Pkg and QemuSbsaPkg

Adds the driver to both packages to demonstrate a Rust based UEFI
DXE driver executing during boot on a X64 and AARCH64 system.

A workspace Cargo.toml file is added for cargo make. Since this repo
is the "leaf of a dependency chain" in that it builds binaries that
are integrated into the platform build, the `Cargo.lock` file is
checked in per the guidance in:
https://doc.rust-lang.org/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
This commit is contained in:
Michael Kubacki 2023-08-25 09:03:31 -04:00
Родитель 4fd10ae640
Коммит 1af2309fb4
6 изменённых файлов: 58 добавлений и 0 удалений

40
Cargo.lock сгенерированный Normal file
Просмотреть файл

@ -0,0 +1,40 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "HelloWorldRustDxe"
version = "0.1.0"
dependencies = [
"RustAdvancedLoggerDxe",
"RustBootServicesAllocatorDxe",
"r-efi",
]
[[package]]
name = "RustAdvancedLoggerDxe"
version = "0.1.0"
dependencies = [
"r-efi",
"spin",
]
[[package]]
name = "RustBootServicesAllocatorDxe"
version = "0.1.0"
dependencies = [
"r-efi",
"spin",
]
[[package]]
name = "r-efi"
version = "4.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "575fc2d9b3da54adbdfaddf6eca48fec256d977c8630a1750b8991347d1ac911"
[[package]]
name = "spin"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"

14
Cargo.toml Normal file
Просмотреть файл

@ -0,0 +1,14 @@
[workspace]
# Add packages that generate binaries here
members = [
"Common/MU/MsCorePkg/HelloWorldRustDxe"
]
# Add packages that generate libraries here
[workspace.dependencies]
RustAdvancedLoggerDxe = {path = "Common/MU/AdvLoggerPkg/Crates/RustAdvancedLoggerDxe"}
RustBootServicesAllocatorDxe = {path = "Common/MU/MsCorePkg/Crates/RustBootServicesAllocatorDxe"}
r-efi = "4.0.0"
spin = "0.5.2"

Просмотреть файл

@ -1355,6 +1355,7 @@ QemuQ35Pkg/Library/ResetSystemLib/StandaloneMmResetSystemLib.inf
MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDxe.inf
MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe/UsbMouseAbsolutePointerDxe.inf
MsCorePkg/AcpiRGRT/AcpiRgrt.inf
MsCorePkg/HelloWorldRustDxe/HelloWorldRustDxe.inf
DfciPkg/Application/DfciMenu/DfciMenu.inf
MsGraphicsPkg/PrintScreenLogger/PrintScreenLogger.inf

Просмотреть файл

@ -518,6 +518,7 @@ INF MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe/UsbMouseAbsolutePointerDxe.
INF DfciPkg/Application/DfciMenu/DfciMenu.inf
INF MsGraphicsPkg/PrintScreenLogger/PrintScreenLogger.inf
INF SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.inf
INF MsCorePkg/HelloWorldRustDxe/HelloWorldRustDxe.inf
INF MsCorePkg/AcpiRGRT/AcpiRgrt.inf
#SHARED_CRYPTO Crypto Bin Modules

Просмотреть файл

@ -1056,6 +1056,7 @@
MsWheaPkg/MsWheaReport/Dxe/MsWheaReportDxe.inf
MsCorePkg/MuVarPolicyFoundationDxe/MuVarPolicyFoundationDxe.inf
MsCorePkg/AcpiRGRT/AcpiRgrt.inf
MsCorePkg/HelloWorldRustDxe/HelloWorldRustDxe.inf
MsGraphicsPkg/PrintScreenLogger/PrintScreenLogger.inf
SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.inf

Просмотреть файл

@ -406,6 +406,7 @@ READ_LOCK_STATUS = TRUE
INF MsGraphicsPkg/PrintScreenLogger/PrintScreenLogger.inf
INF MsCorePkg/AcpiRGRT/AcpiRgrt.inf
INF SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.inf
INF MsCorePkg/HelloWorldRustDxe/HelloWorldRustDxe.inf
#
# DFCI support