)]}'
{
  "log": [
    {
      "commit": "3ff3b0e43f4b21eb5c1597ae602fa2a7c3d86e03",
      "tree": "91eeb40823ed042a0a04b7aad6bcc60b192d556d",
      "parents": [
        "df9111c2d381546ff23cdf327546ad49f51ce779"
      ],
      "author": {
        "name": "Michael Kubacki",
        "email": "michael.kubacki@microsoft.com",
        "time": "Tue Jul 21 12:14:33 2026 -0400"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 29 12:32:09 2026 +0000"
      },
      "message": ".pytool: Add MarkdownLintCheck plugin\n\nThis plugin runs markdownlint against all markdown files in a given\npackage to report linter errors.\n\nSee the following readme for me details:\n\n  .pytool/Plugin/MarkdownLintCheck/Readme.md\n\nCo-authored-by: Sean Brogan \u003csean.brogan@microsoft.com\u003e\nSigned-off-by: Michael Kubacki \u003cmichael.kubacki@microsoft.com\u003e\n"
    },
    {
      "commit": "df9111c2d381546ff23cdf327546ad49f51ce779",
      "tree": "ab66838950d47d8ba66dfd0bf06d35b3a1a4f6a0",
      "parents": [
        "ac0777f893bc96d456b153e1594adaefa7de9605"
      ],
      "author": {
        "name": "Michael Kubacki",
        "email": "michael.kubacki@microsoft.com",
        "time": "Tue Jul 21 20:42:07 2026 -0400"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 29 12:32:09 2026 +0000"
      },
      "message": "Global: Set MarkdownLintCheck plugin to AuditOnly\n\nIn preparation for the MarkdownLintCheck plugin being added to the\nrepo, this change defaults the plugin to `AuditOnly` mode in each\npackage. This allows package maintainers to enable the plugin as they\nsee fit.\n\nContinuous-integration-options: PatchCheck.ignore-multi-package\nSigned-off-by: Michael Kubacki \u003cmichael.kubacki@microsoft.com\u003e\n"
    },
    {
      "commit": "ac0777f893bc96d456b153e1594adaefa7de9605",
      "tree": "4e5454d6ca62b1b12e2e0cd012fb75e970935995",
      "parents": [
        "eeaac552f81111014ab77f8f6e0dea00e03b3c46"
      ],
      "author": {
        "name": "Michael Kubacki",
        "email": "michael.kubacki@microsoft.com",
        "time": "Wed Jul 22 15:36:17 2026 -0400"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 28 19:33:06 2026 +0000"
      },
      "message": "BREAKING-CHANGES.md: Sort entries and add order guidance\n\n1. To provide greater clarity and consistency, the file instructions\n   are updated to indicate that entries should be added after existing\n   entries within a given section so that they are in chronological\n   merge order within the section.\n2. Existing entries are sorted accordingly.\n3. Existing entries are updated to have consistent style and some\n   section header levels are adjusted to properly reflect the level\n   of the section.\n\nSigned-off-by: Michael Kubacki \u003cmichael.kubacki@microsoft.com\u003e\n"
    },
    {
      "commit": "eeaac552f81111014ab77f8f6e0dea00e03b3c46",
      "tree": "cd1fab921c2ca039adbf95b494c99421d46ec1a2",
      "parents": [
        "82cfea329cc2214df006edc067ed852f4d86a314"
      ],
      "author": {
        "name": "Aaron Pop",
        "email": "aaronpop@microsoft.com",
        "time": "Thu Jul 23 14:32:51 2026 -0700"
      },
      "committer": {
        "name": "Ard Biesheuvel",
        "email": "ardb@kernel.org",
        "time": "Tue Jul 28 10:51:23 2026 +0300"
      },
      "message": "OvmfPkg/FdtPciHostBridgeLib: mark PCI host MMIO mappings as non-executable\n\nAdd EFI_MEMORY_XP to all MapMmioMemory() calls in ProcessPciHost() for:\n- ECAM space\n- Translated I/O window\n- 32-bit MMIO window\n- 64-bit MMIO window\n\nThese regions are data/MMIO only and should not be executable. Marking them\nwith EFI_MEMORY_XP improves memory protection hardening without changing\nintended runtime behavior.\n\nSigned-off-by: Aaron Pop \u003caaronpop@microsoft.com\u003e\n"
    },
    {
      "commit": "82cfea329cc2214df006edc067ed852f4d86a314",
      "tree": "929c28b8ded913ac40c50847f24b2a3fe2f79965",
      "parents": [
        "e11670b37916faa2b6e430551ec95b88e2c62e7e"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Thu Jul 23 16:51:38 2026 +0200"
      },
      "committer": {
        "name": "Ard Biesheuvel",
        "email": "ardb@kernel.org",
        "time": "Mon Jul 27 22:28:11 2026 +0300"
      },
      "message": "ArmVirtPkg: add QemuFwCfg null library instances to common DSC\n\nPlatformPeiLib consumes QemuFwCfgSimpleParserLib, but ArmVirtXen.dsc\nprovided no resolution for it or its dependency QemuFwCfgLib, causing:\n\n  error 4000: Instance of library class [QemuFwCfgSimpleParserLib]\n  is not found for module [ArmVirtPrePiUniCoreRelocatable.inf],\n  consumed by PlatformPeiLib.inf\n\nWire up QemuFwCfgLibNull and QemuFwCfgSimpleParserLib in the common\nArmVirt.dsc.inc so all platforms without fw_cfg fail gracefully.\nArmVirtCloudHv.dsc already carried the same null pair; both per-DSC\ncopies are removed now that the common default covers them.\nArmVirtQemu and ArmVirtQemuKernel continue to override with their\nreal MMIO implementations.\n\nFixes: f4bbef1dd7 (\"ArmVirtPkg: introduce compile and runtime control of serial debug log level\")\nReported-by: Pierre Gondois \u003cpierre.gondois@arm.com\u003e\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "e11670b37916faa2b6e430551ec95b88e2c62e7e",
      "tree": "517b259206f1d0977f20082804c7dc8253494afc",
      "parents": [
        "e17aaec44ba9e010926d989ee7b6a06696fe1826"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:25:26 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": "OvmfPkg: Update VS2022 CI to VS2026\n\nThis follows the rest of edk2 to update\nVS2022 CI to VS2026.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "e17aaec44ba9e010926d989ee7b6a06696fe1826",
      "tree": "45ab4e91c64f6cc02dc6eb7c8d4452371f29510d",
      "parents": [
        "db183242ac438ad2c44fcacd25e678cf60e9f54a"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:25:08 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": "EmulatorPkg: Update CI to VS2026\n\nThis updates the VS2022 EmulatorPkg CI to VS2026.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "db183242ac438ad2c44fcacd25e678cf60e9f54a",
      "tree": "42fb113312980e41bb77288f16dba065a61a516b",
      "parents": [
        "d1b6a9c968b612302bf6cf631a4c18958c1dca35"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:24:41 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": ".github: Move GitHub Actions to VS2026\n\nThis updates all GitHub Actions using VS2022 to\nVS2026.\n\nNote, windows-2025 is the VM image that contains\nVS2026. 2025 refers to the Windows Server version,\nnot the VS version. GitHub runners have updated the\nwindows-2025 VM version to include VS2026, so no\nadditional migration is required.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "d1b6a9c968b612302bf6cf631a4c18958c1dca35",
      "tree": "e6d2b6a617c21a62286b8e66566df3602d15b17e",
      "parents": [
        "0f8d430e5282ff7f7ecdb59fd52b21136dbd80f5"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:24:15 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": ".azurepipelines: Move to VS2026\n\nThis upgrades the Azure Pipelines CI to use\nVS2026 instead of VS2022.\n\nThe Windows VM image is updated to windows-2025-vs2026 which\nhas been updated to use VS2026. Note, 2025 references\nthe Windows Server release, not the VS version. Azure pipelines\nhas not migrated its windows-2025 VM image to use VS2026 yet,\nit will do so after that feature is GA\u0027d, at which point edk2\nwill have time to update to that VM image.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "0f8d430e5282ff7f7ecdb59fd52b21136dbd80f5",
      "tree": "417fefd7f408ac0ef6a27b39c5111b914d6955de",
      "parents": [
        "df07555061ffae47adc5ac01e85be8141fa58b9a"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:23:30 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": ".pytool: Update Readme for VS2026\n\nedk2 is moving to VS2026 for the MSVC toolchain.\nUpdated the .pytool Readme.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "df07555061ffae47adc5ac01e85be8141fa58b9a",
      "tree": "d08251bb5fe9e997d949dc6da6135db468fcb8ba",
      "parents": [
        "b5c33ab37f81c598f9f6c546b0732c21e179d627"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:21:54 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": "EmulatorPkg: Update DSC/Readme for VS2026\n\nedk2 is moving to VS2026 for the MSVC toolchain.\nUpdate the building instructions and DSC conditionals.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "b5c33ab37f81c598f9f6c546b0732c21e179d627",
      "tree": "4a8c8016eb53a251e5862a4ddd833a960a1a9ab7",
      "parents": [
        "80c428c1fe74c32313d7f6b7de9da9a8fdb5ab6c"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:20:20 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": "UnitTestFrameworkPkg: Update ReadMe for VS2026\n\nedk2 is moving to VS2026 for the MSVC toolchain,\nupdate the ReadMe accordingly.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "80c428c1fe74c32313d7f6b7de9da9a8fdb5ab6c",
      "tree": "068d0900714d0af9d9a4f42bc0b70880f7ca95ff",
      "parents": [
        "69cf33dd9d5c7bf40411140a4e087ee8c4df229b"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:19:46 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": "PrmPkg: Update Readmes for VS2026\n\nedk2 is moving to VS2026 for the MSVC toolchain.\nUpdate examples accordingly.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "69cf33dd9d5c7bf40411140a4e087ee8c4df229b",
      "tree": "e4989f4bc437eca2bce342dc793645ba07a8a9dd",
      "parents": [
        "a9670673255f1e0c3755d3eed442ee8e147c5c3d"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:18:37 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": "BaseTools: Default Windows Build to VS2026\n\nedk2 is moving to VS2026 for the MSVC toolchain,\nas such, upgrade the Windows BaseTools build default\nfrom VS2022 -\u003e VS2026.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "a9670673255f1e0c3755d3eed442ee8e147c5c3d",
      "tree": "ead135e6409b3cabddeff114da6981b0f94df9d7",
      "parents": [
        "479a79c57f2a9de05caa516dc6befdcfe02f24ad"
      ],
      "author": {
        "name": "Oliver Smith-Denny",
        "email": "osde@microsoft.com",
        "time": "Fri Jun 19 07:17:42 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 19:09:16 2026 +0000"
      },
      "message": "pip-requirements.txt: Upgrade Pytool Lib for VS2026 Support\n\nThis pulls in the latest edk2-pytool-library which includes\nsupport for locating VS2026.\n\nSigned-off-by: Oliver Smith-Denny \u003cosde@microsoft.com\u003e\n"
    },
    {
      "commit": "479a79c57f2a9de05caa516dc6befdcfe02f24ad",
      "tree": "8f8c600724366d8aa1233924fd7a51ab3ed17da5",
      "parents": [
        "984b2fb3bda61ddda065566c72e6e32ea35b67b4"
      ],
      "author": {
        "name": "rdiaz",
        "email": "raymonddiaz@microsoft.com",
        "time": "Thu Jun 25 21:47:40 2026 +0000"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Sat Jul 25 01:32:22 2026 +0000"
      },
      "message": "MdePkg,SecurityPkg: Fix TPM2 ACPI Table\n\nUpdated the ACPI code to fix an issue where the template was\noutdated and the revision was reporting V5 but the template was still\nusing the V4 version of the Start Method specific parameters.\n\nContinuous-integration-options: PatchCheck.ignore-multi-package\nSigned-off-by: Raymond Diaz \u003craymonddiaz@microsoft.com\u003e\n"
    },
    {
      "commit": "984b2fb3bda61ddda065566c72e6e32ea35b67b4",
      "tree": "5fa8631df662f3cc575fabfd9bb5544fd9c1be7d",
      "parents": [
        "5c6e9d475fe2943f2844ca879785c198588a30d0"
      ],
      "author": {
        "name": "VarshitPandya",
        "email": "varshit.pandya@arm.com",
        "time": "Wed Jul 22 16:07:24 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 24 21:55:19 2026 +0000"
      },
      "message": "DynamicTablesPkg: Use ArmSmcccSocIdLib for SoC ID\n\nUpdate SmbiosSmcLib to use ArmSmcccSocIdLib for retrieving the JEP106\nidentification code and SoC revision.\n\nRemove the duplicated SMCCC feature detection and SoC ID calls while\nretaining the SMBIOS-specific formatting of the Type 4 Processor ID.\n\nSigned-off-by: Varshit Pandya \u003cVarshit.Pandya@arm.com\u003e\n"
    },
    {
      "commit": "5c6e9d475fe2943f2844ca879785c198588a30d0",
      "tree": "59bb6ac13faa26b5ea43dde6f5bac9abd6492e38",
      "parents": [
        "71c401f2e98f2bf13e98a4258f6e92854a6a0711"
      ],
      "author": {
        "name": "VarshitPandya",
        "email": "varshit.pandya@arm.com",
        "time": "Wed Jul 22 15:51:46 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 24 21:55:19 2026 +0000"
      },
      "message": "ArmPkg: Add Arm SMCCC SoC ID library\n\nAdd ArmSmcccSocIdLib to provide a shared interface for checking support\nfor the SMCCC Architecture SoC ID service and retrieving the JEP106\nidentification code and SoC revision.\n\nMove the existing SMCCC SoC ID handling out of ProcessorSubClassDxe and\nupdate the driver to use the new library. Continue to use the MIDR value\nfor the SMBIOS Processor ID when the SMCCC SoC ID service is unavailable.\n\nThis allows other SMBIOS implementations to reuse the SMCCC handling\nwithout duplicating it or depending on the legacy ProcessorSubClassDxe\ndriver.\n\nSigned-off-by: Varshit Pandya \u003cVarshit.Pandya@arm.com\u003e\n"
    },
    {
      "commit": "71c401f2e98f2bf13e98a4258f6e92854a6a0711",
      "tree": "40330f3d8efac19fe99c238738bb437060d4c537",
      "parents": [
        "58e8828bb37ba3b9ef9a5bebcc3369fd032188a6"
      ],
      "author": {
        "name": "Aaron Pop",
        "email": "aaronpop@microsoft.com",
        "time": "Tue Jul 21 15:41:13 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 24 19:37:20 2026 +0000"
      },
      "message": "DynamicTablesPkg: Fix markdownlint errors\n\nFixing all markdown lint errors found by running markdownlint-cli.\n\nVerified that rendering still shows valid information.\n\nSigned-off-by: Aaron Pop \u003caaronpop@microsoft.com\u003e\n"
    },
    {
      "commit": "58e8828bb37ba3b9ef9a5bebcc3369fd032188a6",
      "tree": "cd740ac2fc6324e9ccd2f10f57538f4803721d40",
      "parents": [
        "8d2bbdfb14384d77a5be491d90a8ac35cfa192a8"
      ],
      "author": {
        "name": "Michael Kubacki",
        "email": "michael.kubacki@microsoft.com",
        "time": "Wed Jul 22 22:25:18 2026 -0400"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 24 18:21:31 2026 +0000"
      },
      "message": ".pytool: Include the British English dictionary\n\nPrevent British English words from being flagged as spelling errors.\n\nSigned-off-by: Michael Kubacki \u003cmichael.kubacki@microsoft.com\u003e\n"
    },
    {
      "commit": "8d2bbdfb14384d77a5be491d90a8ac35cfa192a8",
      "tree": "f157984960a90d4729bccd030d3f9ed480cc6364",
      "parents": [
        "f246d215eada6bb9fa7abc81c6aed2b49732f51a"
      ],
      "author": {
        "name": "Qihang Gao",
        "email": "gaoqihang@loongson.cn",
        "time": "Fri Jul 24 10:55:15 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 24 11:17:34 2026 +0000"
      },
      "message": "StandaloneMmPkg/Core: Fix memory leak in MmiHandlerRegister\n\nIn MmiHandlerRegister(), the MmiHandler structure is currently\nallocated before looking up the target MmiEntry. If the lookup\nfails, the function returns an error but the allocated MmiHandler\nis never freed, causing a memory leak.\n\nThis patch moves the allocation of MmiHandler and its initialization\nto after the MmiEntry lookup and validation. This ensures that memory\nis only allocated when the operation can succeed, eliminating the need\nfor a FreePool() on the error path and simplifying the error handling\nlogic.\n\nSigned-off-by: Qihang Gao \u003cgaoqihang@loongson.cn\u003e\nSuggested-by: Ray Ni \u003cray.ni@intel.com\u003e\n"
    },
    {
      "commit": "f246d215eada6bb9fa7abc81c6aed2b49732f51a",
      "tree": "9c88ffa815aef5030f20b49b29cebf8c768d13a7",
      "parents": [
        "1d8239c4fc8434babb91ae1355ef07aa6a0d073a"
      ],
      "author": {
        "name": "Girish Mahadevan",
        "email": "gmahadevan@nvidia.com",
        "time": "Sat Jul 11 17:39:02 2026 +0000"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 24 07:06:45 2026 +0000"
      },
      "message": "DynamicTablesPkg: Smbios System Enclosure (Type 3)\n\nSigned-off-by: Girish Mahadevan \u003cgmahadevan@nvidia.com\u003e\n"
    },
    {
      "commit": "1d8239c4fc8434babb91ae1355ef07aa6a0d073a",
      "tree": "6053913569b81a8acb3dac4cc026a4571a0f37c7",
      "parents": [
        "27ac8fac0b61e6b464369cc1cadc66a7b83336c4"
      ],
      "author": {
        "name": "Girish Mahadevan",
        "email": "gmahadevan@nvidia.com",
        "time": "Sat Jul 11 16:20:13 2026 +0000"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 24 07:06:45 2026 +0000"
      },
      "message": "DynamicTablesPkg: Add System Enclosure CM object and parser\n\nSigned-off-by: Girish Mahadevan \u003cgmahadevan@nvidia.com\u003e\n"
    },
    {
      "commit": "27ac8fac0b61e6b464369cc1cadc66a7b83336c4",
      "tree": "335e27840719187e582e2b07f60b378ae34379a7",
      "parents": [
        "b551e8bb32fa096cb985a0fa599995160474c8e9"
      ],
      "author": {
        "name": "Chris Fernald",
        "email": "chfernal@microsoft.com",
        "time": "Fri Jan 16 09:30:45 2026 -0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 18:06:03 2026 +0000"
      },
      "message": "BaseTools: Add support for preserving build ID\n\nAdds an optional flag that copies the GNU build-id note from the input\nELF file into the output PE/COFF firmware image as a dedicated \".bldid\"\nsection. The build ID is emitted by the linker as a unique fingerprint\nof the binary and allows custom post-build and debugging tools to\nreliably match a firmware image against its corresponding unstripped\nELF and debug symbols, without relying on file names, timestamps, or\nbuild paths.\n\nThis notable opts to use a non-standard section name \".bldid\" to store\nthe build ID. This approach was chosen to keep genfw and the parsers simple\nsince the full \"build-id\" name would require redirecting the section name.\nWhile this breaks from standard conventions, this is not impactful since\nGenFW is already creating a non-standard artifact for the PE image with\nthe associated ELF symbol file.\n\nSigned-off-by: Chris Fernald \u003cchfernal@microsoft.com\u003e\n"
    },
    {
      "commit": "b551e8bb32fa096cb985a0fa599995160474c8e9",
      "tree": "f31b4c13d689ac29214800d47d64bf1d27d0058a",
      "parents": [
        "2bdb08ab006a178305ee9da3883a30dda41290ae"
      ],
      "author": {
        "name": "VarshitPandya",
        "email": "varshit.pandya@arm.com",
        "time": "Thu Jul 09 14:20:10 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 14:40:20 2026 +0000"
      },
      "message": "DynamicTablesPkg: Smbios Additional Information (Type 40)\n\nAdd a DynamicTables SMBIOS generator for the Additional Information\n(Type 40) structure.\n\nSMBIOS Type 40 provides additional information for fields in other\nSMBIOS structures. Each Type 40 entry references an existing SMBIOS\nrecord by handle and offset, provides an optional entry string, and\ncarries a supplemental field value.\n\nThe generator consumes one or more top-level CM objects, each referencing\na list of Additional Information entries. Each entry provides:\n  - the CM object token of the referenced SMBIOS structure,\n  - the referenced table generator ID,\n  - the offset of the referenced field,\n  - an optional entry string,\n  - a token to a typed Additional Information Value object.\n\nExample platform CM object layout:\n\n  CM_ARCH_COMMON_ADDITIONAL_INFORMATION AdditionalInformation[] \u003d {\n    {\n      REFERENCE_TOKEN (AdditionalInformation[0]),\n      REFERENCE_TOKEN (AdditionalInformationEntry[0])\n    }\n  };\n\n  CM_ARCH_COMMON_ADDITIONAL_INFORMATION_ENTRY\n    AdditionalInformationEntry[] \u003d {\n      {\n        REFERENCE_TOKEN (MemoryDeviceInfo[0]),\n        CREATE_STD_SMBIOS_TABLE_GEN_ID (EStdSmbiosTableIdType17),\n        OFFSET_OF (SMBIOS_TABLE_TYPE17, MemoryType),\n        \"DIMM0 memory type\",\n        REFERENCE_TOKEN (AdditionalInformationValue[0])\n      }\n    };\n\n  CM_ARCH_COMMON_ADDITIONAL_INFORMATION_VALUE\n    AdditionalInformationValue[] \u003d {\n      {\n        sizeof (UINT8),\n        {\n          MemoryTypeDram\n        }\n      }\n    };\n\nThe generator resolves referenced SMBIOS handles using CM object tokens\nand table generator IDs. It validates the typed value objects, individual\nentry lengths, and aggregate formatted record size. The maximum accepted\nvalue length is controlled by PcdMaxAdditionalInformationValue.\n\nBuild the variable-length Type 40 formatted area and append the entry\nstrings to the SMBIOS string area.\n\nSigned-off-by: Varshit Pandya \u003cvarshit.pandya@arm.com\u003e\n"
    },
    {
      "commit": "2bdb08ab006a178305ee9da3883a30dda41290ae",
      "tree": "57844f1dfff86d2c7a699e8cd08afdbd27e519db",
      "parents": [
        "35345c76a978f724f022a756aa47c847e61ffacc"
      ],
      "author": {
        "name": "VarshitPandya",
        "email": "varshit.pandya@arm.com",
        "time": "Tue Jul 21 17:41:36 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 14:40:20 2026 +0000"
      },
      "message": "DynamicTablesPkg: Add Additional Information CM objects\n\nAdd the Configuration Manager objects required to describe SMBIOS\nAdditional Information (Type 40) structures.\n\nThe top-level object references a list of Additional Information entries.\nEach entry identifies a field in an existing SMBIOS structure and\nreferences a typed value object containing the additional data.\n\nDefine the maximum value buffer size from the SMBIOS Type 40 formatted\nlength limit and add parsers for the new CM objects.\n\nSigned-off-by: Varshit Pandya \u003cvarshit.pandya@arm.com\u003e\n"
    },
    {
      "commit": "35345c76a978f724f022a756aa47c847e61ffacc",
      "tree": "b3767f99c7fb2ee2ce6e97646b8bb77884fcb4bf",
      "parents": [
        "e59458b6582afd365c6b170ff442d87327fb6cfa"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Mon Jun 22 10:04:34 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 09:00:42 2026 +0000"
      },
      "message": "OvmfPkg/IntelTdx: Add memory debug logging support for TDX guests\n\nOVMF already supports MemDebugLogLib for capturing firmware debug\noutput in a runtime memory buffer. Align the TDX peiless boot path\nwith OVMF by integrating the same library, so that TDX guests can\nuse memory-based debug logging.\n\nIn PeilessStartupLib, allocate a runtime buffer for the debug log\nduring PeilessStartup() and copy any early SEC-phase logs from\nthe pre-allocated FDF region into it.\n\nRegister the early debug log memory region in the TDX metadata as\nTEMP_MEM so the TDX module accepts it during guest initialization.\n\nMove PlatformDxe/Platform.inf from NCCFV to DXEFV because it\nexposes the memory debug log HOB to the guest.\n\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "e59458b6582afd365c6b170ff442d87327fb6cfa",
      "tree": "b099621bf9624b39edc602bce08c021858563c31",
      "parents": [
        "4d5f8e68a1e9baec74c8bd73c0dd09a596c1c3f9"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Tue Jun 23 15:34:41 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 09:00:42 2026 +0000"
      },
      "message": "OvmfPkg/MemDebugLogLib: Add MemDebugLogInit/Copy stubs to Null instance\n\nThe Null instance of MemDebugLogLib only provides MemDebugLogWrite(),\nMemDebugLogPages(), and MemDebugLogEnabled(). Any module that\nreferences MemDebugLogInit() or MemDebugLogCopy() cannot link against\nthe Null instance, forcing the feature to be gated at the build-system\nlevel rather than at runtime.\n\nAdd no-op stubs for MemDebugLogInit() and MemDebugLogCopy().\n\nThis will be used by the following commit to add memory debug log\nsupport in TDX.\n\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "4d5f8e68a1e9baec74c8bd73c0dd09a596c1c3f9",
      "tree": "b49f19bc8b8156db6bc07973fe4f1b9325ddeb89",
      "parents": [
        "ea275a48fa983d9d2266d697b1248d63ea5a9ba2"
      ],
      "author": {
        "name": "Jared Pan",
        "email": "jared.pan@dell.com",
        "time": "Mon Jul 13 16:10:37 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 07:25:57 2026 +0000"
      },
      "message": "MdeModulePkg/UsbBusDxe: BOS Descriptor Check for SS Devices\n\nSome SuperSpeed-capable devices may fall back to High-Speed\nmode and cause subsequent commands to fail.\n\n[Suggested Solution]\nCheck the BOS descriptor to verify SuperSpeed support and\ntrigger a port reset if needed to re-enumerate the device\nproperly.\n\nSigned-off-by: Marlboro Chuang \u003cmarlboro.chuang@dell.com\u003e\nSigned-off-by: Jared Pan \u003cjared.pan@dell.com\u003e\n"
    },
    {
      "commit": "ea275a48fa983d9d2266d697b1248d63ea5a9ba2",
      "tree": "597b8657c24888f9321441101ee59f4455c53eb8",
      "parents": [
        "bcd168735f46b30525a59b782cad032b8de55e60"
      ],
      "author": {
        "name": "Jared Pan",
        "email": "jared.pan@dell.com",
        "time": "Mon Jul 13 16:10:14 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Wed Jul 22 07:25:57 2026 +0000"
      },
      "message": "MdePkg/Usb: Add BOS Descriptor to support SuperSpeed Devices\n\n[Suggested Solution]\nAdd the BOS descriptor structure and definition.\n\nSigned-off-by: Marlboro Chuang \u003cmarlboro.chuang@dell.com\u003e\nSigned-off-by: Jared Pan \u003cjared.pan@dell.com\u003e\n"
    },
    {
      "commit": "bcd168735f46b30525a59b782cad032b8de55e60",
      "tree": "075cbb8170da6a024fa022afba58a396495dce13",
      "parents": [
        "74caea295623fc7ec3f27a71f3488662864cbb4e"
      ],
      "author": {
        "name": "VarshitPandya",
        "email": "varshit.pandya@arm.com",
        "time": "Fri Jul 17 16:28:53 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 15:18:26 2026 +0000"
      },
      "message": "DynamicTablesPkg: Move common size definitions\n\nMove SMBIOS_MAX_STRING_SIZE and CFMWS_MAX_INTERLEAVE_WAYS to the\ncommon definitions near the top of ArchCommonNameSpaceObjects.h.\n\nDocument that SMBIOS_MAX_STRING_SIZE is an implementation-defined\nConfiguration Manager storage limit, including the terminating NULL,\nrather than an SMBIOS specification limit. Also distinguish it from\nthe legacy SMBIOS_STRING_MAX_LENGTH definition used for SMBIOS 2.6\nMIF compatibility.\n\nSigned-off-by: Varshit Pandya \u003cvarshit.pandya@arm.com\u003e\n"
    },
    {
      "commit": "74caea295623fc7ec3f27a71f3488662864cbb4e",
      "tree": "e2394da145a0864f9f227117a36855fd34a8855c",
      "parents": [
        "422cc775a910e0f42f70162d3ed6a228a8a1437d"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Fri Jun 26 17:22:37 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "ArmVirtPkg: Link VirtioMmioProbeLib to VirtioFdtDxe\n\nLink VirtioMmioProbeLib to VirtioFdtDxe so that the Virtio MMIO\nprobe constructor maps the virtio-mmio ranges before the transport\ndriver accesses the device MMIO regions.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "422cc775a910e0f42f70162d3ed6a228a8a1437d",
      "tree": "ff19e23d09173c3f152d414afdee1842dc834f2e",
      "parents": [
        "2f91cf9045bf43a24c99c8df799a92841eb9ad28"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Wed Jun 24 13:17:43 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "OvmfPkg: Introduce a Virtio MMIO probe lib\n\nIntroduce a Virtio MMIO probe library that discovers virtio-mmio\nnodes from the FDT and maps their MMIO ranges before the virtio\ntransport driver creates virtio devices and accesses the device\nMMIO regions.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "2f91cf9045bf43a24c99c8df799a92841eb9ad28",
      "tree": "a9fa3fd4a90c29992fe10f182ad37479391d4891",
      "parents": [
        "2adf8dc56d1036eb9f8c00a11620f68d71bf277b"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Mon Jun 15 18:03:33 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "ArmVirtPkg: Refactor memory map configuration for Kvmtool Guest VM\n\nRefactor the memory mapping configuration for Kvmtool Guest VM to\nonly setup the memory map for the System Memory, FV and the Serial\nPort.\n\nThe memory mappings for he remaining devices are expected to be\nconfigured by the respective drivers, this could be done as part\nof the DXE drivers itself or using a Probe Library that adds the\ndevice memory regions to the memory map.\n\nThe only special cases that remain are the System Memory, FV and\nthe Serial Port for which the memory mappings are created by the\nKvmtoolVirtMemInfoLib. The memory mapping for the Serial port\nis added as it is utilised for logging before the DXE driver\nis loaded.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "2adf8dc56d1036eb9f8c00a11620f68d71bf277b",
      "tree": "4371e5a9123c7758c0ae2c658d0efd8d00e57890",
      "parents": [
        "da1ccea67ce0fa58dd934abc5535443d7197004b"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Mon Jun 15 16:24:28 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "ArmVirtPkg: Add early FDT 16550 serial port probe library\n\nFdt16550SerialPortHookLib does not provide a constructor and\nexpects SerialPortLib to call PlatformHookSerialPortInitialize().\n\nAdd an early FDT 16550 serial port probe library that invokes the\nplatform serial hook from its constructor. This allows the FDT to be\nparsed early, the 16550 serial port base address to be extracted, and\nthe serial port PCD to be populated. It is needed during early boot so\nthe serial port memory map can be set up using the populated serial\nport PCD.\n\nThe probe library wraps the hook call in its constructor instead of\nreusing PlatformHookSerialPortInitialize() directly. This avoids\nduplicate global definitions in modules that already link against the\nPlatformHookLib instance.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "da1ccea67ce0fa58dd934abc5535443d7197004b",
      "tree": "d7940502bbf98b2982ae56bd8c30ef7526546163",
      "parents": [
        "d46e38c5ea4cefa6ccb7a291196ab255c9d528ef"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Sat May 23 14:14:05 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "OvmfPkg/FdtPciHostBridgeLib: Map PCI MMIO windows in GCD\n\nMap the PCI MMIO32 and MMIO64 windows into the GCD memory\nmap after parsing the DT ranges property.\n\nThis makes the PCI memory apertures available as MMIO\nregions.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "d46e38c5ea4cefa6ccb7a291196ab255c9d528ef",
      "tree": "4f3976c09c73c367b8005cb3a99198f453f3dc14",
      "parents": [
        "9dcf9d317a0273482ca38a5b161a761e35cca18a"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Wed Jul 01 18:56:25 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "OvmfPkg/FdtPciHostBridgeLib: Use MapMmioLib for MMIO mapping\n\nReplace the local GCD MMIO mapping helper with MapMmioMemory() when\nmapping the PCI ECAM region and the translated I/O MMIO window.\n\nThis keeps the FDT PCI host bridge code aligned with the common MMIO\nmapping helper and avoids duplicating AddMemorySpace() and\nSetMemorySpaceAttributes() handling.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "9dcf9d317a0273482ca38a5b161a761e35cca18a",
      "tree": "3222b3ecce984e5f4deb0df28a59cb701f9660ff",
      "parents": [
        "28526dbba322e043c8089706f8e8e4c78012ee10"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Sat May 23 14:13:16 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "ArmVirtPkg/KvmtoolRtcFdtClientLib: Use MapMmioLib for MMIO mapping\n\nReplace the local RTC MMIO mapping sequence with MapMmioMemory(), while\nkeeping the explicit GCD allocation so the RTC page remains owned by the\ndriver image handle.\n\nThis reuses the common MMIO mapping path for GCD attributes.\n\nAlso update the incorrect error code documentation to reflect that\nEFI_NOT_FOUND can be returned if the GCD space is not found and\ndrop the depex on gEfiCpuArchProtocolGuid as this is now done\nby MapMmioLib which is where the Cpu Arch protocol is utilised.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "28526dbba322e043c8089706f8e8e4c78012ee10",
      "tree": "eb9f270de08c2d6f59daa5214ec77709c49728f1",
      "parents": [
        "b2b548c05750105d51fe86770974fffc1bafd50a"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Sat May 23 14:11:38 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "ArmVirtPkg: Map GIC MMIO ranges before configuring GIC\n\nDiscover the GIC register ranges from the device tree and map them into\nthe GCD memory map before ArmGicDxe configures the interrupt controller.\n\nMap the distributor and redistributor ranges for GICv3, and the\ndistributor and CPU interface ranges for GICv2, using MapMmioLib.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "b2b548c05750105d51fe86770974fffc1bafd50a",
      "tree": "c78a8c6ba8b66f863cbb6717537fc60825ac7a66",
      "parents": [
        "838240263a476ae54ffb6f694cc4bc0a0ce42727"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Fri Jun 26 17:23:59 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "ArmVirtPkg: Include MapMmioLib in ArmVirt.dsc.inc\n\nAdd the MapMmioLib instance to the ArmVirt DXE_DRIVER library class\nlist so DXE drivers can map MMIO regions through the common helper.\n\nAlso add the runtime-driver library class mapping in ArmVirt.dsc.inc\nso that runtime modules like KvmtoolRtcFdtClientLib can use\nMapMmioLib.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "838240263a476ae54ffb6f694cc4bc0a0ce42727",
      "tree": "086fa8db706b8085331dc10a1d759a84be71cd7e",
      "parents": [
        "760bb2d2fd7f648dea6ae8d2bf04c69e260d9181"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Thu Jul 02 11:12:50 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "OvmfPkg/MapMmioLib: Support runtime drivers\n\nAllow MapMmioLib to be consumed by DXE_RUNTIME_DRIVER modules.\n\nMapMmioMemory() depends on DXE services, so it cannot map new\nranges after ExitBootServices(). Return EFI_ACCESS_DENIED when\ncalled at runtime.\n\nThis allows runtime drivers such as\nArmVirtPkg/Library/KvmtoolRtcFdtClientLib to use MapMmioLib for\nboot-time MMIO setup.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "760bb2d2fd7f648dea6ae8d2bf04c69e260d9181",
      "tree": "cc2f361f2f2db3045b45315dc99acf6ae117af70",
      "parents": [
        "084ce2b04bdd9b3ed8f2a1eb51d09355c04c692c"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Fri Jun 26 16:44:03 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "OvmfPkg/MapMmioLib: Introduce a library for mapping MMIO regions\n\nIntroduce MapMmioLib to add MMIO regions to the GCD memory map.\n\nMapMmioMemory() normalizes the requested range to page boundaries, adds\nmissing MMIO descriptors, and updates attributes for new and existing MMIO\ndescriptors. Existing descriptors of any other type are reported as\nconflicts.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "084ce2b04bdd9b3ed8f2a1eb51d09355c04c692c",
      "tree": "2f2561b8b13eac715ebe1d0969e0f6857ecd24fd",
      "parents": [
        "2b842a2081613684117fb1f924eb27a05a112e5d"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Thu May 21 08:06:17 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 10:25:17 2026 +0000"
      },
      "message": "ArmVirtPkg: Clear TPIDR_EL0 before early HOB lookups\n\nTPIDR_EL0 is used to hold the PrePi HOB list pointer, but its reset\nvalue is unknown. Some early boot paths can call GetHobList() before\nPrePiMain() creates and installs the HOB list.\n\nClear TPIDR_EL0 at the SEC entry point so those early lookups see NULL\nrather than an invalid pointer.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "2b842a2081613684117fb1f924eb27a05a112e5d",
      "tree": "5e7a7b2c402b3d64258f20d4800611b5e365cf7a",
      "parents": [
        "6a9c048ba54c7e27898b861410741f5b27bfb2d6"
      ],
      "author": {
        "name": "Michael G.A. Holland",
        "email": "michael.holland@intel.com",
        "time": "Tue Jul 14 07:34:04 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 09:17:50 2026 +0000"
      },
      "message": "CryptoPkg/BaseCryptLib: Add SLH-DSA Support\n\nCreated SLH-DSA API functions to configure public and private keys for\nSLH-DSA algorithm.  This will allow users to sign and verify with\nSLH-DSA.  Unit tests were added to confirm operation of the API.\n\nSigned-off-by: Michael G.A. Holland \u003cmichael.holland@intel.com\u003e\n"
    },
    {
      "commit": "6a9c048ba54c7e27898b861410741f5b27bfb2d6",
      "tree": "6be3be8b9e767ea273d774293e50db7278463e0a",
      "parents": [
        "0adb357ab7bfe7e5f4df94ea5076f4f5eeb725be"
      ],
      "author": {
        "name": "DC-Damien",
        "email": "damien.chen@dell.com",
        "time": "Fri Jun 05 16:29:15 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 03:50:20 2026 +0000"
      },
      "message": "MdeModulePkg/UsbBusPei: Use dynamic buffer for USB configuration data\n\nUSB devices whose configuration descriptor TotalLength exceeds 1024\nbytes (e.g. IR cameras with large descriptor tables) previously hit\nan EFI_DEVICE_ERROR hard-limit and failed to enumerate in PEI.\n\nReplace the fixed array with a UINT8 * pointer and dynamically\nallocate the exact amount of memory required via\nPeiServicesAllocatePool() after the TotalLength is learned from the\ninitial 4-byte descriptor probe.\n\nSigned-off-by: Damien Chen \u003cdamien.chen@dell.com\u003e\n"
    },
    {
      "commit": "0adb357ab7bfe7e5f4df94ea5076f4f5eeb725be",
      "tree": "4b2c959a27e75516917e2c40bf7842e9a55b4046",
      "parents": [
        "a933771361883455245d42e8c77fe7a0ed7eb083"
      ],
      "author": {
        "name": "Michael Kubacki",
        "email": "michael.kubacki@microsoft.com",
        "time": "Mon Jul 13 11:19:50 2026 -0400"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 03:30:46 2026 +0000"
      },
      "message": "BREAKING-CHANGES.md: Add changes prior to process during 202608 dev period\n\nThis file was added as part of the new TianoCore EDK II breaking\nchanges process defined in the following RFC:\n\nhttps://github.com/tianocore/tianocore-wiki.github.io/blob/main/rfc/text/0001-rfc-process.md\n\nIn order to make the file accurate for the upcoming edk2-stable202605\nstable tag, this commit adds all breaking changes that have been\nmerged into the master branch since the last stable tag\n(edk2-stable202605).\n\nBecause these changes did not follow the full process, they do not\nhave some required information like tracking issues.\n\nSigned-off-by: Michael Kubacki \u003cmichael.kubacki@microsoft.com\u003e\n"
    },
    {
      "commit": "a933771361883455245d42e8c77fe7a0ed7eb083",
      "tree": "e587926ff71b7fd70102fd4f193e06384a74a755",
      "parents": [
        "f539e44fe447e980aa608111716f64030bbb3934"
      ],
      "author": {
        "name": "Jared Pan",
        "email": "jared.pan@dell.com",
        "time": "Tue Jun 23 17:01:17 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 02:14:02 2026 +0000"
      },
      "message": "UefiPayloadPkg/DxeHobLib: Add lazy initialization for gHobList\n\nThis change adds dynamic initialization of gHobList in GetHobList() to handle cases where library constructors are executed before DxeHobListLibConstructor.\n\nIssue:\nOn ARM platforms using ArmMmuBaseLib, the ArmMmuBaseLibConstructor calls GetFirstGuidHob() before xeHobListLibConstructor has initialized gHobList, causing an ASSERT.\n\nRoot Cause:\nArmMmuBaseLib\u0027s constructor uses HobLib functions, but UefiPayloadPkg\u0027s DxeHobLib assumes gHobList is already initialized by DxeHobListLib\u0027s constructor.\n\nSolution:\nAdd the same lazy initialization pattern already used in MdePkg/Library/DxeHobLib, which dynamically retrieves the HOB list from the System Configuration Table if gHobList is NULL.\n\nThis change:\n- Aligns behavior with MdePkg/Library/DxeHobLib\n- Has no impact on existing functionality\n- Improves robustness for ARM platforms\n\nSigned-off-by: Jared Pan \u003cjared.pan@dell.com\u003e\n"
    },
    {
      "commit": "f539e44fe447e980aa608111716f64030bbb3934",
      "tree": "a41ae8bc1a1dce72ee9e92734ed9b4b74b5e28ec",
      "parents": [
        "c5e42e79428ef736a975909bba042d9504c6c47e"
      ],
      "author": {
        "name": "Sunil V L",
        "email": "sunilvl@oss.qualcomm.com",
        "time": "Mon Jul 20 10:24:34 2026 +0530"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 00:18:25 2026 +0000"
      },
      "message": "DynamicTablesPkg/RiscV: Fix unused variables warnings\n\nEither use the variables or get rid of them.\n\nSigned-off-by: Sunil V L \u003csunilvl@oss.qualcomm.com\u003e\n"
    },
    {
      "commit": "c5e42e79428ef736a975909bba042d9504c6c47e",
      "tree": "712c004bbc709ea11b1ef8132c6778f6b44c896e",
      "parents": [
        "97665a4ef0ee378bbf3db5375188a6e413c479c4"
      ],
      "author": {
        "name": "Sunil V L",
        "email": "sunilvl@oss.qualcomm.com",
        "time": "Fri Apr 24 09:59:32 2026 +0530"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 00:18:25 2026 +0000"
      },
      "message": "DynamicTablesPkg/RiscV: Fix ISA string copy in RiscVIntcParser\n\nThe IsaStringInfoParser() routine currently sets the ISA string length\nto PropSize + 1 and used AsciiStrCpyS() with PropSize + 1 as the\ndestination size. This could lead to incorrect length handling and\npotential buffer issues.\n\nUpdate the code to:\n- Set IsaStringInfo.Length to PropSize (actual property size).\n- Use MAX_ISA_STRING_LENGTH as the destination buffer size when\n  copying the ISA string.\n- Check the return status of AsciiStrCpyS() and abort with an error\n  message if the copy fails.\n\nThis ensures safe string handling and prevents buffer overflow or\ntruncation when parsing ISA strings.\n\nReported-by: Zhenyu Liu \u003clzy00419@outlook.com\u003e\nSigned-off-by: Sunil V L \u003csunilvl@oss.qualcomm.com\u003e\n"
    },
    {
      "commit": "97665a4ef0ee378bbf3db5375188a6e413c479c4",
      "tree": "1a2487cf53d66de03a1b377f3397e81db8f19868",
      "parents": [
        "08dd5e921c26ad819bbf05a71b2f83bf5223f88c"
      ],
      "author": {
        "name": "Rebecca Cran",
        "email": "rebecca@bsdio.com",
        "time": "Wed Jun 24 18:08:13 2026 -0600"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 00:02:39 2026 +0000"
      },
      "message": "MdeModulePkg: Bump the default SMBIOS version to 3.8\n\nCommit 7f505d377b44aeee59f34b3d898f6caf0a0df538 in 2024 added the\nType 4 field SocketType. Bump the default SMBIOS version to 3.8\nin order for the larger table size to be valid.\n\nSigned-off-by: Rebecca Cran \u003crebecca@bsdio.com\u003e\n"
    },
    {
      "commit": "08dd5e921c26ad819bbf05a71b2f83bf5223f88c",
      "tree": "025310b66894167bca50f4c3d1d6142a937f9731",
      "parents": [
        "3fa842faf9cd3b7e323693102d68714ed95a3a40"
      ],
      "author": {
        "name": "Rebecca Cran",
        "email": "rebecca@bsdio.com",
        "time": "Wed Jun 24 18:05:24 2026 -0600"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Tue Jul 21 00:02:39 2026 +0000"
      },
      "message": "ArmPkg: Add SMBIOS Type 4 SocketType handling\n\nThe SMBIOS Type 4 field SocketType was added in commit\n7f505d377b44aeee59f34b3d898f6caf0a0df538 in 2024. This\ncaused the table size to be invalid when platforms specify\nversions of SMBIOS before 3.8.\n\nUpdate ProcessorSubClassDxe to handle fetching the string for the\nsocket type including calling into OemMiscLib to retrieve it.\n\nSigned-off-by: Rebecca Cran \u003crebecca@bsdio.com\u003e\n"
    },
    {
      "commit": "3fa842faf9cd3b7e323693102d68714ed95a3a40",
      "tree": "b66bd776b4510a3e72c76caec8169bc4fc64d859",
      "parents": [
        "0e13e105c625810b816dbed199f0f9520d6611a0"
      ],
      "author": {
        "name": "Sami Mujawar",
        "email": "sami.mujawar@arm.com",
        "time": "Mon Sep 30 12:45:45 2024 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 23:02:37 2026 +0000"
      },
      "message": "ArmVirtPkg: Add Crypto helper library for Boot Sync\n\nIntroduce a helper library that implements wrappers for the\ncryptographic functionality required by the Arm Boot Sync\nBlocks protocol implementation.\n\nThis library implements the following:\n - Key Exchange: ECDH key using the ECC Curve-P384\n - Key Derivation: SHA512 HMAC-based Extract-and-Expand HKDF\n - Encryption/Decryption: AEAD AES-GCM authenticated encryption\n                          and decryption\n\nAlso register the library class in ArmVirtPkg.dec, wire the\ninstance into the KvmTool guest firmware and update the CI YAML\nfile to add CryptoPkg/CryptoPkg.dec as an acceptable dependency.\n\nSigned-off-by: Sami Mujawar \u003csami.mujawar@arm.com\u003e\n"
    },
    {
      "commit": "0e13e105c625810b816dbed199f0f9520d6611a0",
      "tree": "8ffee8d487af5c4e269036ff485440d0c4153e21",
      "parents": [
        "b1029265b1459a4021df8e7495daf281df3344ef"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Wed Jul 15 23:44:05 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "BREAKING-CHANGES.md: Document GptLib library class addition\n\nPer the Breaking Change and Release Process RFC, a non-removal breaking\nchange must add an entry to BREAKING-CHANGES.md in the PR that introduces\nthe change.\n\nAdd the entry for the new GptLib library class dependency under\nedk2-stable202608, Source-Level Breaking Changes, Changes without Removal.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "b1029265b1459a4021df8e7495daf281df3344ef",
      "tree": "c0fabfcedf1ff00f1de28343c2fce597a5265b28",
      "parents": [
        "77585e50049839856baed37d120d4f705a2cf1d0"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Tue Jul 07 22:56:54 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "MdeModulePkg/GptLib: Add host-based unit tests for malformed GPT input\n\nExtend the GptLib host-based tests with negative cases that guard the\nsecurity hardening in PartitionValidGptTable(), PartitionCheckGptEntry()\nand PartitionRestoreGptTable() against future regressions. These tests\nexercise the shared parser, not the specific fix itself.\n\nThe new cases drive the parser with malformed GPT structures that an\nattacker may present: bad signature/revision, header-size boundaries,\nCRC corruption, MyLBA replay, zero/non-power-of-two entry sizes, LBA\nmultiplication overflow, out-of-range and overlapping entries, and\nrestore failure on write-protected media. The INF file header is\nupdated to note the added malformed coverage.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "77585e50049839856baed37d120d4f705a2cf1d0",
      "tree": "c5402da985718fccd116bc8202f29e83a81bf295",
      "parents": [
        "b65fd21591230233f53d2cfb22c42d4605054902"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Tue Jul 07 20:42:40 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "MdeModulePkg/GptLib: Add host-based unit tests for valid GPT behavior\n\nAdd the positive-path host-based tests for the shared GptLib parser\n(extracted as part of the parser security hardening), ensuring the\ntightened checks in PartitionValidGptTable(), PartitionCheckGptEntry()\nand PartitionRestoreGptTable() do not falsely reject well-formed GPTs.\n\nThe tests run against an in-memory mock disk and cover accepted\nprimary/backup headers, boundary but legal header/entry sizes, correct\nentry-status flagging on valid entries, and primary/backup restore\nround-trips.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "b65fd21591230233f53d2cfb22c42d4605054902",
      "tree": "0b2dcd44354396a8213fe927e705683851592597",
      "parents": [
        "070c9026f754b2c0b88445c8638eed0609673ccc"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Wed Jul 08 10:17:41 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "SecurityPkg/DxeTpmMeasureBootLib: Use GptLib parser\n\nTcgMeasureGptTable() reads the primary GPT header directly from LBA 1\nand validates it with field checks only: no header CRC32, no\npartition-entry-array CRC32 and no backup fallback. This is the same\ndivergence between the measured and the parsed partition table that\nCVE-2024-13745 reports against DxeTpm2MeasureBootLib, and the tracking\nissue lists both libraries as affected.\n\nMirror the DxeTpm2MeasureBootLib fix: select the GPT header to measure\nvia the shared GptLib parser. Validate the current primary GPT or, when\nit is invalid, validate the backup and the header at its AlternateLBA.\nDo not extend PCR[5] if no valid header can be selected.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "070c9026f754b2c0b88445c8638eed0609673ccc",
      "tree": "6500d263b09a2e19e5ee0b0b144598c117ef3d1c",
      "parents": [
        "45732edfffcabd8a96d396029e7269875da05407"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Thu Jun 25 15:07:29 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "MdeModulePkg/PartitionDxe: Abort on primary GPT recovery failure\n\nWhen the primary GPT is invalid, PartitionInstallGptChildHandles()\nrestores it from the backup and re-validates it. Both the restore write\nand the re-validation can fail (e.g. write-protected media, or a backup\nAlternateLBA pointing beyond the device), yet the existing code only logs\nthe failure and parses partitions from a known-invalid PrimaryHeader.\n\nAbort GPT processing when either the restore or the validation fails, so\npartitions are only ever parsed from a validated primary GPT. The backup\nrecovery branch is left unchanged, as the primary is already validated.\n\nA device with an unrecoverable primary GPT now installs no child handles\ninstead of using an invalid header. This keeps the table PartitionDxe uses\nin sync with the one DxeTpm2MeasureBootLib measures into PCR[5].\n\nRef: https://seclists.org/oss-sec/2026/q2/727\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "45732edfffcabd8a96d396029e7269875da05407",
      "tree": "75e1118f82e51fb477d1cd0b34953852c4292430",
      "parents": [
        "18407299295f14ea57b8aaa042a750757dfc2151"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Tue Jun 30 16:11:36 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "MdeModulePkg/GptLib: Validate GPT header fields before use\n\nPartitionValidGptTable() checked the signature, header CRC32, MyLBA, the\nentry-array CRC32 and the entry-array size overflow, but not several other\nUEFI-mandated GPT header constraints. DxeTpm2MeasureBootLib used to enforce\nthese via Tpm2SanitizeEfiPartitionTableHeader(); once it switched to this\nshared parser, the checks were lost on the path.\n\nAlso reject a header unless Header.Revision is GPT_HEADER_REVISION_V1,\nHeaderSize is at least the 92-byte minimum, NumberOfPartitionEntries is\nnon-zero, SizeOfPartitionEntry is 128 * 2^n, and PartitionEntryLBA *\nBlockSize cannot overflow. The \"entries lie before FirstUsableLBA\" rule is\nintentionally omitted, as this routine also validates the backup header\nwhose entry array follows the usable region.\n\nThis restores the validation the measurement path lost and, because GptLib\nis shared, tightens PartitionDxe the same way: malformed headers are now\nrejected and the parse and measure paths stay identical.\n\nRef: https://seclists.org/oss-sec/2026/q2/727\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "18407299295f14ea57b8aaa042a750757dfc2151",
      "tree": "08453fbd3b5e6c5fc74420788f219490b094bb1d",
      "parents": [
        "cb6dcca33737a736382279fda931c5cc4a3dc03d"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Wed Jul 01 11:15:17 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "UefiPayloadPkg: Resolve GptLib library class\n\nGptLib is a new library class consumed both by PartitionDxe (built by\nessentially every platform) and by DxeTpm2MeasureBootLib. Any platform DSC\nthat builds either module must resolve the GptLib library class, otherwise\nthe build fails with \"Instance of library class [GptLib] is not found\".\n\nResolve GptLib in UefiPayloadPkg/UefiPayloadPkg.dsc, which builds\nPartitionDxe.\n\nOut-of-tree platforms consuming either module need the same one-line\nresolution.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "cb6dcca33737a736382279fda931c5cc4a3dc03d",
      "tree": "1cd92e6fe17b9f7b13feed34ff6853ab6853d9d3",
      "parents": [
        "78c5050bb2480c87d810119205e6440a66a9189f"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Wed Jul 01 11:15:17 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "OvmfPkg: Resolve GptLib library class\n\nGptLib is a new library class consumed both by PartitionDxe (built by\nessentially every platform) and by DxeTpm2MeasureBootLib. Any platform DSC\nthat builds either module must resolve the GptLib library class, otherwise\nthe build fails with \"Instance of library class [GptLib] is not found\".\n\nResolve GptLib in each OVMF DSC. Every OVMF DSC builds PartitionDxe.\nIntelTdx, LoongArchVirt and RiscVVirt additionally link\nDxeTpm2MeasureBootLib directly; AmdSev, Bhyve, CloudHv, Microvm,\nOvmfPkgX64 and OvmfPkgIa32X64 pull it in through\nOvmfTpmSecurityStub.dsc.inc.\n\nOut-of-tree platforms consuming either module need the same one-line\nresolution.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "78c5050bb2480c87d810119205e6440a66a9189f",
      "tree": "baea13e9f0031d5d47fe4243dd2d75d63ab8e589",
      "parents": [
        "2b27f795ec11e8de70fc284732656f19e50d0a32"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Wed Jul 01 11:15:17 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "EmulatorPkg: Resolve GptLib library class\n\nGptLib is a new library class consumed both by PartitionDxe (built by\nessentially every platform) and by DxeTpm2MeasureBootLib. Any platform DSC\nthat builds either module must resolve the GptLib library class, otherwise\nthe build fails with \"Instance of library class [GptLib] is not found\".\n\nResolve GptLib in EmulatorPkg/EmulatorPkg.dsc, which builds PartitionDxe.\n\nOut-of-tree platforms consuming either module need the same one-line\nresolution.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "2b27f795ec11e8de70fc284732656f19e50d0a32",
      "tree": "8777f5121e4949189b86a99c741096a2552dd67b",
      "parents": [
        "7c12d4359abd47901f3aa9e1e8bb11c2aed8155e"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Wed Jul 01 11:15:17 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "ArmVirtPkg: Resolve GptLib library class\n\nGptLib is a new library class consumed both by PartitionDxe (built by\nessentially every platform) and by DxeTpm2MeasureBootLib. Any platform DSC\nthat builds either module must resolve the GptLib library class, otherwise\nthe build fails with \"Instance of library class [GptLib] is not found\".\n\nResolve GptLib once in ArmVirtPkg/ArmVirt.dsc.inc for the whole ArmVirt\nfamily, whose platforms build PartitionDxe and, for ArmVirtQemu, link\nDxeTpm2MeasureBootLib.\n\nOut-of-tree platforms consuming either module need the same one-line\nresolution.\n\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "7c12d4359abd47901f3aa9e1e8bb11c2aed8155e",
      "tree": "ba7479bb252c382d2b6db66eb2ab1bad3399882a",
      "parents": [
        "00a865d595591fef44dc9f23353f5c3d50152e04"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Thu Jun 25 14:54:20 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "SecurityPkg/DxeTpm2MeasureBootLib: Use GptLib parser\n\nThe previous commit introduced GptLib by extracting PartitionDxe\u0027s GPT\nparsing and validation code. It provides a shared implementation for edk2\ncomponents that need to parse and validate GPT data consistently.\n\nUpdate DxeTpm2MeasureBootLib to use GptLib when selecting on-disk GPT\ndata for measurement. Validate the current primary GPT or, when it is\ninvalid, validate the backup and the header at its AlternateLBA. Do not\nextend PCR[5] if no valid header can be selected. The measurement therefore\nuses GPT data read from disk at measurement time and applies the shared\nparser and validation logic.\n\nRef: https://seclists.org/oss-sec/2026/q2/727\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "00a865d595591fef44dc9f23353f5c3d50152e04",
      "tree": "4877fb5aa3182a816fb96caf680ac7436c8907a0",
      "parents": [
        "2938b830f61de6263f0e2dbf0f98fba63951a97b"
      ],
      "author": {
        "name": "Richard Lyu",
        "email": "richard.lyu@suse.com",
        "time": "Thu Jun 25 14:17:28 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 21:50:57 2026 +0000"
      },
      "message": "MdeModulePkg/GptLib: Extract shareable GPT parser into a library\n\nAs reported in CVE-2024-13745 via oss-sec, DxeTpm2MeasureBootLib can\nmeasure a partition table that differs from the one parsed by the\nPartitionDxe driver.\n\nTo address this, the more complete GPT parsing logic from PartitionDxe\nis extracted into a standalone GptLib library so it can be\nshared between PartitionDxe and DxeTpm2MeasureBootLib. This ensures\nthat the exact same partition table measured into PCR[5] is the one\nparsed and used by the system. PartitionDxe behavior is unchanged.\n\nRef: https://seclists.org/oss-sec/2026/q2/727\nSigned-off-by: Richard Lyu \u003crichard.lyu@suse.com\u003e\n"
    },
    {
      "commit": "2938b830f61de6263f0e2dbf0f98fba63951a97b",
      "tree": "af3922f42ebfef4054c3f22d93c8d53bc0829781",
      "parents": [
        "ed21313ac782d7a4591e0883b07baaf7f5f25986"
      ],
      "author": {
        "name": "Kun Qin",
        "email": "kuqin@microsoft.com",
        "time": "Fri Jun 19 10:07:20 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 19:13:15 2026 +0000"
      },
      "message": "SecurityPkg: Tpm over FFA: FFA_RUN command should use the returned ID\n\nAs the FFA function now returns the target ID properly, instead of\nhardcoding the FFA_RUN target ID being the TPM SP, we use the parsed\nID to issue the FFA_RUN.\n\nSigned-off-by: Kun Qin \u003ckun.qin@microsoft.com\u003e\n"
    },
    {
      "commit": "ed21313ac782d7a4591e0883b07baaf7f5f25986",
      "tree": "caa347a123451f5599ea2a186c3b6e2fb2e24970",
      "parents": [
        "89c6073683e18cd3271d7263b0e2712c88c7ec12"
      ],
      "author": {
        "name": "Kun Qin",
        "email": "kuqin@microsoft.com",
        "time": "Fri Jun 19 10:06:24 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 19:13:15 2026 +0000"
      },
      "message": "ArmPkg: MmCommunication: FFA run should use the returned ID\n\nAs the FFA function now returns the target ID properly, instead of\nhardcoding the FFA_RUN target ID being the STMM, we use the parsed\nID to issue the FFA_RUN.\n\nSigned-off-by: Kun Qin \u003ckun.qin@microsoft.com\u003e\n"
    },
    {
      "commit": "89c6073683e18cd3271d7263b0e2712c88c7ec12",
      "tree": "01640507806b3163e4c7c59fe3c256d06efd3502",
      "parents": [
        "6f2b09986b911d811e6df61420ecc0ca34e1e442"
      ],
      "author": {
        "name": "Kun Qin",
        "email": "kuqin@microsoft.com",
        "time": "Fri Jun 19 10:05:17 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 19:13:15 2026 +0000"
      },
      "message": "MdePkg,MdeModulePkg: ArmFfaLib: Expand to include first 4 registers\n\nThe direct message arguments stripped off the header, making the\nunderlying FF-A function interface to lose information when it comes to\ncertain return code, i.e. FFA_YIELD and FFA_INTERRUPT.\n\nThis change adds back the header field for this purpose so that the\ncallers can decide how to act on the corresponding return codes.\n\nIt then populates the header field for this purpose in FFA direct\nmessage functions so that the callers can decide how to act on the\ncorresponding return codes.\n\nContinuous-integration-options: PatchCheck.ignore-multi-package\n\nSigned-off-by: Kun Qin \u003ckun.qin@microsoft.com\u003e\n"
    },
    {
      "commit": "6f2b09986b911d811e6df61420ecc0ca34e1e442",
      "tree": "0882b4426c9a42332dca7ab5b04ae16fd6c14bb3",
      "parents": [
        "af41063d814bb93dc8e72f7c94c09b513b28870d"
      ],
      "author": {
        "name": "Chris Fernald",
        "email": "chfernal@microsoft.com",
        "time": "Wed Jun 17 12:10:13 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 19:13:15 2026 +0000"
      },
      "message": "ArmPkg: Handle FFA_BUSY response for MM communication\n\nMM communicate is used at runtime, and the secure partition it is\ncommunicating with may provide services access through other means then\nthe UEFI runtime services. As such, the MM communication library must not\nassume that the partition will be in the waiting state. Instead it must\nhandle the case where the partition is busy and retry the communication\nto some limit.\n\nSigned-off-by: Chris Fernald \u003cchfernal@microsoft.com\u003e\n"
    },
    {
      "commit": "af41063d814bb93dc8e72f7c94c09b513b28870d",
      "tree": "21035f6b35d52c64c783738cfab51290c4fa3efd",
      "parents": [
        "f4bbef1dd7c15bec5ac164802842d55d740c36fe"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Wed Jun 17 11:18:36 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 16:53:45 2026 +0000"
      },
      "message": "OvmfPkg: document DebugLevel runtime config\n\nAdd documentation for the DebugLevel runtime config that sets the\nverbosity of the serial debug log level on ArmVirt.\n\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "f4bbef1dd7c15bec5ac164802842d55d740c36fe",
      "tree": "2f3ff448f8335ed0a5ed924948f574f40950dbcd",
      "parents": [
        "84690e91a4b3d7e0d17d8ba9c32dc2289cce381a"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Wed Jun 17 13:48:39 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 16:53:45 2026 +0000"
      },
      "message": "ArmVirtPkg: introduce compile and runtime control of serial debug log level\n\nAdd a new PCD `PcdSerialDebugPrintErrorLevel` that overrides the verbosity\nset in `DebugPrintErrorLevel` for the serial port debug output and does\nnot affect memory debug logging.\n\nAccepted values are:\n- \"silent\": DEBUG_ERROR only\n- \"verbose\": use the `DebugPrintErrorLevel` value.\n- a hex bitmask (e.g. \"0x80000040\").\n\nThis PCD value can be overridden at runtime using the fw_cfg entry\n\"opt/org.tianocore/DebugLevel\" without rebuilding the firmware.\n\nThe runtime override takes priority over the compile-time one. When\nneither is set, the serial output uses the compiled-in\nPcdDebugPrintErrorLevel.\n\nSEC and PEI_CORE phases do not support this override because they run\nfrom flash, where global variables are not available. Supporting it\nwould require parsing the device tree on every debug write to locate\nthe fw_cfg device and read the DebugLevel value — unnecessary overhead\ngiven the low volume of logs in those phases.\n\nParseSerialDebugLevel() is duplicated as a STATIC function in Flash.c\nand PlatformPeiLib.c rather than shared via a header, because EDK2\ncoding style forbids function definitions in headers. A dedicated\nlibrary class would be excessive for a small helper with only two\nconsumers.\n\nExample QEMU command line:\n\n  -fw_cfg name\u003dopt/org.tianocore/DebugLevel,string\u003dsilent\n  -fw_cfg name\u003dopt/org.tianocore/DebugLevel,string\u003dverbose\n  -fw_cfg name\u003dopt/org.tianocore/DebugLevel,string\u003d0x80000000\n\nSuggested-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "84690e91a4b3d7e0d17d8ba9c32dc2289cce381a",
      "tree": "78c06e64cee6e1a842b712d9d06c63d36bf4bef0",
      "parents": [
        "6c6d0a72c25ee4a43179d9d25b938eaa1381f8c8"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Wed Jun 17 12:56:42 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 16:53:45 2026 +0000"
      },
      "message": "OvmfPkg/QemuFwCfgSimpleParserLib: export QemuFwCfgGetAsString()\n\nMake QemuFwCfgGetAsString() a public EFIAPI entry point instead of\na STATIC helper, so it can be used by consumers that need the raw\nfw_cfg string value rather than a parsed boolean or integer.\n\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "6c6d0a72c25ee4a43179d9d25b938eaa1381f8c8",
      "tree": "e916775ac7b97c4ec52c849ab246a9b3359ec2b7",
      "parents": [
        "9e3e68218cf60b3689a6481f27e6511ff06aaf6f"
      ],
      "author": {
        "name": "FangSheng Huang",
        "email": "FangSheng.Huang@amd.com",
        "time": "Tue Jun 30 16:22:25 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 13:58:25 2026 +0000"
      },
      "message": "OvmfPkg/PlatformPei: retain SoftReserved memory under SEV-SNP\n\nSoft Reserved (Specific Purpose Memory) regions carry the\nEFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE attribute, which the OS sees as\nEFI_MEMORY_SP (E820 Soft Reserved).  Under SEV-SNP this does not reach the\nguest: AmdSevSnpInitialize() changes every EFI_RESOURCE_SYSTEM_MEMORY HOB\nabove 4GB to EFI_RESOURCE_MEMORY_UNACCEPTED, and AcceptAllMemory() later\nre-adds the region as plain system memory without EFI_MEMORY_SP, so the\nguest sees ordinary RAM instead of Soft Reserved.\n\nExclude SPECIAL_PURPOSE regions from the unaccepted conversion so they keep\nthe EFI_RESOURCE_SYSTEM_MEMORY type and are pre-validated in place, like\nsub-4GB memory.\n\nSigned-off-by: FangSheng Huang \u003cFangSheng.Huang@amd.com\u003e\n"
    },
    {
      "commit": "9e3e68218cf60b3689a6481f27e6511ff06aaf6f",
      "tree": "dbc0069314bfc16786b7546264b274342d7d313b",
      "parents": [
        "efdbf3c355c9e329bf57fec75744b68f12c1ee81"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Thu Jun 25 17:02:31 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioInputDxe: Add virtio tablet support\n\nVirtio tablet devices report absolute coordinates (EV_ABS) and button\ninputs. Add VirtioTablet.c implementing tablet capability probing,\nEFI_ABSOLUTE_POINTER_PROTOCOL implementation and event handler that\nconverts VIRTIO_INPUT_EVENT into EFI_ABSOLUTE_POINTER_STATE.\n\nThe axis ranges advertised by EFI_ABSOLUTE_POINTER_MODE are read from\nthe device\u0027s abs_info for ABS_X and ABS_Y.\n\nThe shared event dispatcher in VirtioInput.c now routes EV_ABS events\nand EV_KEY codes above MAX_KEYBOARD_CODE to the tablet handler.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "efdbf3c355c9e329bf57fec75744b68f12c1ee81",
      "tree": "e272d3f1ef0492a9459759d5f7ebb36018a19d26",
      "parents": [
        "fd63e805088df7655f038a03a28f861379f02376"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Thu Jun 25 16:16:39 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioInputDxe: Add virtio mouse support\n\nVirtio mouse devices report relative movements (EV_REL) and button\ninputs. Add VirtioMouse.c implementing mouse capability probing,\nEFI_SIMPLE_POINTER_PROTOCOL implementation and event handler that\nconverts VIRTIO_INPUT_EVENT into EFI_SIMPLE_POINTER_STATE.\n\nThe shared event dispatcher in VirtioInput.c now routes EV_REL events\nand EV_KEY codes above MAX_KEYBOARD_CODE to the mouse handler, while\nkeycodes in [0, MAX_KEYBOARD_CODE] still go to the keyboard. A device\nis now accepted when it provides a keyboard or a mouse, and the\nEFI_SIMPLE_POINTER_PROTOCOL is installed on mouse-capable devices.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "fd63e805088df7655f038a03a28f861379f02376",
      "tree": "9227703f5100a7d44bcd0a147e1e4a220795405a",
      "parents": [
        "d0c42935e22c8678aa15a79e0fe80294a115fcd4"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Wed Jun 24 17:08:09 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioInputDxe: Split keyboard logic into VirtioKeyboard.c\n\nMove all keyboard-specific code including probing, initialization,\nkeycode translation and Simple Text Input (Ex) protocol implementation\ninto new VirtioKeyboard.c. VirtioInput.c retains only the shared virtio\ntransport, the input poll timer and the event dispatcher.\n\nThis is also the groundwork for the mouse and tablet support added in\nlater commits.\n\nNo functional change.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "d0c42935e22c8678aa15a79e0fe80294a115fcd4",
      "tree": "c0d31efd4da4e3496e69bddc6f617f90a5a732b2",
      "parents": [
        "0fc04cff3b211b979cb3b5f1602d1c6c5aad3bfe"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Wed Jun 24 15:13:29 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioInputDxe: Add keyboard capability detection\n\nCurrent driver produces the EFI_SIMPLE_TEXT_INPUT[_EX]_PROTOCOL\ninterfaces on every virtio-input device it binds. A virtio-input\ndevice may however be a pointer device (mouse or tablet) that reports\nno keyboard keys, in which case the keyboard protocols should not be\ninstalled.\n\nAdd VirtioInputHasKeyboard() to check whether the virtio-input device\nimplements a keyboard by scanning the EV_KEY capability bitmap to see\nif any keycodes between [0, MAX_KEYBOARD_CODE] is supported. A helper\nfunction VirtioInputConfigQuerySize() is also added for fetching the\nsize of a virtio-input configuration sub-selection.\n\nVirtioInputInit() now stores the result in Dev-\u003eHasKeyboard and fails\nwith EFI_UNSUPPORTED when no keyboard is present.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "0fc04cff3b211b979cb3b5f1602d1c6c5aad3bfe",
      "tree": "d447a93595a21eaf87d164508f45ff06b62bd5f6",
      "parents": [
        "ae92eb78f6a45294a1c3dc637f69745e2f969bab"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Tue Jun 23 21:56:28 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioInputDxe: Fix Reset() function to only flush input state\n\nAccording to UEFI specification, \"the implementation of Reset is\nrequired to clear the contents of any input queues resident in memory\nused for buffering keystroke data and put the input stream in a known\nempty state\". So it should only reset the internal status of keyboard\ndriver, not the driver itself.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "ae92eb78f6a45294a1c3dc637f69745e2f969bab",
      "tree": "fe061b2162bc27798f29b7e4db7f16d536489b84",
      "parents": [
        "afe4360dd27a9dd27db561e6df5f3d328cfc094e"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Tue Jun 23 20:53:51 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/IndustryStandard: Add type definitions for virtio input device\n\nAdd IndustryStandard/VirtioInput.h for virtio input device type\ndefinitions defined in virtio 1.1 specification.\nhttps://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-3390008\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "afe4360dd27a9dd27db561e6df5f3d328cfc094e",
      "tree": "a3d5437d6fb23b45ca56c7e39a20ebc008185144",
      "parents": [
        "7cc22c4b5baff57ef9f9b1ff3768cac193c8d6f7"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Tue Jun 23 13:02:57 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg, ArmVirtPkg: Rename VirtioKeyboardDxe to VirtioInputDxe\n\nThe virtio input device can be used to create virtual human interface\ndevices such as mice and tablets, not just keyboards. Rename\nVirtioKeyboardDxe to VirtioInputDxe for adding virtio-mouse and\nvirtio-tablet support in following commits.\n\nNo functional change.\n\nContinuous-integration-options: PatchCheck.ignore-multi-package\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "7cc22c4b5baff57ef9f9b1ff3768cac193c8d6f7",
      "tree": "dd2a51fdf65a6e6c7790817eb96682964ff216bd",
      "parents": [
        "a1b3a6bd1fec6d37e3d9866e818510b5687e6659"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Tue Jun 23 23:26:30 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioKeyboardDxe: Declare internal functions as STATIC\n\nThe SimpleTextIn(Ex) protocol callbacks and IsKeyRegistered() are only\nused within VirtioKeyboard.c. Declare them STATIC and remove the\ndeclarations in VirtioKeyboard.h.\n\nNo functional change.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "a1b3a6bd1fec6d37e3d9866e818510b5687e6659",
      "tree": "6c5a2f4aee2c8b8659a2544138859d4b8acc5873",
      "parents": [
        "ff355e4bddf2a85b428dfbef8939330cc685a9fc"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Thu Jun 25 15:28:52 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioKeyboardDxe: Simplify WaitForKey event handling\n\nBoth WaitForKey and WaitForKeyEx event handler runs the same logic in\nVirtioKeyboardWaitForKey(). Pass the VIRTIO_KBD_DEV pointer directly\nas the event notify context so one function serves both events.\n\nAlso drop the erroneous assignment of VirtioKeyboardWaitForKey() to\nDev-\u003eTxt.WaitForKey, which stored a function pointer into the event\nhandle field and was immediately overwritten by CreateEvent().\n\nNo functional change.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "ff355e4bddf2a85b428dfbef8939330cc685a9fc",
      "tree": "5390f37c9880d33d753c5d4787cc6f07cdbc249c",
      "parents": [
        "0a74b3a4de0ee98e6a5ad73d328c86bea04bada8"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Tue Jun 23 23:11:51 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioKeyboardDxe: Fix typo in IsKeyRegistered()\n\nRegsiter -\u003e Register\n\nNo functional change.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "0a74b3a4de0ee98e6a5ad73d328c86bea04bada8",
      "tree": "a6e91093a3a264a8146666692c97e0255cd05928",
      "parents": [
        "2c6e9e13d692f2581509ecf587b992687afcf533"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Tue Jun 23 23:06:09 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioKeyboardDxe: Drop unused functions and variables\n\nVirtioKeyboardRingHasBuffer() and VIRTIO_KBD_DEV.KeyNotifyTimer are\ndefined but never called, drop them.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "2c6e9e13d692f2581509ecf587b992687afcf533",
      "tree": "412e852dc47a1a6a8d91b9a6ca4c3358cd99c70f",
      "parents": [
        "a507ccdc6a3d33d2a32360cd44e07d2451797b3f"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Wed Jun 24 15:38:58 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioKeyboardDxe: Close WaitForKey(Ex) events in Uninit()\n\nVirtioKeyboardInit() creates Txt.WaitForKey, TxtEx.WaitForKeyEx and\nKeyReadTimer events, but VirtioKeyboardUninit() currently only closes\nKeyReadTimer. Close the other two events to fix the leak.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "a507ccdc6a3d33d2a32360cd44e07d2451797b3f",
      "tree": "f21ea76b5e9c5959d23f092d49947f2c656b10b6",
      "parents": [
        "be0513a59a96411db919ca5e69bcc1363e72aaa7"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Tue Jun 23 20:36:55 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioKeyboardDxe: Fix RingMap check in UninitRing\n\nUnmapSharedBuffer() should be called on a valid mapping. Fix the\ninverted condition.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "be0513a59a96411db919ca5e69bcc1363e72aaa7",
      "tree": "07e7eec88a9bd52239675049255f312a3a5d0ad0",
      "parents": [
        "1506c6da7bb6820beb1a1170909f181b69d63c8a"
      ],
      "author": {
        "name": "Jiaqing Zhao",
        "email": "Zhao.Jiaqing@amd.com",
        "time": "Thu Jun 25 17:34:40 2026 +0800"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:43:36 2026 +0000"
      },
      "message": "OvmfPkg/VirtioKeyboardDxe: Fix protocol uninstall in BindingStop\n\nUninstallMultipleProtocolInterfaces() takes the handle by value rather\nthan pointer.\n\nSigned-off-by: Jiaqing Zhao \u003cZhao.Jiaqing@amd.com\u003e\n"
    },
    {
      "commit": "1506c6da7bb6820beb1a1170909f181b69d63c8a",
      "tree": "b986e11b943ec064867d174354fb653984202694",
      "parents": [
        "99942e353274d6a4641c71e21399cd4ab0feca11"
      ],
      "author": {
        "name": "Jakov Zauzolkov",
        "email": "jakov.zauzolkov@aisec.fraunhofer.de",
        "time": "Tue Jun 30 09:47:21 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 12:18:38 2026 +0000"
      },
      "message": "OvmfPkg: Replace BaseAcpiTimerLib with BaseRomAcpiTimerLib in PEI\n\nThe BaseAcpiTimerLib instance contains a static global variable,\n\u0027mAcpiTimerIoAddr\u0027, that caches the ACPI timer IO base address. As this\nlibrary executes during PEI phase prior to the PEIFV measurement into\nPCR0, the value of the variable is included into the measurement. This\ncauses the PEIFV binary footprint to change, preventing a precomputation\nof the expected value needed for remote attestation.\n\nFix this by using the BaseRomAcpiTimerLib in the PEI phase instead of\nthe BaseAcpiTimerLib. This library dynamically computes the required\naddress and does not introduce global variables, keeping the PEIFV\nbinary unchanged.\n\nCo-authored-by: Simon Ott \u003csimon.ott@aisec.fraunhofer.de\u003e\nSigned-off-by: Jakov Zauzolkov \u003cjakov.zauzolkov@aisec.fraunhofer.de\u003e\n"
    },
    {
      "commit": "99942e353274d6a4641c71e21399cd4ab0feca11",
      "tree": "a4f3cd34344b6df3a3851409dec2dc93cf7bc453",
      "parents": [
        "5dc785e7f664af82f06e9d450df398618edd0396"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Tue Jun 30 13:28:35 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 11:57:09 2026 +0000"
      },
      "message": "OvmfPkg/VirtMmCommunicationDxe: Fix NULL dereference of optional CommSize\n\nVirtMmCommunication2Communicate() dereferences *CommSize in a DEBUG\nstatement before checking whether CommSize is NULL.  CommSize is an\noptional parameter, so callers may legitimately pass NULL, causing a\nNULL pointer dereference in debug builds.\n\nGuard the dereference with a ternary so the DEBUG prints 0 when\nCommSize is NULL.\n\nFixes: 9dd47eeea1 (\"OvmfPkg: add new VirtMmCommunicationDxe driver\")\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "5dc785e7f664af82f06e9d450df398618edd0396",
      "tree": "7f847e9c7e2d2b2ebc4be7d0df2eab1915d641a0",
      "parents": [
        "048e36d5af8c536087f4f821a8db1f5340441181"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Tue Jun 30 12:58:12 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 11:57:09 2026 +0000"
      },
      "message": "OvmfPkg/VirtMmCommunicationDxe: Fix unchecked VirtMmGetProp return values\n\nVirtMmHwFind() calls VirtMmGetProp() twice but does not assign the\nreturn value to Status.  The subsequent EFI_ERROR(Status) checks test\nthe stale Status from LocateProtocol(), which always succeeds at that\npoint, so FDT lookup failures are silently ignored and the function\nproceeds with uninitialised Ranges/Reg pointers.\n\nAssign both VirtMmGetProp() return values to Status so the error\nchecks work as intended.\n\nFixes: 9dd47eeea1 (\"OvmfPkg: add new VirtMmCommunicationDxe driver\")\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "048e36d5af8c536087f4f821a8db1f5340441181",
      "tree": "95bb72602bc18d6fa33fdfce2bca6dcf6fa1d338",
      "parents": [
        "264f812b70c8941e449740dbc1ae528620089f78"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Tue Jun 30 11:33:58 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 11:57:09 2026 +0000"
      },
      "message": "OvmfPkg/VirtMmCommunicationDxe: Remove unused QemuX64.c\n\nQemuX64.c implemented PIO-based MM communication for the uefi-vars-isa\ndevice. It was already commented out in VirtMmCommunication.inf and is\nnot referenced by any build file. Remove the dead code.\n\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\n"
    },
    {
      "commit": "264f812b70c8941e449740dbc1ae528620089f78",
      "tree": "131b5657105041544a4f3294cbe1fb55705982f0",
      "parents": [
        "dc52b0c75bd299ea3bc4c6273d3dfeb26253c001"
      ],
      "author": {
        "name": "Michael G.A. Holland",
        "email": "michael.holland@intel.com",
        "time": "Fri Jul 17 11:00:08 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 11:34:40 2026 +0000"
      },
      "message": "CryptoPkg/BaseCryptLib: ML-DSA updates\n\nInclude validation check for Context and ContextSize in signature\nfunction.\nUpdated ReadMe to show ML-DSA support\n\nSigned-off-by: Michael G.A. Holland \u003cmichael.holland@intel.com\u003e\n"
    },
    {
      "commit": "dc52b0c75bd299ea3bc4c6273d3dfeb26253c001",
      "tree": "2cc5ae29629e2e7a0330b626fcf6aa1ebce30073",
      "parents": [
        "5309cdb92c5552e64fce7648ec15d0ab497b1161"
      ],
      "author": {
        "name": "Shubham Kumar",
        "email": "kumarshubha@microsoft.com",
        "time": "Wed Jul 01 16:28:59 2026 +0530"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 05:44:52 2026 +0000"
      },
      "message": "FmpDevicePkg/FmpDxe: Reduce NV variable reads for FMP state\n\nIn PopulateDescriptor(), each FMP device previously called\nGetFmpControllerState() multiple times through individual getter\nfunctions (GetVersionFromVariable, GetLowestSupportedVersionFromVariable,\netc.), each performing a separate GetVariable() call to read the same\nFmpControllerState NV variable.\n\nRename the getter functions to *FromFmpControllerState and simplify\nthem to pure field extractors that take a required FMP_CONTROLLER_STATE\npointer. Each getter extracts the field value if the state is non-NULL\nand the field is valid, returning a default otherwise. No getter calls\nGetFmpControllerState() internally.\n\nPopulateDescriptor() now calls GetFmpControllerState() once and passes\nthe result to all getters, then frees it after the last use. This\neliminates redundant NV reads when the variable exists and avoids\nrepeated failed reads and error messages when the variable does not\nexist.\n\nSigned-off-by: Shubham Kumar \u003ckumarshubha@microsoft.com\u003e\n"
    },
    {
      "commit": "5309cdb92c5552e64fce7648ec15d0ab497b1161",
      "tree": "60f2f12a73345b9e6290e7bd1b47a21be449f3db",
      "parents": [
        "8f5a348a9d0502b041f76ab6cbb0d2b9d8599c24"
      ],
      "author": {
        "name": "Michael G.A. Holland",
        "email": "michael.holland@intel.com",
        "time": "Fri Jul 17 10:39:18 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Mon Jul 20 03:23:22 2026 +0000"
      },
      "message": "CryptoPkg/BaseCryptLib: EdDsa updates\n\nInclude validation checks for Context and ContextSize in\nsign and verify functions.\nReturned FALSE for EdDsaGeneratePubKey.\nUpdated ReadMe to show EdDsa support\n\nSigned-off-by: Michael G.A. Holland \u003cmichael.holland@intel.com\u003e\n"
    },
    {
      "commit": "8f5a348a9d0502b041f76ab6cbb0d2b9d8599c24",
      "tree": "6cd2efcdb8eace79878168da0ed4b5f8b682673a",
      "parents": [
        "21b358b81d8fd9d9b9a09a344bace41c13017d37"
      ],
      "author": {
        "name": "Kun Qin",
        "email": "kuqin@microsoft.com",
        "time": "Mon Jul 13 17:44:44 2026 -0700"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Sat Jul 18 15:04:29 2026 +0000"
      },
      "message": "MdePkg: BaseMemoryLib: Add memory barrier to SetMem\n\nThe implementation adds a toolchain-specific compiler barriers to\ndiscourage reordering under aggressive optimization around memory\nsetting operations.\n\nSigned-off-by: Kun Qin \u003ckun.qin@microsoft.com\u003e\n"
    },
    {
      "commit": "21b358b81d8fd9d9b9a09a344bace41c13017d37",
      "tree": "f2b6b05f63aba6613048c741bd8ef288c520dcad",
      "parents": [
        "a59064933f698e7c192063d04157c302d3efc257"
      ],
      "author": {
        "name": "Vincent Gatine",
        "email": "vincent.gatine@sipearl.com",
        "time": "Wed Jul 08 11:33:26 2026 +0200"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 17 22:58:58 2026 +0000"
      },
      "message": "ShellPkg/Pci: Restore BAR informations\n\nRestore informations lost in the pci shell command.\n\nsbsa-ref Host Bridge:\n\n```\n Cache Line Size(C): 00                 Latency Timer(D): 00\n Header Type(0E):    00, Single function, PCI device\n Class: Bridge Device - Host/PCI bridge -\n+Base Address Registers(10):\n+  (None)\n+Expansion ROM Disabled(30)\n+\n+Cardbus CIS ptr(28):   00000000\n+Sub VendorID(2C):          1AF4      Subsystem ID(2E):      1100\n+Capabilities Ptr(34):        00\n+Interrupt Line(3C):          FF      Interrupt Pin(3D):       00\n+Min_Gnt(3E):                 00      Max_Lat(3F):             00\n```\nsbsa-ref Ethernet Controller:\n\n```\n Cache Line Size(C): 00                 Latency Timer(D): 00\n Header Type(0E):    00, Single function, PCI device\n Class: Network Controller - Ethernet controller -\n+Base Address Registers(10):\n+     Start_Address  Type  Space    Prefetchable?     Size             Limit\n+  --------------------------------------------------------------------------\n+          81060000  Mem   32 bits  No             00020000          8107FFFF\n+          81040000  Mem   32 bits  No             00020000          8105FFFF\n+              0000  I/O                               0020              001F\n+          81080000  Mem   32 bits  No             00004000          81083FFF\n+  --------------------------------------------------------------------------\n+Expansion ROM Disabled(30)\n+\n+Cardbus CIS ptr(28):   00000000\n+Sub VendorID(2C):          8086      Subsystem ID(2E):      0000\n+Capabilities Ptr(34):        C8\n+Interrupt Line(3C):          FF      Interrupt Pin(3D):       01\n+Min_Gnt(3E):                 00      Max_Lat(3F):             00\n\n Pci Express device capability structure:\n CapID( 0):          10            NextCap Ptr( 1):    A0\n```\n\nSigned-off-by: Vincent Gatine \u003cvincent.gatine@sipearl.com\u003e\n"
    },
    {
      "commit": "a59064933f698e7c192063d04157c302d3efc257",
      "tree": "c7b6cf7e2a1921dcb5009ab6c729329bb7dbdb46",
      "parents": [
        "74b8bfd953a7458a5452bef81a390e964271bc27"
      ],
      "author": {
        "name": "Michael Kubacki",
        "email": "michael.kubacki@microsoft.com",
        "time": "Thu Jun 11 15:27:01 2026 -0400"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 17 21:50:16 2026 +0000"
      },
      "message": "BaseTools/Trim.py: Strip \"#pragma once\" from inlined ASL content\n\nWhen Trim processes an ASL file (`--asl-file`), it textually inlines\nthe body of every `Include()`\u0027d file directly into the constructed\npreprocessor input, once per include site.\n\nIts has duplicate protection in the form of a circular-include stack\n(`gIncludedAslFile`), that prevents A-\u003eB-\u003eA cycles. But, as far as\nthe script is concerned, each `Include()` is a unique include site.\n\nVarious combinations of includes and file types are possible and\nhandled slightly differently.\n\nStarting with file types as defined in\nBaseTools\\Conf\\build_rule.template:\n\n- `.aslc`, `.act` files fall under `Acpi-Table-Code-File` and are\n  compiled, linked, and processed by genfw.\n- `.asl`, `.Asl`, and `.ASL` files fall in `Acpi-Source-Language-File`\n  and are processed by Trim:\n  1. `Trim --asl-file` to produce a single combined .i file with\n     includes inlined.\n  2. `ASLPP` (ASL preprocessor, a C preprocessor) on the output of\n     Trim to produce a .iii file with all macros expanded and\n     conditional branches resolved. AutoGen.h is also included and\n     processed here to resolve fixed PCD values if needed.\n  3. `Trim --source-code` which takes the pre-processed .iii file and\n     produces a .iiii file with content like linemarkers cleaned up.\n  4. The ACPI compiler compiles the .iiii file to produce AML bytecode\n     in a .aml file.\n\nBecause the `.aslc`/`.act` files are directly passed to normal C\nprocessing tools, they are not part of the Trim change made in this\ncommit and the remainder of this message focuses on the ACPI Source\nLanguage File case.\n\nASL files can use either an ASL `Include()` directive or a C-style\n`#include` directive. In addition, different file types may be\nincluded such as a `.asl` file or a `.h` file.\n\n`Trim` handles these cases differently:\n\n- For ASL `Include()` directives, `Trim` inlines the content of the\n  included file directly into the output at the include site. This is\n  done for all included ASL files regardless of their extension. The\n  inlining is purely textual and does not attempt to resolve or\n  preserve any preprocessor directives such as `#pragma once` or\n  include guards.\n- For C-style `#include` directives, `Trim` checks the file extension\n  of the included file. If the file is an ASL file (`.asl` or `.asi`),\n  `Trim` treats the file the same as the `Include()` case. Otherwise,\n  `Trim` passes the directive through verbatim to the output, allowing\n  the downstream C preprocessor (`ASLPP`) to handle it according to\n  normal C preprocessor rules.\n\nThis creates a situtation in which the resulting `.i` might include:\n\n- Inlined file content (from a `.asl` or `.h` file) depending on the\n  include type and file extension.\n- Verbatim `#include` directives for non-ASL files which will be\n  processed by the C preprocessor.\n\nFocusing on the \"inlined\" case, historically `.h` files would have\ntraditional C include guards (`#ifndef`/`#define`, `#endif`). However,\nfiles might also include `#pragma once` as a guard.\n\nIn that case, the inlined content of the `.i` file could contain\nmultiple `#pragma once` directives, one per include site. When the\nC preprocessor (`ASLPP`) processes the `.i` file, it sees multiple\n`#pragma once` directives in what it considers the main file, and\ncould emit a warning like the following from gcc:\n\n  warning: \u0027#pragma once\u0027 in main file [-Wpragma-once-outside-header]\n\nThe remainder of this commit message describes the change made to\naddress this warning.\n\nThis change strips \"#pragma once\" lines on the ASL content path in\n`DoInclude()` in `Trim.py` so the directive is removed before it\nreaches the C preprocessor.\n\n  - \"#include\" directives for non-ASL files are still passed through\n    verbatim for the C preprocessor to resolve where the contents of\n    those .h files might contain \"#pragma once\" or traditional guards.\n  - Traditional include guards are untouched and continue to behave as\n    before where multiple include sites might inline the same content\n    in the .i file before reaching the C preprocessor.\n\nThe change:\n\nIn the case that a file is inlined with a `#pragma once` directive,\nthe directive is stripped from the inlined content which prevents the\nwarning.\n\nThis is considered acceptable because it only removes the\n`#pragma once` directive from the inlined content for these specific\ncases. So, the `.i` file might contain multiple inlined copies of the\nsame header content (like always in this inline case) but without the\n`#pragma once` directives. Because actual C content was already not\nprocessed or trimmed out (e.g. `typedef struct`) duplicate content is\nnot considered to be a problem (`#define` multiple times is not a\nproblem for the C preprocessor).\n\nSigned-off-by: Michael Kubacki \u003cmichael.kubacki@microsoft.com\u003e\n"
    },
    {
      "commit": "74b8bfd953a7458a5452bef81a390e964271bc27",
      "tree": "43363a24df1b8308b6b06e2181582baa4f77cb6e",
      "parents": [
        "9b583dfc4b7359f6a6ee1e1e327e1bfd12948467"
      ],
      "author": {
        "name": "VarshitPandya",
        "email": "varshit.pandya@arm.com",
        "time": "Wed Jul 15 10:17:43 2026 +0100"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 17 18:31:43 2026 +0000"
      },
      "message": "MdeModulePkg: Add definition for 64 bit ACPI GAS\n\nAdd a macro definition for defining ACPI Generic Address Space for QWORD\nmemory.\n\nSigned-off-by: Varshit Pandya \u003cvarshit.pandya@arm.com\u003e\n"
    },
    {
      "commit": "9b583dfc4b7359f6a6ee1e1e327e1bfd12948467",
      "tree": "80529cab1f80dc59f9bcb83336b6356a81de7069",
      "parents": [
        "7ac27b187e6063bef2023498da80396ff31467f6"
      ],
      "author": {
        "name": "Girish Mahadevan",
        "email": "gmahadevan@nvidia.com",
        "time": "Mon Apr 20 21:50:31 2026 +0000"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 17 11:12:25 2026 +0000"
      },
      "message": "DynamicTablesPkg: Smbios System Information (Type 1)\n\nGenerator for Smbios System Information table (Type 1).\n\nCo-authored-by: Dat Mach \u003cdmach@nvidia.com\u003e\nSigned-off-by: Girish Mahadevan \u003cgmahadevan@nvidia.com\u003e\n"
    },
    {
      "commit": "7ac27b187e6063bef2023498da80396ff31467f6",
      "tree": "0aabf0d2cb8a0fdb60e653d51dece1df71cd7fad",
      "parents": [
        "2fc0e060efc25a2b9dd24bfc5844bf18e33b999e"
      ],
      "author": {
        "name": "Girish Mahadevan",
        "email": "gmahadevan@nvidia.com",
        "time": "Mon Apr 20 21:50:31 2026 +0000"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 17 11:12:25 2026 +0000"
      },
      "message": "DynamicTablesPkg: Add System Information CM object and parser\n\nAdd EArchCommonObjSystemInfo to ArchCommonNameSpaceObjects.h and a\ncorresponding parser entry in ConfigurationManagerObjectParser.c.\n\nSigned-off-by: Girish Mahadevan \u003cgmahadevan@nvidia.com\u003e\n"
    },
    {
      "commit": "2fc0e060efc25a2b9dd24bfc5844bf18e33b999e",
      "tree": "2af0fac31130d5425082e4a825c0431f8f6ac66c",
      "parents": [
        "9fcb50d56cbec9e715024b5700cbbb318dcda742"
      ],
      "author": {
        "name": "kowsiks",
        "email": "kowsiks@ami.com",
        "time": "Tue Mar 31 17:11:36 2026 +0530"
      },
      "committer": {
        "name": "mergify[bot]",
        "email": "37929162+mergify[bot]@users.noreply.github.com",
        "time": "Fri Jul 17 10:54:11 2026 +0000"
      },
      "message": "BaseTools/build.py: Use full source file path for dependency generation\n\nDuring Silent build,NMAKE suppresses the command echo entirely.\nAs a result, the only output in ProcOut is the\nMSVC compiler’s output lines.\nWithout the command echo, there is no full path in the output to\nidentify which source file is currently being compiled.\nFor unique basenames this is not an issue, but for namesake files\n(for example, AmdSev.c located in different directories),\nit is impossible to determine which file’s includes are being listed.\n\nThis change improves dependency generation for MSVC builds by introducing\nexplicit handling for source files with duplicate basenames\n(namesake sources). A new variable current_source_abs is added to\nconsistently track the resolved absolute path of the active source file\ninstead of repeatedly recomputing it from SourceFileAbsPathMap.\nTo correctly resolve namesake files in silent builds\n(where compiler commands are not echoed), a namesake_queue is introduced,\nwhich preserves source ordering and sequentially maps basename occurrences\nto their corresponding full paths.\nAdditionally, a cc_cmd_in_output flag is implemented to detect the presence\nof compiler command lines in the output stream; when present,\nsource paths are derived directly from command-line arguments, otherwise\nthe queue-based resolution is used. This ensures correct mapping of\nbasenames to absolute paths across the silent builds, fixing incorrect\ndependency generation when multiple source files share the same name.\n\nSigned-off-by: Kowsik S \u003ckowsiks@ami.com\u003e\n"
    }
  ],
  "next": "9fcb50d56cbec9e715024b5700cbbb318dcda742"
}
