Add ODP_PatinaSmbiosDemo driver#90
Merged
kat-perez merged 1 commit intoMay 12, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new UEFI DXE demo driver (ODP_PatinaSmbiosDemo) that publishes an SMBIOS Type 0 record using the Patina component/service model via patina_tianocore, plus supporting build/docs assets for integrating the produced .efi into an EDK II .fdf.
Changes:
- Introduces a Patina-component-based SMBIOS Type 0 publisher (
BiosInfoSmbiosPublisher) and a minimal TianoCore driver shell usingdriver_entry!. - Adds build scaffolding for the new driver (Cargo manifest/lockfile, pinned Rust toolchain, DXE depex).
- Adds documentation and repo-level
.gitattributeshandling for binary.depexfiles.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/src/platform.rs | Defines the portable platform registration and the SMBIOS Type 0 publishing component. |
| uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/src/main.rs | Minimal no_std UEFI driver entrypoint wiring via patina_tianocore::driver_entry!. |
| uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/Cargo.toml | Declares the new driver crate and its Patina/SMBIOS dependencies. |
| uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/Cargo.lock | Locks the dependency graph for reproducible builds of the new driver. |
| uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/rust-toolchain.toml | Pins a nightly toolchain and UEFI targets/components for building the driver. |
| uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/ODP_PatinaSmbiosDemo.depex | Adds a minimal DXE dependency expression for early dispatch. |
| uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/README.md | Documents build/integration steps and the Patina-native migration path. |
| .gitattributes | Marks .depex as binary so diffs don’t render raw bytes as text. |
8c9b3c7 to
c77ddc1
Compare
c77ddc1 to
9d6afab
Compare
rogurr
approved these changes
May 11, 2026
philgweber
approved these changes
May 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Re-opens the work from #82 (which was inadvertently closed; GitHub blocks reopen because the original head repo lost its fork relationship with upstream). Rebased onto current
main, and addresses @rogurr's review feedback on #82 (SPDX header added to source files).Description
Adds
ODP_PatinaSmbiosDemo— a UEFI DXE driver underuefi/OdpPkg/Drivers/that publishes an SMBIOS Type 0 (BIOS Information) record using only the native Patina component model: noEFI_SMBIOS_PROTOCOL, no raw buffer construction, nounsafeboilerplate inside the publishing component.The driver mirrors
ODP_RustDxeDemo's file layout (Cargo.toml,README.md,.depex,src/) but consumes the Patina component model via thepatina_tianocorebridge crate (= "0.1"from crates.io).How This Was Tested
BUILD_DATE=$(date +%m/%d/%Y) cargo build --target x86_64-unknown-uefi --releaseproduces a PE32+.efi.Booted on QEMU + TianoCore OVMF Q35 (
/usr/share/OVMF/OVMF_CODE_4M.fd):The dispatcher resolves
Service<dyn Smbios>fromSmbiosProvider, runsBiosInfoSmbiosPublisher, which callssmbios.add_record(&record)and gets handle0x0001. SMBIOS publication round-trips with no C protocol involved in the publishing component.Integration Instructions
Drop the resulting
.efiinto your platform.fdf:After booting,
Shell> smbiosview -t 0shows the record with vendor"Acme Inc.".See
uefi/OdpPkg/Drivers/ODP_PatinaSmbiosDemo/README.mdfor the migration path to a Patina-native DXE core (useimpl_component_info!on the sameOemPlatformstruct fromplatform.rs— zero source changes to the publishing component).Closes #78