Skip to content

Releases: microsoft/mu_feature_config

v2.0.5

06 Oct 15:25
2fe056c
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fixed autogen script when no user input for profile IDs @kuqin12 (#259)
    Change Details
      ## Description

    The previous change of adding profile ID into the autogenerated headers caused the build to break when there is no input for this parameter supplied: microsoft/mu_tiano_platforms#723.

    This change added the corresponding edge case handling and updated the autogenerated header formatting so that the output is self-consistent instead of strictly following the user input.

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    This was tested on the top of QEMU Q35 platform and confirmed building and booting to shell.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v2.0.4...v2.0.5

v2.0.4

05 Oct 19:55
c37d648
Compare
Choose a tag to compare

What's Changed

  • Update autogen script to generate profile ids array on UEFI builds @shrugupt (#258)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    This change updated the autogen script to populate the profile ids
    into profile header. The script will accept -pid as an input argument
    for the comma separated profile ids.

    This autogen script is also hooked up to CONF_PROFILE_IDS build
    variable to allow UEFI platform build to specify ids through the
    variable. If platform elects not to specify such argument, the indices
    will be used for profile ids during autogen process.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    This was tested with consumer build pipeline on proprietary platforms.

    Integration Instructions

    Specify the CONF_PROFILE_IDS build variable as comma separated
    ids during prebuild phase if need to customize.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v2.0.3...v2.0.4

v2.0.3

30 Sep 00:06
489eef5
Compare
Choose a tag to compare

What's Changed

  • Fail gracefully when failed to parse serial input @kuqin12 (#255)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    Current behavior of ConfApp will either assert or reboot the system depending on the build configuration. However, uninterruptable incoming data could actually occur during normal usage, due to user error, bad serial traffic, etc. The application should handle such errors more gracefully.

    This change modifies the error handling, when the incoming XML cannot be parsed, to prompt a user message, indicating the user to re-enter the XML file.

    image

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    This was tested on QEMU Q35 ConfApp.

    Integration Instructions

    N/A.




Full Changelog: v2.0.2...v2.0.3

v2.0.2

25 Sep 15:57
0e8b98c
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • SetupDataPkg: Fix GCC failure in KnobService.py @makubacki (#251)
    Change Details
      # Preface
    • Makes CachedPolicy type consistent in generated file.

    • Removes unused CachedPolicyInitialize variable.

    • Impacts functionality?

      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?

      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?

      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?

      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?

      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    • Local and CI build (mu_tiano_platforms integration build)

    Integration Instructions

    N/A




Full Changelog: v2.0.1...v2.0.2

v2.0.1

22 Sep 23:41
e758130
Compare
Choose a tag to compare

What's Changed

  • .pytool/CISettings.py: Update from 202208 to 202302 @makubacki (#247)
    Change Details
      ## Description

    Updates Mu dependencies to the latest release branch (202302).

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    Local build and CI.

    Integration Instructions

    N/A




📖 Documentation Updates

  • Updated auto-gen script to accept cache for policy values @kuqin12 (#244)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    This change adds a set of getter functions that accepts a caller designated buffer for cached configuration policy. This will avoid the direct usage of updating global variable does not work (i.e. the module is XIP).

    Fixes #243.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    The auto-generated headers were built on QEMU Q35 and confirmed the GOP configuration knob works as expected.

    Integration Instructions

    N/A for existing platforms. For platforms that require XIP usage, one should use ConfigGet***FromCache with user designated buffer, where the size of the buffer is specified in CACHED_POLICY_SIZE.




Full Changelog: v2.0.0...v2.0.1

v2.0.0

05 Sep 14:00
684684f
Compare
Choose a tag to compare

What's Changed

⚠️ Breaking Changes

  • UpdateConfigHdr.py: Resolve mws deprecation @Javagedes (#231)
    Change Details
      ## Description

    Replaces calls to thebuilder.mws.join to
    thebuilder.edk2path.GetAbsolutePathOnThisSystemFromEdk2RelativePath.

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    QemuSbsaPkg built successfully.

    Integration Instructions

    edk2-pytool-library must be v0.16.1 or greater
    edk2-pytool-extensions must be v0.24.0 or greater




Full Changelog: v1.0.1...v2.0.0

v1.0.1

28 Jul 14:58
16f231f
Compare
Choose a tag to compare

What's Changed

  • SetupDataPkg: Remove bare excepts @Javagedes (#220)
    Change Details
      ## Description

    Catching a bare exception is considered bad practice. Catching bare exceptions can make it impossible to interrupt the program (e.g., with Ctrl-C) and can disguise other problems. This removes all bare excepts and instead catches Exception which is the base class for all code-generated exceptions.

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    N/A

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • Move ConfigKnobShimMmLib to MM\_STANDALONE module type @os-d (#219)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    ConfigKnobShimMmLib is not a BASE lib and instead should be listed as MM_STANDALONE to reflect the primary library class it is.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    N/A.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    

📖 Documentation Updates

  • Fixing document to reflect the current state @kuqin12 (#213)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    There has been a few movements since the last documentation update:

    1. The policy producers are centralized to a common module.
    2. Added a new tool to read the applied configuration through the host OS.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    This is just documentation updates.

    Integration Instructions

    N/A




Full Changelog: v1.0.0...v1.0.1

v1.0.0

06 Jul 18:23
43c3cd2
Compare
Choose a tag to compare

What's Changed

  • ci.yaml: add PrEval entry @Javagedes (#211)
    Change Details
      ## Description

    Adds a PrEval entry to each ci.yaml file, which is used to enable the new PrEval policy 5.

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    N/A

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

⚠️ Breaking Changes

  • Move ConfigKnobShimStandaloneMmLib to ConfigKnobShimMmLib @os-d (#218)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    Add support for DXE_SMM_DRIVER to ConfigKnobShimMmLib, which is also renamed from ConfigKnobShimStandaloneMmLib to reflect the additional support. This is a breaking change due to the name change. Resolves #215.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    Ran against unit tests.

    Integration Instructions

    Consumers of mu_feature_config will need to update their ConfigKnobShimStandaloneMmLib to be ConfigKnobShimMmLib.




Full Changelog: v0.3.4...v1.0.0

v0.3.4

22 Jun 18:28
8ec2959
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • The profile name variable should be a string array @kuqin12 (#210)
    Change Details
      ## Description

    This change fixes a bug from previous autogen contract data library, where the profile name field should actually be an array of CHAR8*.

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    This was tested with consumer build pipeline on proprietary platforms.

    Integration Instructions

    N/A




Full Changelog: v0.3.3...v0.3.4

v0.3.3

22 Jun 03:23
9c59d2e
Compare
Choose a tag to compare

What's Changed

  • Update autogen script for profile names on UEFI builds @kuqin12 (#207)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    This change updated the autogen script to populate the profile names into profile header. The script will accept -pn as an input argument for the comma separated profile names.

    This autogen script is also hooked up to CONF_PROFILE_NAMES build variable to allow UEFI platform build to specify names through variables. If platform elects not to specify such argument, the indices will be used for such names during autogen process.

    A header file is also created for PlatformConfigDataLib to indicate what global variables will be produced by the autogen scripts and should serve as a contract between the autogen script and any data library should the consumer choose to implement so.

    Fixes #205

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • Impacts functionality?
      • Functionality - Does the change ultimately impact how firmware functions?
      • Examples: Add a new library, publish a new PPI, update an algorithm, ...
    • Impacts security?
      • Security - Does the change have a direct security impact on an application,
        flow, or firmware?
      • Examples: Crypto algorithm change, buffer overflow fix, parameter
        validation improvement, ...
    • Breaking change?
      • Breaking change - Will anyone consuming this change experience a break
        in build or boot behavior?
      • Examples: Add a new library class, move a module to a different repo, call
        a function in a new library class in a pre-existing module, ...
    • Includes tests?
      • Tests - Does the change include any explicit test code?
      • Examples: Unit tests, integration tests, robot tests, ...
    • Includes documentation?
      • Documentation - Does the change contain explicit documentation additions
        outside direct code modifications (and comments)?
      • Examples: Update readme file, add feature readme file, link to documentation
        on an a separate Web page, ...

    How This Was Tested

    This was tested on QEMU Q35 and SBSA platforms.

    Integration Instructions

    Specify the CONF_PROFILE_NAMES build variable as comma separated strings during prebuild phase if need to customize.




Full Changelog: v0.3.2...v0.3.3