Skip to content

v8.0.0

Choose a tag to compare

@github-actions github-actions released this 04 Feb 16:02
· 1341 commits to refs/heads/main since this release

What's Changed

  • chore: Release @cfernald (#241)
    Change Details
      ## Description

    <Include a description of the change and why this change was made.>

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

    How This Was Tested

    N/A

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

⚠️ Breaking Changes

  • [REBASE\&FF] Update to new component interface @Javagedes (#234)
    Change Details
      ## Description

    This pull request updates the component interface from that defined in uefi_component_interface to that in uefi_sdk::component and deletes uefi_component_interface. This pull request makes the necessary changes to uefi_test and adv_logger to switch them to the new interface. This commit also provides documentation changes related to the new interface.

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

    How This Was Tested

    Confirmed qemu_Q35 continues to boot to shell

    Integration Instructions

    Component Developers

    Any driver writers previously using the old component interface by implementing the Component trait on a struct ( fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()>) have many more options and should review the documentation in docs and in uefi_sdk.

    The easiest transition will be to switch from fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()> to

    fn entry_point(bs: uefi_sdk::boot_services::StandardBootServices) -> uefi_sdk::error::Result<()> { ... }, however there may be better options available. Any private configuration that was inside the component struct must now be registered with the core using the .with_config method. As an example, if your struct was previously MyComponent { size: usize }, you should now switch to struct Size(usize); and add it via .with_config(Size(32)). Components supporting private configuration will be added in the future.

    Platform Developers

    Platform developers must update their platform file by switching from .initialize(physical_hob_list) to .init_memory(physical_hob_list) and remove drivers using the old interface (or update them if they have already integrated the changes) as this is not a backwards compatible change. Components provided via uefi-dxe-core including adv_logger, uefi_test, and sample_components have all been updated accordingly, so please read their documentation on how to properly update.

      </blockquote>
      <hr>
    </details>
    

🐛 Bug Fixes

  • Fix bug in device path for FV handles @berlin-with0ut-return (#240)
    Change Details
      ## Description During perf testing, we discovered a bug where the `file_path` in the image read by `load_image` was always `TYPE_END`; this caused the FPDT to be unable to fill in GUIDs for loaded images.

    This PR fixes this bug by appending a filename node following the FV node that provides a guid. It also fixes some errors in the way core_load_image was referencing the parent handle.

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

    How This Was Tested

    This generates a valid FPDT with correct GUIDs and modules.

    Integration Instructions

    This PR works in conjunction with #236, which fixes some other perf bugs and adds instrumentation to certain functions in the DXE core.

      </blockquote>
      <hr>
    </details>
    

📖 Documentation Updates

  • [REBASE\&FF] Update to new component interface @Javagedes (#234)
    Change Details
      ## Description

    This pull request updates the component interface from that defined in uefi_component_interface to that in uefi_sdk::component and deletes uefi_component_interface. This pull request makes the necessary changes to uefi_test and adv_logger to switch them to the new interface. This commit also provides documentation changes related to the new interface.

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

    How This Was Tested

    Confirmed qemu_Q35 continues to boot to shell

    Integration Instructions

    Component Developers

    Any driver writers previously using the old component interface by implementing the Component trait on a struct ( fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()>) have many more options and should review the documentation in docs and in uefi_sdk.

    The easiest transition will be to switch from fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()> to

    fn entry_point(bs: uefi_sdk::boot_services::StandardBootServices) -> uefi_sdk::error::Result<()> { ... }, however there may be better options available. Any private configuration that was inside the component struct must now be registered with the core using the .with_config method. As an example, if your struct was previously MyComponent { size: usize }, you should now switch to struct Size(usize); and add it via .with_config(Size(32)). Components supporting private configuration will be added in the future.

    Platform Developers

    Platform developers must update their platform file by switching from .initialize(physical_hob_list) to .init_memory(physical_hob_list) and remove drivers using the old interface (or update them if they have already integrated the changes) as this is not a backwards compatible change. Components provided via uefi-dxe-core including adv_logger, uefi_test, and sample_components have all been updated accordingly, so please read their documentation on how to properly update.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v7.1.3...v8.0.0