Skip to content

Releases: microsoft/mu_plus

release-v2025020001.0.2

24 Jul 18:48
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

dev-v2025020001.0.2

24 Jul 18:47
291c217
Compare
Choose a tag to compare

What's Changed

  • Remove Tpm2DebugLibNull from DSC Files \& Sync TpmTestingPkg Files [Rebase \& FF] @makubacki (#722)
    Change Details
      ## Description

    The library instance was removed in microsoft/mu_tiano_plus#426.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    • Stuart CI

    Integration Instructions

    • N/A - This is integrating changes from dev/202502 mu_tiano_plus into this repo


🐛 Bug Fixes

Full Changelog: dev-v2025020001.0.1...dev-v2025020001.0.2

release-v2025020001.0.1

11 Jul 15:50
Compare
Choose a tag to compare

What's Changed

  • UefiTestingPkg: Update Paging Audit Static Buffer Size @os-d (#720)
    Change Details
      ## Description

    Add a few more 0's and hope it works.

    Less glib: the larger buffer size was still being overrun with new changes in SBSA, so adding much more size to the buffer.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Running unit tests in SBSA.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    

dev-v2025020001.0.1

11 Jul 15:50
Compare
Choose a tag to compare

What's Changed

  • UefiTestingPkg: Update Paging Audit Static Buffer Size @os-d (#720)
    Change Details
      ## Description

    Add a few more 0's and hope it works.

    Less glib: the larger buffer size was still being overrun with new changes in SBSA, so adding much more size to the buffer.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Running unit tests in SBSA.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: dev-v2025020001.0.0...dev-v2025020001.0.1

release-v2025020001.0.0

03 Jul 15:47
Compare
Choose a tag to compare

What's Changed

  • Remove comparison on the timestamp portion for LineParser test app @kuqin12 (#718)
    Change Details
      ## Description

    Somehow the latest basecore has changed how the rollover of a timestamp is handled, which caused an earlier mitigation in vain.

    This change dumps the comparison for that prefix because the exact time comparison is not the point of this test.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Test passed locally on QEMU SBSA

    Integration Instructions

    N/A




  • PagingAuditTestApp: Increase Static Buffer Size @os-d (#703)
    Change Details
      ## Description

    mu_tiano_platform's pipelines have begun to fail because a static buffer in the paging audit test app has filled up. This commit increase the size from 4k to 64k.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Running the test app. Unable to repro locally, so will update mu_tiano_platforms after this gets checked in and ensure pipelines succeed.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    
  • codeql.yml: Always download cargo make @makubacki (#705)
    Change Details
      ## Description

    Temporarily does not use the GitHub workflow cache to unblock other PRs.

    Follow up to investigate further tracked in microsoft/mu_devops#459.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    • PR gate

    Integration Instructions

    N/A




  • Remove override tag for display engine @kuqin12 (#700)
    Change Details
      ## Description

    This module is being carried as an override for years.

    But really, we have not had any plan to upstream it to EDK2. Additionally, the driver has minimal commonality with the upstream version. This change is to break the bond with EDK2 version so that we save the hassle to deal with override tags.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    This is not a functional test.

    Integration Instructions

    N/




⚠️ Breaking Changes

  • Fix CI build due to ARM libraries movement @kuqin12 (#715)
    Change Details
      ## Description

    Some ARM libraries and headers have moved from ArmPkg to MdePkg/MdeModulePkg.

    This change is created to fix the CI build due to such movements.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    This was tested on QEMU SBSA and booted to UEFI shell.

    Integration Instructions

    Need to consume updated basecore and silicon_arm repos.

      </blockquote>
      <hr>
    </details>
    

dev-v2025020001.0.0

03 Jul 15:46
725ed6c
Compare
Choose a tag to compare

What's Changed

  • Remove comparison on the timestamp portion for LineParser test app @kuqin12 (#718)
    Change Details
      ## Description

    Somehow the latest basecore has changed how the rollover of a timestamp is handled, which caused an earlier mitigation in vain.

    This change dumps the comparison for that prefix because the exact time comparison is not the point of this test.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Test passed locally on QEMU SBSA

    Integration Instructions

    N/A




  • Support die offsets for GIC functions @Shrirammc55 (#717)
    Change Details
      ## Description

    Platforms with multiple die(s) can have a die offset address added to common GIC address to reach die-specific GIC address. Hence, adding support to get die information from MpServices and use a platform specific PCD to calculate die offset address which is then added to base GIC addresses.

    The existing implementation will remain unchanged since PcdPlatformGICOffset is set to 0 by default. Platforms can override this value to its specific need.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Tested on MSFT platform, booting to UEFI shell

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • [CHERRY-PICK]Updating MuSecureBootKeySelectorLib to detect MS Serviced @Flickdm (#714)
    Change Details
      ## Description

    MuSecureBootKeySelectorLib is being updated to detect if the keystore doesn't match one of our expected
    configurations but does match something MSFT could have serviced.

    (cherry picked from commit 1d7af0a)

    Somehow missed during integration. This exists in release/202405 but not release/202502.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    <Describe the test(s) that were run to verify the changes.>

    Ran locally on QemuQ35 and on a devkit

    <Describe how these changes should be integrated. Use N/A if nothing is required.>

    N/A

      </blockquote>
      <hr>
    </details>
    
  • PagingAuditTestApp: Increase Static Buffer Size @os-d (#703)
    Change Details
      ## Description

    mu_tiano_platform's pipelines have begun to fail because a static buffer in the paging audit test app has filled up. This commit increase the size from 4k to 64k.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Running the test app. Unable to repro locally, so will update mu_tiano_platforms after this gets checked in and ensure pipelines succeed.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    
  • codeql.yml: Always download cargo make @makubacki (#705)
    Change Details
      ## Description

    Temporarily does not use the GitHub workflow cache to unblock other PRs.

    Follow up to investigate further tracked in microsoft/mu_devops#459.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    • PR gate

    Integration Instructions

    N/A




  • Remove override tag for display engine @kuqin12 (#700)
    Change Details
      ## Description

    This module is being carried as an override for years.

    But really, we have not had any plan to upstream it to EDK2. Additionally, the driver has minimal commonality with the upstream version. This change is to break the bond with EDK2 version so that we save the hassle to deal with override tags.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    This is not a functional test.

    Integration Instructions

    N/




⚠️ Breaking Changes

  • Fix CI build due to ARM libraries movement @kuqin12 (#715)
    Change Details
      ## Description

    Some ARM libraries and headers have moved from ArmPkg to MdePkg/MdeModulePkg.

    This change is created to fix the CI build due to such movements.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    This was tested on QEMU SBSA and booted to UEFI shell.

    Integration Instructions

    Need to consume updated basecore and silicon_arm repos.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: dev-v2025020000.1.1...dev-v2025020001.0.0

release-v2025020000.1.1

03 Jun 22:21
Compare
Choose a tag to compare

What's Changed

  • UefiTestingPkg: Remove UnallocatedMemoryIsRP test. @apop5 (#696)
    Change Details
      ## Description

    Removing the UnallocatedMemoryIsRP test to allow
    for EfiConventionalMemory to be in a state other
    than Read Protected or Unmapped.

    Unallocated memory still needs to follow the
    no Read/Write/Executable protections, but should
    still be left mapped.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    QemuSbsa running DxePagingAuditTest prior to removal of the test failed with specific regions
    being left mapped, but as Nx.
    After changes, DxePagingAuditTest Reported a pass

    Integration Instructions

    No integration necessary.




dev-v2025020000.1.1

03 Jun 22:21
99ef243
Compare
Choose a tag to compare

What's Changed

  • UefiTestingPkg: Remove UnallocatedMemoryIsRP test. @apop5 (#696)
    Change Details
      ## Description

    Removing the UnallocatedMemoryIsRP test to allow
    for EfiConventionalMemory to be in a state other
    than Read Protected or Unmapped.

    Unallocated memory still needs to follow the
    no Read/Write/Executable protections, but should
    still be left mapped.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    QemuSbsa running DxePagingAuditTest prior to removal of the test failed with specific regions
    being left mapped, but as Nx.
    After changes, DxePagingAuditTest Reported a pass

    Integration Instructions

    No integration necessary.




Full Changelog: dev-v2025020000.1.0...dev-v2025020000.1.1

release-v2025020000.1.0

02 Jun 22:40
Compare
Choose a tag to compare

What's Changed

  • Build HidDxe rust module with 1.85 compiler @kuqin12 (#695)
    Change Details
      ## Description

    This change moved the rust module to build with 1.85. As requirement tightens, the rust code and tests were updated to work with the new requirements.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    This change was tested on physical platform.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • MsGraphicsPkg: Integrate Mu Basecore DisplayEngineDxe change @makubacki (#688)
    Change Details
      ## Description

    Only updates the override hash as all impacted code is not in this override.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    • CI build

    Integration Instructions


🚀 Features & ✨ Enhancements

  • Refine HID Touch Panel Data Handling Based on Contact Count @CharlieYang21176 (#682)
    Change Details
      ## Description

    We encountered an issue while using the UefiHidDxeV2 to handle the input from HID I2C touch panel device.
    Currently the HidPkg only supports single-pointer input, which works fine for HID devices like a standard mouse or trackpad.
    However, a touch panel devices typically support multi-touch input report (commonly up to 10 fingers).

    When processing the HID Report Descriptor of a HID device, the driver(UefiHidDxeV2) assigns one handler per usage (e.g. X, Y, Z, Switch or Button) found in the descriptor. For a mouse, there is only one Pointer that includes one set of X, Y and Button, and a single handler per usage (X, Y, Button) can correctly update the state of each factor (X, Y, Click) accordingly.

    When it comes to touch panel device, there are 10 Fingers/Pointers defined in its HID Report Descriptor, each with its own X, Y and Switch. When a touch event happens, regardless of how many fingers are actually tapping on the screen, the touch controller always sends a input report includes data fields for all 10 fingers. (Fields corresponding to the fingers not currently in contact with the screen are filled with "0".)

    The issue arises because the driver(UefiHidDxeV2) creates one handler per X, Y and Switch usage(so there will be 10 handlers for X,10 handlers for Y and 10 handlers for Switch as 10 fingers input) and every handlers for the same factor (X, Y or Switch) would update the same variable of the pointer which shown on the screen. This causes the data from each finger input to overwrite the data from the previous one.

    For example, when single finger tapping on the screen,
    the coordinate X "901" Y "648" was overwritten by the last finger's data (0, 0).

    // Update the 1st finger touch
    18:18:08.824 : current_state.current_x: 0
    18:18:08.824 : handles x_axis inputs: 901
    18:18:08.824 : current_state.current_y: 0
    18:18:08.824 : handles y_axis inputs: 648
    // Update the 2nd finger touch
    // the data is "0" as no 2nd finger tapping the screen
    18:18:08.824 : current_state.current_x: 901
    18:18:08.824 : handles x_axis inputs: 0
    18:18:08.824 : current_state.current_y: 648
    18:18:08.824 : handles y_axis inputs: 0
    // Update the 3rd finger touch
    // the data is "0" as no 3rd finger tapping the screen
    18:18:08.824 : current_state.current_x: 0
    18:18:08.824 : handles x_axis inputs: 0
    18:18:08.824 : current_state.current_y: 0
    18:18:08.824 : handles y_axis inputs: 0
    // Update the 4th finger touch
    18:18:08.824 : current_state.current_x: 0
    18:18:08.824 : handles x_axis inputs: 0
    18:18:08.824 : current_state.current_y: 0
    18:18:08.824 : handles y_axis inputs: 0
    // Update the 5th finger touch
    18:18:08.824 : current_state.current_x: 0
    18:18:08.825 : handles x_axis inputs: 0
    18:18:08.825 : current_state.current_y: 0
    18:18:08.825 : handles y_axis inputs: 0
    // Update the 6th finger touch
    18:18:08.825 : current_state.current_x: 0
    18:18:08.825 : handles x_axis inputs: 0
    18:18:08.825 : current_state.current_y: 0
    18:18:08.825 : handles y_axis inputs: 0
    // Update the 7th finger touch
    18:18:08.825 : current_state.current_x: 0
    18:18:08.825 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    // Update the 8th finger touch
    18:18:08.859 : current_state.current_x: 0
    18:18:08.859 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    // Update the 9th finger touch
    18:18:08.859 : current_state.current_x: 0
    18:18:08.859 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    // Update the 10th finger touch
    18:18:08.859 : current_state.current_x: 0
    18:18:08.859 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    

    This PR adds a set of counters to determine how many input pointers are valid and need to be handled, based on the Contact Count usage(0x54) data, which is a standard usage under Digitizer(0x0D) in HID spec. With this change, we can ensure that every pointer's data(coordinate and click/switch) processed by the driver would contain valid values.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Tested on Surface Laptop device, USB Mouse, Trackpad and Touch Panel(single finger) are functional in UEFI setup up page.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

dev-v2025020000.1.0

02 Jun 22:40
27efac4
Compare
Choose a tag to compare

What's Changed

  • Build HidDxe rust module with 1.85 compiler @kuqin12 (#695)
    Change Details
      ## Description

    This change moved the rust module to build with 1.85. As requirement tightens, the rust code and tests were updated to work with the new requirements.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    This change was tested on physical platform.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • MsGraphicsPkg/QrEncoderLib: Prevent memcpy being used on VS22 (17.14.2) @makubacki (#686)
    Change Details
      ## Description

    This code can be optimized to memcpy. So, explicitly use CopyMem to prevent that from happening.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    • Before and after with VS22 17.14.2.

    Integration Instructions

    • N/A


  • MsGraphicsPkg: Integrate Mu Basecore DisplayEngineDxe change @makubacki (#688)
    Change Details
      ## Description

    Only updates the override hash as all impacted code is not in this override.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    • CI build

    Integration Instructions


🚀 Features & ✨ Enhancements

  • Refine HID Touch Panel Data Handling Based on Contact Count @CharlieYang21176 (#682)
    Change Details
      ## Description

    We encountered an issue while using the UefiHidDxeV2 to handle the input from HID I2C touch panel device.
    Currently the HidPkg only supports single-pointer input, which works fine for HID devices like a standard mouse or trackpad.
    However, a touch panel devices typically support multi-touch input report (commonly up to 10 fingers).

    When processing the HID Report Descriptor of a HID device, the driver(UefiHidDxeV2) assigns one handler per usage (e.g. X, Y, Z, Switch or Button) found in the descriptor. For a mouse, there is only one Pointer that includes one set of X, Y and Button, and a single handler per usage (X, Y, Button) can correctly update the state of each factor (X, Y, Click) accordingly.

    When it comes to touch panel device, there are 10 Fingers/Pointers defined in its HID Report Descriptor, each with its own X, Y and Switch. When a touch event happens, regardless of how many fingers are actually tapping on the screen, the touch controller always sends a input report includes data fields for all 10 fingers. (Fields corresponding to the fingers not currently in contact with the screen are filled with "0".)

    The issue arises because the driver(UefiHidDxeV2) creates one handler per X, Y and Switch usage(so there will be 10 handlers for X,10 handlers for Y and 10 handlers for Switch as 10 fingers input) and every handlers for the same factor (X, Y or Switch) would update the same variable of the pointer which shown on the screen. This causes the data from each finger input to overwrite the data from the previous one.

    For example, when single finger tapping on the screen,
    the coordinate X "901" Y "648" was overwritten by the last finger's data (0, 0).

    // Update the 1st finger touch
    18:18:08.824 : current_state.current_x: 0
    18:18:08.824 : handles x_axis inputs: 901
    18:18:08.824 : current_state.current_y: 0
    18:18:08.824 : handles y_axis inputs: 648
    // Update the 2nd finger touch
    // the data is "0" as no 2nd finger tapping the screen
    18:18:08.824 : current_state.current_x: 901
    18:18:08.824 : handles x_axis inputs: 0
    18:18:08.824 : current_state.current_y: 648
    18:18:08.824 : handles y_axis inputs: 0
    // Update the 3rd finger touch
    // the data is "0" as no 3rd finger tapping the screen
    18:18:08.824 : current_state.current_x: 0
    18:18:08.824 : handles x_axis inputs: 0
    18:18:08.824 : current_state.current_y: 0
    18:18:08.824 : handles y_axis inputs: 0
    // Update the 4th finger touch
    18:18:08.824 : current_state.current_x: 0
    18:18:08.824 : handles x_axis inputs: 0
    18:18:08.824 : current_state.current_y: 0
    18:18:08.824 : handles y_axis inputs: 0
    // Update the 5th finger touch
    18:18:08.824 : current_state.current_x: 0
    18:18:08.825 : handles x_axis inputs: 0
    18:18:08.825 : current_state.current_y: 0
    18:18:08.825 : handles y_axis inputs: 0
    // Update the 6th finger touch
    18:18:08.825 : current_state.current_x: 0
    18:18:08.825 : handles x_axis inputs: 0
    18:18:08.825 : current_state.current_y: 0
    18:18:08.825 : handles y_axis inputs: 0
    // Update the 7th finger touch
    18:18:08.825 : current_state.current_x: 0
    18:18:08.825 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    // Update the 8th finger touch
    18:18:08.859 : current_state.current_x: 0
    18:18:08.859 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    // Update the 9th finger touch
    18:18:08.859 : current_state.current_x: 0
    18:18:08.859 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    // Update the 10th finger touch
    18:18:08.859 : current_state.current_x: 0
    18:18:08.859 : handles x_axis inputs: 0
    18:18:08.859 : current_state.current_y: 0
    18:18:08.859 : handles y_axis inputs: 0
    

    This PR adds a set of counters to determine how many input pointers are valid and need to be handled, based on the Contact Count usage(0x54) data, which is a standard usage under Digitizer(0x0D) in HID spec. With this change, we can ensure that every pointer's data(coordinate and click/switch) processed by the driver would contain valid values.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?
    • Backport to release branch?

    How This Was Tested

    Tested on Surface Laptop device, USB Mouse, Trackpad and Touch Panel(single finger) are functional in UEFI setup up page.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

Full Changelog: dev-v2025020000.0.1...dev-v2025020000.1.0