Skip to content

patina-v14.2.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 21:47
· 564 commits to refs/heads/main since this release
ebfd8c2

What's Changed

  • Makefile.toml: Clean up coverage commands @Javagedes (#999)
    Change Details
      ## Description

    This commit cleans up the coverage commands by replacing the test command logic with the coverage-collect logic and having all coverage report generation rely on the test command instead. This allows us to remove test from the all command, 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_samples are 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 run mdbook test on every PR.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    1. delete target/* folder
    2. run cargo make build-lib
    3. 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 TplMutex for timer-interrupt safety

    (skip cargo release dry run)

    How This Was Tested

    Unit test: cargo test

    Integration 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 protocol
    • UpdateString - String modification via C protocol
    • Remove - Record deletion via C protocol
    • GetNext - 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#78

    Co-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