patina-v14.2.0
What's Changed
-
Makefile.toml: Clean up coverage commands @Javagedes (#999)
Change Details
## Description
This commit cleans up the coverage commands by replacing the
testcommand logic with thecoverage-collectlogic and having all coverage report generation rely on thetestcommand instead. This allows us to removetestfrom theallcommand, which was previsouly building and running host based unit tests twice.Additionally the commands related to failing when under a certain coverage percentage have been removed as we can now soley rely on codecov during CI for this.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
ignore patina\_samples for coverage calculations @Javagedes (#998)
Change Details
## Description
While
patina_samplesare compile-able and usable for a platform, they are intended to be viewable examples, not components that actually perform any real function. Due to this, there is no need to calculate code coverage for them.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Update mdbook to pass `mdbook test` @Javagedes (#995)
Change Details
## Description
This pull request updates all the sections to pass
mdbook test. A commit will go into patina-devops at a later date to runmdbook teston every PR.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- delete target/* folder
- run
cargo make build-lib - run `rustup run nightly-2025-09-19 mdbook test docs -L target\debug\deps
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Ignore patina automation bot PRs in release notes @makubacki (#994)
Change Details
## Description
Do not show changes from
patina-automation[bot].- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- N/A
Integration Instructions
- N/A
🚀 Features & ✨ Enhancements
-
patina\_smbios: add SMBIOS component @kat-perez (#980)
Change Details
## Description
Adds a new SMBIOS component for managing SMBIOS tables and records in UEFI environments with type-safe Rust APIs and EDKII compatibility.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
Features
Core Functionality
- SMBIOS 3.9 Support - Implements SMBIOS 3.9 specification (configurable for 3.x versions)
- Type-Safe Record API -
add_record<T>()with compile-time validation using Rust type system - Configuration Table Publication - Publishes SMBIOS 3.x entry point and tables to UEFI Configuration Table
- EDKII-Compatible Protocol - C FFI layer implementing EDK2 SMBIOS protocol interface (Add, UpdateString, Remove, GetNext)
- Thread-Safe Operations - TPL_NOTIFY synchronization via
TplMutexfor timer-interrupt safety
(skip cargo release dry run)
How This Was Tested
Unit test:
cargo testIntegration tests:
cargo make q35- Boots QEMU with Q35 platform
- SMBIOS component initializes and publishes table
- C Protocol FFI tests execute and log results
- Use 'smbiosview' in UEFI Shell to verify published records
C Protocol FFI Layer tests:
Add- Raw byte-level record addition via C protocolUpdateString- String modification via C protocolRemove- Record deletion via C protocolGetNext- Record enumeration via C protocol- Error handling - Operations on invalid/removed handles
Sample:
let protocol = unsafe { &*(protocol_ptr as *const SmbiosProtocol) }; // Test 1: Add a record using the C protocol Add function log::info!(" Test 1: Protocol Add function..."); let test_record = Self::create_test_type2_record(); let mut handle: SmbiosHandle = 0; let status = (protocol.add)( protocol, core::ptr::null_mut(), // producer_handle &mut handle, test_record.as_ptr() as *const SmbiosTableHeader, );Integration Instructions
patina-dxe-core-qemu:
OpenDevicePartnership/patina-dxe-core-qemu#59
Add the following to _start function in DXE core binary:use patina_smbios::component::SmbiosProvider; pub extern "efiapi" fn _start(physical_hob_list: *const c_void) -> ! { Core::default() .with_component(SmbiosProvider::new(3, 9)) .with_component(q35_services::smbios_platform::Q35SmbiosPlatform::new()) <other components> }patina-qemu:
OpenDevicePartnership/patina-qemu#78Co-authored-by: Kat Perez katperez@microsoft.com
Co-authored-by: Ansley Thompson ansley.thompson@dell.com
📖 Documentation Updates
-
docs: Fix patina\_debugger README Broken Link @os-d (#997)
Change Details
## Description
When some of the documention was moved from the mdbook to the README, a broken link was not fixed. This fixes that link and also updates other links to the published mdbook and crate docs, instead of inside the repo.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A.
Integration Instructions
N/A.
</blockquote> <hr> </details>
Full Changelog: patina-v14.1.1...v14.2.0