v8.0.0
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_interfaceto that inuefi_sdk::componentand deletesuefi_component_interface. This pull request makes the necessary changes touefi_testandadv_loggerto 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
Componenttrait on a struct (fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()>) have many more options and should review the documentation indocsand inuefi_sdk.The easiest transition will be to switch from
fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()>tofn 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_configmethod. As an example, if your struct was previouslyMyComponent { size: usize }, you should now switch tostruct 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 viauefi-dxe-coreincludingadv_logger,uefi_test, andsample_componentshave 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_imagewas 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_interfaceto that inuefi_sdk::componentand deletesuefi_component_interface. This pull request makes the necessary changes touefi_testandadv_loggerto 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
Componenttrait on a struct (fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()>) have many more options and should review the documentation indocsand inuefi_sdk.The easiest transition will be to switch from
fn entry_point(&self, interface: &dyn DxeComponentInterface) -> error::Result<()>tofn 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_configmethod. As an example, if your struct was previouslyMyComponent { size: usize }, you should now switch tostruct 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 viauefi-dxe-coreincludingadv_logger,uefi_test, andsample_componentshave 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