)]}'
{
  "log": [
    {
      "commit": "c37509d3ec166b260130e42349629205fbd89867",
      "tree": "31372acf806f8372be346ea4791d644ef7423c83",
      "parents": [
        "318b9dd61681f39e181338bee3873a1a5f71a65e"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Wed Jul 15 04:47:26 2026 +0000"
      },
      "committer": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Wed Sep 16 13:09:26 2026 +0000"
      },
      "message": "pldmtool: avoid map copy in FRU typeToString helper\n\nUse const reference for typeToString map parameter in FRU decode\nformatting to avoid an unnecessary map copy on each call.\n\nReplace exception-based lookup (at + try/catch) with find-based\nlookup for the expected fallback path when a key is absent.\n\nNo functional change intended.\n\nChange-Id: I6a5b8322571e68c4cbb3103fd7f1a13a81295837\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "318b9dd61681f39e181338bee3873a1a5f71a65e",
      "tree": "552a998b31456c3ade093ff4ebcd7f31b9dbddf7",
      "parents": [
        "993b0e375027b5a13ea93f5d585a803ed0e67628"
      ],
      "author": {
        "name": "Freddie Jheng",
        "email": "Freddie.Jheng@quantatw.com",
        "time": "Mon Sep 07 16:23:34 2026 +0800"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Mon Sep 14 18:21:07 2026 +0000"
      },
      "message": "oem-meta: santabarbara: add handler for event logs from Arke MMC\n\nAdd support for decoding the event logs emitted by the Arke MMC.\n\nTested on santabarbara:\nTriggered ARKE_OWL_E_TRVDD0P75 voltage regulator faults on the Arke\nMMC of Electra module 0 and module 2 from separate consoles.\n\n```\n    \"909\": {\n        \"additional_data\": {\n            \"FAILURE_DATA\": \"ARKE_OWL_E_TRVDD0P75 - [00 00]\",\n            \"VOLTAGE_REGULATOR\": \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_0/owl_e_trvdd0p75\"\n        },\n        \"message\": \"xyz.openbmc_project.State.Power.VoltageRegulatorFault\",\n        \"redfish\": {\n            \"id\": \"OpenBMC_StatePower.VoltageRegulatorFault\",\n            \"message\": \"A fault has been detected on voltage regulator \u0027/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_0/owl_e_trvdd0p75\u0027\"\n        },\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Error\",\n        \"timestamp\": \"2026-09-08T10:46:04.129000000Z\"\n    },\n    \"910\": {\n        \"additional_data\": {\n            \"FAILURE_DATA\": \"ARKE_OWL_E_TRVDD0P75 - [00 00]\",\n            \"VOLTAGE_REGULATOR\": \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_2/owl_e_trvdd0p75\"\n        },\n        \"message\": \"xyz.openbmc_project.State.Power.VoltageRegulatorFault\",\n        \"redfish\": {\n            \"id\": \"OpenBMC_StatePower.VoltageRegulatorFault\",\n            \"message\": \"A fault has been detected on voltage regulator \u0027/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_2/owl_e_trvdd0p75\u0027\"\n        },\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Error\",\n        \"timestamp\": \"2026-09-08T10:46:25.472000000Z\"\n    }\n```\n\nChange-Id: Icccd075aa6215f2e071a62838a70b9aa9c5c3ae7\nSigned-off-by: Freddie Jheng \u003cFreddie.Jheng@quantatw.com\u003e\n"
    },
    {
      "commit": "993b0e375027b5a13ea93f5d585a803ed0e67628",
      "tree": "fbd23c93a2dcb776f02d6213c63044ba548f02b6",
      "parents": [
        "9ccc6a6fb4caf254d731fd503eed4285663f652d"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Tue Sep 08 14:16:06 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Sep 11 09:02:48 2026 -0400"
      },
      "message": "oem-meta: http-boot: fix heap OOB write on read with offset past EOF\n\nHttpBootHandler::read() for READ_DATA revised the response length with\n\n```\n    if (offset + data-\u003elength \u003e\u003d sb.st_size)\n        data-\u003elength \u003d sb.st_size - offset;\n```\n\nBoth offset (uint16_t) and length (uint8_t) are host-supplied. When the\nhost passes an offset beyond the end of the bios-rootcert file, lseek()\npast EOF succeeds and sb.st_size - offset is negative; the implicit\nconversion to uint8_t wraps (e.g. 2000 - 2001 -\u003e 255). The memcpy()\ninto the respbuf data[] region sized from the original request length\nthen writes out of bounds, corrupting the heap, and the over-written\nbytes are encoded back into the response.\n\nReject offsets at or beyond EOF so the subtraction cannot underflow,\nand clamp the revised length to min(requested, remaining) so it can\nnever exceed the caller\u0027s response buffer. Also fail short reads\ninstead of returning uninitialized bytes, and clamp any over-long\nhandler length in FileIOHandler::readFileIO as defense in depth.\n\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\nReported-by: Yu Chen \u003cpaloaltoalex@gmail.com\u003e\nAssisted-by: opencode:meta/muse-spark-1.3\nChange-Id: Ic9c26aeeb933aeed2ec1f267be661329cc9507e2\n"
    },
    {
      "commit": "9ccc6a6fb4caf254d731fd503eed4285663f652d",
      "tree": "536f3f8840398de126ca015aa7e55203eebfb900",
      "parents": [
        "b473b89beab00f88e9e449fad39d0230acb5a794"
      ],
      "author": {
        "name": "Pete O_o",
        "email": "pmb@meta.com",
        "time": "Tue Sep 08 14:18:45 2026 -0700"
      },
      "committer": {
        "name": "Pete O_o",
        "email": "pmb@meta.com",
        "time": "Tue Sep 08 14:18:45 2026 -0700"
      },
      "message": "oem-meta: drop host-requested sled-wide power control\n\nThe power control command let a host ask for a sled cycle or a NIC power\ncycle. Both act on hardware the requester shares with other hosts, and\nthe request says nothing about whether the sender may do that, so the\nhandler has no way to tell one request from another.\n\nRemove both. What is left, the 12V and DC slot cycles, acts on the slot\nderived from the sender\u0027s TID, so a host can still cycle itself.\n\nTested: builds clean. Not exercised on hardware.\n\nChange-Id: I44e5256c179f2a0ad25471e632be0483aabd3c8b\nSigned-off-by: Pete O_o \u003cpmb@meta.com\u003e\n"
    },
    {
      "commit": "b473b89beab00f88e9e449fad39d0230acb5a794",
      "tree": "7d713cc7ef21f357f2e9e8457ecd2ef1c0b6c65c",
      "parents": [
        "e752d68aa8c23e3a7e59a62b9e9b475f553ca68d"
      ],
      "author": {
        "name": "Davidson Kumaresan",
        "email": "davidson.kumaresan@arm.com",
        "time": "Tue Jun 02 18:45:44 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:46:20 2026 +0000"
      },
      "message": "platform-mc: Gate host power check for state effecter updates\n\nSkip host state effecter change notifications when host-state\nvalidation is requested and the host is not on. This allows callers\nthat pass checkHost\u003dfalse to continue processing state effecter\nupdates regardless of the current host power state.\n\nThis will be helpful in sending state effecter changes to other\nPLDM terminus in the system when the host is off.\n\nTested:\nChange in state effecters are sent as PLDM messages to the\nconfigured terminus even when the host state is off.\n\nChange-Id: I90a71c8fdbc85cb8aff2fef45d46081183bc9c39\nSigned-off-by: Davidson Kumaresan \u003cdavidson.kumaresan@arm.com\u003e\n"
    },
    {
      "commit": "e752d68aa8c23e3a7e59a62b9e9b475f553ca68d",
      "tree": "d3ebda49651fc7b292184300b8cc8f413c006273",
      "parents": [
        "6098ff2fa1af943c5ee91c803fe6e8e76694981b"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Wed Jul 29 15:40:33 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:24:05 2026 +0000"
      },
      "message": "platform-mc: stop multipart PDR processing on TRANSFER_END\n\nPLDM_PLATFORM_TRANSFER_END indicates that the complete PDR\nrecord has been received. After moving the assembled record\ninto terminus-\u003epdrs, continuing the multipart transfer loop is\nunnecessary and can leave a potential post-move access path for\nreceivedPdr.\n\nBreak out of the loop immediately after handling TRANSFER_END\nto make the completion condition explicit, simplify control\nflow, and resolve the cppcheck accessMoved warning.\n\nNo functional change is intended for valid transfers.\n\nChange-Id: I2f5cb57757dcc69d3d622780f17126777d4d5928\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "6098ff2fa1af943c5ee91c803fe6e8e76694981b",
      "tree": "ea65de7e24d804c25d423abe5e511aadfffec864",
      "parents": [
        "2c1f4d33eb125bd8aed06d40915124c810d3c57d"
      ],
      "author": {
        "name": "Manojkiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jul 06 14:22:31 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:21:41 2026 +0000"
      },
      "message": "bios: On DBus failure fall back to persisted value\n\nWhen building the BIOS attribute/value tables at startup,\nbuildAndStoreAttrTables() reads the BaseBIOSTable property from\nbios-settings-manager and passes the stored currentValue to each\nattribute\u0027s constructEntry() as optAttributeValue.\n\nFor attributes backed by a D-Bus property (dBusMap is set), the live\nD-Bus value is the ground truth and should be preferred.  However, if\nthe D-Bus read fails (e.g. the object has not yet appeared on the bus),\nthe correct fallback is the last known persisted value from\nBaseBIOSTable.\n\nFix all three attribute types (integer, string, enum) by adding an\noptional persisted value into the getAttrValue() / getAttrValueIndex()\nhelpers.  The priority order is now:\n\n  1. Live D-Bus value   (when dBusMap is set and the read succeeds)\n  2. Persisted value    (optAttributeValue from BaseBIOSTable)\n  3. JSON default       (last resort)\n\nNon-D-Bus attributes (no dBusMap) follow the same priority 2 \u0026 3 path\nthey always did.\n\nChange-Id: I4c1f52bbd47712846b59e0b25619369b4e0f4a6d\nSigned-off-by: Manojkiran Eda \u003cmanojkiran.eda@gmail.com\u003e\n"
    },
    {
      "commit": "2c1f4d33eb125bd8aed06d40915124c810d3c57d",
      "tree": "55204da5e2a8f7c258c6ba7fcfb743db21faf2ac",
      "parents": [
        "6a96cd79acde433031d51f85a861d168ce0e2aa6"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Mon Aug 03 09:09:23 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:20:35 2026 +0000"
      },
      "message": "platform-mc: Initialize poll event members in Terminus\n\nInitialize pollEvent, pollEventId, and\npollDataTransferHandle using in-class member initializers so\nnew Terminus objects start from a deterministic state.\n\npollEventId and pollDataTransferHandle were previously left\nuninitialized until updated by the poll-event handling flow.\nProvide default values to avoid indeterminate state and make\ninitialization explicit.\n\nChange-Id: I2516df5e301f41f6f2c464a1d12c12057e4ba872\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "6a96cd79acde433031d51f85a861d168ce0e2aa6",
      "tree": "aedb6a4e8ad98f4ee17a0c416fb2a0beccd68096",
      "parents": [
        "12f414db311a9de280410d71255a3a3137632b43"
      ],
      "author": {
        "name": "Konstantin Aladyshev",
        "email": "aladyshev22@gmail.com",
        "time": "Thu Feb 05 17:56:27 2026 +0300"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:18:03 2026 +0000"
      },
      "message": "pldmtool: Support parsing Redfish Resource/Action PDRs\n\nAdd support for parsing Redfish Resource/Action PDRs to pldmtool.\n\nTested:\n\nThe output of the GetPDR command for SmartNIC card now contains parsed\nRedfish Resource/Action PDRs.\n\nExample:\n\"\"\"\n...\n{\n    \"nextRecordHandle\": 3002,\n    \"responseCount\": 89,\n    \"recordHandle\": 3001,\n    \"PDRHeaderVersion\": 1,\n    \"PDRType\": \"Redfish Action PDR\",\n    \"recordChangeNumber\": 0,\n    \"dataLength\": 79,\n    \"ActionPDRIndex\": 0,\n    \"RelatedResourceCount\": 1,\n    \"RelatedResourceID[0]\": 1,\n    \"ActionCount\": 1,\n    \"ActionNameLengthBytes[0]\": 23,\n    \"ActionName[0]\": \"ResetSettingsToDefault\",\n    \"ActionPathLengthBytes[0]\": 46,\n    \"ActionPath[0]\": \"Actions/NetworkAdapter.ResetSettingsToDefault\"\n}\n...\n{\n    \"nextRecordHandle\": 4003,\n    \"responseCount\": 135,\n    \"recordHandle\": 4001,\n    \"PDRHeaderVersion\": 1,\n    \"PDRType\": \"Redfish Resource PDR\",\n    \"recordChangeNumber\": 0,\n    \"dataLength\": 125,\n    \"ResourceID\": 1,\n    \"ResourceFlags\": \"Device Root|Contained in collection(3)\",\n    \"ContainingResourceID\": 0,\n    \"ProposedContainingResourceLengthBytes\": 50,\n    \"ProposedContainingResourceName\":\n\"NetworkAdapterCollection.NetworkAdapterCollection\",\n    \"SubURILengthBytes\": 1,\n    \"SubURI\": \"\",\n    \"AdditionalResourceIDCount\": 1,\n    \"AdditionalResourceID[0]\": 11,\n    \"AdditionalResourceSubURILengthBytes[0]\": 10,\n    \"AdditionalResourceSubURI[0]\": \"/Settings\",\n    \"MajorSchemaVersion\": \"1.9.0\",\n    \"MajorSchemaDictionaryLengthBytes\": 1765,\n    \"MajorSchemaDictionarySignature\": 50776613,\n    \"MajorSchemaNameLength\": 30,\n    \"MajorSchemaName\": \"NetworkAdapter.NetworkAdapter\",\n    \"OEMCount\": 0\n}\n...\n\"\"\"\n\nChange-Id: I8d6723e8d75833b06067f60395dffa7c8a2e860b\nSigned-off-by: Konstantin Aladyshev \u003caladyshev22@gmail.com\u003e\n"
    },
    {
      "commit": "12f414db311a9de280410d71255a3a3137632b43",
      "tree": "66f6426fa70728dc26c7997e4fe33b5a4fff9dbe",
      "parents": [
        "f760f74b5b230c137eb5b9b264df51223865bb07"
      ],
      "author": {
        "name": "Konstantin Aladyshev",
        "email": "aladyshev22@gmail.com",
        "time": "Mon Jul 27 17:45:17 2026 +0300"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:16:04 2026 +0000"
      },
      "message": "platform-mc: Fix missing returns from sensor creation\n\nCurrently when an error occurs during numeric sensor addition, the code\ncalls addNextSensorFromPDRs() to schedule the next item but doesn\u0027t\nreturn from the function.\nThis may lead to undesired behavior: the function invokes\naddNextSensorFromPDRs() for the second time, incrementing the iterator\nagain, so some sensors may be skipped.\nAdd the missing returns to terminate execution after advancing the\niterator.\n\nChange-Id: I0a2ebbf58ea14e01b766b3dca0dd73a9351c7f4b\nSigned-off-by: Konstantin Aladyshev \u003caladyshev22@gmail.com\u003e\n"
    },
    {
      "commit": "f760f74b5b230c137eb5b9b264df51223865bb07",
      "tree": "967a00b3dfae36f15013f361993f293118b64e2c",
      "parents": [
        "d0e065f0147f8c9b4baef356fe284d76af561444"
      ],
      "author": {
        "name": "Eric Yang",
        "email": "eric.yang.wiwynn@gmail.com",
        "time": "Tue Aug 18 09:19:57 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:14:55 2026 +0000"
      },
      "message": "pldmtool: Exit non-zero on request failures\n\nexec()\u0027s three failure paths (instance ID allocation,\ncreateRequestMsg(), pldmSendRecv()) now report failure through the CLI\nframework\u0027s exit-code mechanism instead of an uncaught exception or a\nplain return.\n\nMotivation:\npldmtool surfaces the instance ID allocation failure as an exception\nrather than silently discarding it. Nothing above exec() catches that\nexception, so a real, expected failure (instance IDs running out under\nnormal contention, not misuse) crashes the whole process instead of\nexiting cleanly. The other two paths avoid that crash, but log an error\nand still return successfully as far as the caller can tell, so a script\nchecking the exit status cannot distinguish a failed request from a\nsuccessful one.\n\nTested:\nForced each of the three failure paths above on Yosemite4.\n\nInstance ID pool forced empty, before:\n```\n$ pldmtool base GetTID -m 30\n\u003c3\u003e Instance ID allocation failed for EID 30: Failed to allocate\ninstance ID for EID 30: No free instance ids\nterminate called after throwing an instance of \u0027pldm::InstanceIdError\u0027\n  what():  Failed to allocate instance ID for EID 30: No free\n  instance ids\nAborted (core dumped)\n$ echo $?\n134\n```\nafter:\n```\n$ pldmtool base GetTID -m 30\n\u003c3\u003e Instance ID allocation failed for EID 30: Failed to allocate\ninstance ID for EID 30: No free instance ids\n$ echo $?\n1\n```\n\ncreateRequestMsg() forced to return an encode-validation error, before:\n```\n$ pldmtool base GetTID -m 30\nFailed to encode request message for base:GetTID rc \u003d 2\n$ echo $?\n0\n```\nafter:\n```\n$ pldmtool base GetTID -m 30\nFailed to encode request message for base:GetTID rc \u003d 2\n$ echo $?\n1\n```\n\npldmSendRecv() forced to return a transport send error, before:\n```\n$ pldmtool base GetTID -m 30\npldmSendRecv: Failed to receive RC \u003d -7\n$ echo $?\n0\n```\nafter:\n```\n$ pldmtool base GetTID -m 30\npldmSendRecv: Failed to receive RC \u003d -7\n$ echo $?\n1\n```\n\nChange-Id: Ifbc0235b431e50df104322d3d5d156df383a8aa2\nSigned-off-by: Eric Yang \u003ceric.yang.wiwynn@gmail.com\u003e\n"
    },
    {
      "commit": "d0e065f0147f8c9b4baef356fe284d76af561444",
      "tree": "5a926cd4f42703daf14c934169756b8fc40a6541",
      "parents": [
        "84c556cf87fd3f80c97f68780e1474ff4ab5c22d"
      ],
      "author": {
        "name": "Ugur Ozer",
        "email": "info@airiskmanagement.ca",
        "time": "Fri Jul 24 10:36:47 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Sep 03 06:09:46 2026 +0000"
      },
      "message": "fw-update: prevent firmware data request overflow\n\nRequestFirmwareData supplies a 32-bit offset and length. Their sum can\nwrap before the component bounds check, accept an out-of-range request,\nand index outside the selected component image.\n\nValidate the offset before subtracting it from the component size, then\nderive padding from the remaining bytes so no addition can overflow.\nWiden the package seek arithmetic and add regressions for a wrapped\noffset, exact baseline padding, and an offset beyond the component end.\n\nChange-Id: I4092729cfb9d9790f10489d27bed039ded5c0512\nSigned-off-by: Ugur Ozer \u003cinfo@airiskmanagement.ca\u003e\n"
    },
    {
      "commit": "84c556cf87fd3f80c97f68780e1474ff4ab5c22d",
      "tree": "9ef400105fe2500ab7a42e10bf97f3e89db29c6f",
      "parents": [
        "f5fba58b35c2ccaa884b22f027dffc076926c140"
      ],
      "author": {
        "name": "Aditya Kurdunkar",
        "email": "adityakurdunkar2@gmail.com",
        "time": "Mon Jul 27 05:30:21 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 31 05:56:39 2026 +0000"
      },
      "message": "pldmtool: send the allocated instance ID\n\nexec() declared a local instanceId that shadowed the member of the same\nname, so the ID allocated from the instance ID database never reached\ncreateRequestMsg() and every request went out with instance ID 0.\n\nAssign to the member instead.\n\nTested: successive requests of \"pldmtool platform GetPDR -a -m 14 -v\".\nThe instance ID is the low 5 bits of the first header byte.\n\nBefore, every request goes out with instance ID 0:\n\n  Tx: 80 02 51 34 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 80 02 51 35 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 80 02 51 36 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 80 02 51 37 00 00 00 00 00 00 00 01 ff ff 00 00\n\nAfter, the instance ID increments per request:\n\n  Tx: 87 02 51 08 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 88 02 51 09 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 89 02 51 0a 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 8a 02 51 0b 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 8b 02 51 0c 00 00 00 00 00 00 00 01 ff ff 00 00\n  Tx: 8c 02 51 0d 00 00 00 00 00 00 00 01 ff ff 00 00\n\nChange-Id: I67c2586f1964171e6605170eca2a662e2c2cf427\nSigned-off-by: Aditya Kurdunkar \u003cadityakurdunkar2@gmail.com\u003e\n"
    },
    {
      "commit": "f5fba58b35c2ccaa884b22f027dffc076926c140",
      "tree": "708d76c233363941780f355e5ff43082ef7aec38",
      "parents": [
        "6f64c596e81aaf11b10f5f2d5569237be7da3e25"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed Aug 26 05:31:36 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed Aug 26 05:31:36 2026 -0400"
      },
      "message": "sdbusplus: use shorter type aliases\n\nThe sdbusplus headers provide shortened aliases for many types.\nSwitch to using them to provide better code clarity and shorter\nlines.  Possible replacements are for:\n  * exception_t\n  * manager_t\n  * match\n  * match_rules\n  * message_t\n  * object_t\n  * slot_t\n\nChange-Id: I993295382740f09f2ffa4713cbdd84b5137116d5\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "6f64c596e81aaf11b10f5f2d5569237be7da3e25",
      "tree": "83b91e031f80fe89e14041f92186652ea384802b",
      "parents": [
        "dff776ef7887ef64a67b39426607bb3b4f1ac500"
      ],
      "author": {
        "name": "Manjeet Singh",
        "email": "itsmanjeet1998@gmail.com",
        "time": "Thu Jul 30 03:40:58 2026 -0500"
      },
      "committer": {
        "name": "Manjeet Singh",
        "email": "itsmanjeet1998@gmail.com",
        "time": "Tue Aug 25 14:13:28 2026 +0000"
      },
      "message": "oem-ibm: Host Security Storage file\n\nAdded support for host security storage file\n\nTested: File created in required path and present in FileTable\n\nChange-Id: I7d7b94ac6485eb39a3feff286c83ebf1e27a7686\nSigned-off-by: Manjeet Singh \u003citsmanjeet1998@gmail.com\u003e\n"
    },
    {
      "commit": "dff776ef7887ef64a67b39426607bb3b4f1ac500",
      "tree": "56584f4e54e952488bb8a18e9939774af3de2fe8",
      "parents": [
        "4a48c52d0d04a501c7996676b1f0463094380dc9"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Thu Jul 16 15:53:19 2026 +0200"
      },
      "committer": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Mon Aug 24 15:32:42 2026 +0200"
      },
      "message": "package_parser: remove redundant pkg size param\n\nSince the package is passed as a std::vector, that already describes the\nsize of the package.\n\nBoth \u0027update_manager.cpp\u0027 and \u0027item_update_manager.cpp\u0027 pass the size of\nthe vector containing the package.\n\nChange-Id: I45b381a5ad5b4488a3db540f59f04f15402d264e\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "4a48c52d0d04a501c7996676b1f0463094380dc9",
      "tree": "05bf4a2763c3015b13d4eed9879ad8c582feced4",
      "parents": [
        "ea365dcadbac0ec5436603baf3db2911695801ca"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jul 15 16:27:35 2026 +0200"
      },
      "committer": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Mon Aug 24 15:29:35 2026 +0200"
      },
      "message": "fw-update/test: fix ComponentClassification\n\nDSP0267 v1.0.0 defines Table 19 for ComponentClassification values,\nvalue 0x10 is not allowed. Replace with arbitrary value 0x0b which is\nin-spec.\n\nTested: package now passes the libpldm++ parser which uses libpldm\niterator APIs internally. Those do check the package more strictly.\n\nChange-Id: Ida46e4a7c37186337b695109941b61e252172c9d\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "ea365dcadbac0ec5436603baf3db2911695801ca",
      "tree": "5ab5ed603f24eae69e04a608539d017d2d91b37e",
      "parents": [
        "7dabc6243f76f1c9443fe20be63cd4a213aea10e"
      ],
      "author": {
        "name": "Unive Tien",
        "email": "unive.tien.wiwynn@gmail.com",
        "time": "Mon Jun 22 09:14:21 2026 +0000"
      },
      "committer": {
        "name": "Unive Tien",
        "email": "unive.tien.wiwynn@gmail.com",
        "time": "Tue Aug 18 06:54:54 2026 +0000"
      },
      "message": "fw_update: add pre-post update conditions\n\nDescription:\nThis commit introduces the concept of pre and post update conditions in\nthe firmware update process to meet the code-update design[1]. Allow\nplatform specific systemd units to run before an update starts and\nafter an update has finished successfully.\n\nA pre-update condition is executed before the firmware update flow\nstarts, and a failing one aborts the update. A post-update condition is\nexecuted only after the update has succeeded, as defined by the design;\nno condition is executed once the update itself has failed.\n\n[1]: https://github.com/openbmc/docs/blob/master/designs/code-update.md#pre-and-post-update-conditions\n\n- Added a new JSON schema for defining pre and post update conditions\n- A condition service that needs arguments is configured as a systemd\n  template unit and receives all supported named arguments as its\n  escaped instance name\n\nMotivation:\nThe firmware update process may require certain conditions to be met\nbefore and after the update. This feature allows for greater flexibility\nand control over the update process, ensuring that the system is in a\nvalid state before and after the update.\n\nTested:\nPlatform: Yosemite 4, Sentinel Dome T2 in slot 1, BIC firmware update\nover PLDM (EID 10, ast1030 v2023SD).\n\n- Parameterized post update condition: pldm resolved\n  yv4-bic-post-update@.service into the escaped instance\n  boardName\u003dYosemite_4_Sentinel_Dome_T2_Slot_1,applyTime\u003dOnReset,\n  systemd job 34591 returned \"done\" and the update completed.\n- Non parameterized pre update condition: pldm started\n  yv4-bic-pre-update.service without an instance name, dropping the\n  arguments as expected, job 21105 returned \"done\" and the update\n  proceeded into the transfer.\n- No condition configured: with both targets omitted for the component,\n  both conditions were skipped and the update still completed, so the\n  base update flow is unaffected.\n- Unit tests pass in the OpenBMC unit test container, with the format\n  and cppcheck stages clean.\n\nNot covered on hardware: a condition that fails, a condition unit that\nhits its start timeout, and a manager erased while its condition is\nstill running.\n\nChange-Id: Ie862c8ec6aa41db3239a6e7438953326e99a7bc3\nSigned-off-by: Unive Tien \u003cunive.tien.wiwynn@gmail.com\u003e\n"
    },
    {
      "commit": "7dabc6243f76f1c9443fe20be63cd4a213aea10e",
      "tree": "8889014a30f8da375ba23a0478d88cdd8aa728e9",
      "parents": [
        "283e1ddd2721e92a86a87282334c0dc080c46872"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Tue Aug 11 07:10:27 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 17 10:04:59 2026 +0000"
      },
      "message": "bios: add getValueIndex unit test coverage\n\nAdd unit tests for BIOSEnumAttribute::getValueIndex() to\ncover both successful value lookups and invalid input\nhandling.\n\nVerify that valid enumeration values return the expected\nindices and that unknown values continue to throw\nstd::invalid_argument.\n\nChange-Id: If2efb201d60e8bc1e81d250842c3b5dda7c69c05\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "283e1ddd2721e92a86a87282334c0dc080c46872",
      "tree": "674e6fbecfa932c9a10ad27a41c1caef6bec2e11",
      "parents": [
        "cc8d016eefd4e04709ac4a767c5867f45a0b60bd"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Thu Aug 06 09:01:33 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 17 10:01:40 2026 +0000"
      },
      "message": "pldmd: fix unsupported command handling\n\nA request with a valid PLDM type but an unregistered command\ncurrently results in std::out_of_range from the command handler\nlookup.\n\nUnsupported commands are protocol-level errors and should return\na PLDM completion code instead of propagating a C++ exception.\n\nReplace the throwing command lookup with a guarded lookup and\nreturn PLDM_ERROR_UNSUPPORTED_PLDM_CMD when a command is not\nregistered.\n\nUpdate the registration test to verify that unsupported commands\nreturn the expected completion code rather than throwing an\nexception.\n\nTested:\n- meson test -C build pldmd_registration_test --print-errorlogs\n\nChange-Id: Ia85d86fd4d22f7510e8ee52876f31643470eee70\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "cc8d016eefd4e04709ac4a767c5867f45a0b60bd",
      "tree": "b7a3c5a433d0ea8ba1efcfd2b6c840a321897e0c",
      "parents": [
        "2cd857d1dcdb440e0bb8cdcd36334ca52ae3a112"
      ],
      "author": {
        "name": "Manojkiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 17 15:06:57 2026 +0530"
      },
      "committer": {
        "name": "Manojkiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 17 15:11:06 2026 +0530"
      },
      "message": "fix build failure by reverting 2cd857d b109898\n\nChange-Id: I9e557a56053cf469e56b7fa32a847ca414834103\nSigned-off-by: Manojkiran Eda \u003cmanojkiran.eda@gmail.com\u003e\n"
    },
    {
      "commit": "2cd857d1dcdb440e0bb8cdcd36334ca52ae3a112",
      "tree": "7f4f0d8a2b72dc8305988a4b60484cca9145c96f",
      "parents": [
        "b109898982b905cc9154df6cc320231275844d0b"
      ],
      "author": {
        "name": "JY Voon",
        "email": "jvoon@nvidia.com",
        "time": "Tue Jun 23 17:35:36 2026 +0900"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 17 08:55:13 2026 +0000"
      },
      "message": "common/utils: use decoder in findStateSensorId\n\nRefactor findStateSensorId to read the fixed fields with\ndecode_pldm_platform_state_sensor_pdr(), replacing the packed struct\noverlay and its manual offset math.\n\nTested: Build an image for the vr-nvl-obmc machine with the following\npatches cherry-picked:\n```\n1. Kernel\n   https://lore.kernel.org/all/20260702165524.2168091-1-jackyhuang@nvidia.com/\n2. u-boot\n   https://lore.kernel.org/openbmc/20260629105202.1417679-1-jackyhuang@nvidia.com/\n3. meta-nvidia\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/90959\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/92346\n4. platform-init\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92189\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92190\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92191\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92192\n5. mctp-over-usb-config\n   https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80452\n   https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86236\n   https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86791\n6. libpldm:\n   https://gerrit.openbmc.org/c/openbmc/libpldm/+/90952\n   https://gerrit.openbmc.org/c/openbmc/libpldm/+/91583\n```\n\nBuilt pldmd at this change and at master for vr-nvl-obmc. A pldmtool\nGetPDR walk of the BMC repository and the FindStateSensorPDR D-Bus\nlookups return output byte-identical to the unmodified build.\n\nChange-Id: I3a9ae8c48a52afdc10deaff57f4bc7f119ac771b\nSigned-off-by: JY Voon \u003cjvoon@nvidia.com\u003e\n"
    },
    {
      "commit": "b109898982b905cc9154df6cc320231275844d0b",
      "tree": "16af59b2a1cf77dd43f8c59bbd5c3c54bb8edc31",
      "parents": [
        "fef35d5c18ef0342e54c9856ab0181bb49c05b35"
      ],
      "author": {
        "name": "JY Voon",
        "email": "jvoon@nvidia.com",
        "time": "Tue Jun 23 17:25:55 2026 +0900"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 17 08:55:13 2026 +0000"
      },
      "message": "common/utils: use decoder in findStateSensorPDR\n\nRefactor findStateSensorPDR to decode the fixed fields with\ndecode_pldm_platform_state_sensor_pdr() and walk the composite states\nwith foreach_pldm_platform_state_sensor_pdr_possible_states(), replacing\nthe packed struct overlay and its manual offset math. Both are bounds\nchecked against the record length.\n\nTested: Build an image for the vr-nvl-obmc machine with the following\npatches cherry-picked:\n```\n1. Kernel\n   https://lore.kernel.org/all/20260702165524.2168091-1-jackyhuang@nvidia.com/\n2. u-boot\n   https://lore.kernel.org/openbmc/20260629105202.1417679-1-jackyhuang@nvidia.com/\n3. meta-nvidia\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/90959\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/92346\n4. platform-init\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92189\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92190\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92191\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/92192\n5. mctp-over-usb-config\n   https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80452\n   https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86236\n   https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86791\n6. libpldm\n   https://gerrit.openbmc.org/c/openbmc/libpldm/+/90952\n   https://gerrit.openbmc.org/c/openbmc/libpldm/+/91583\n```\n\nBuilt pldmd at this change and at master for vr-nvl-obmc, with a PDR\nJSON adding one composite state sensor (sets 100 and 200). The D-Bus\nwrapper returns the identical record from both builds for either set ID,\nand raises ResourceNotFound for an absent one:\n\n```\n  busctl call xyz.openbmc_project.PLDM /xyz/openbmc_project/pldm \\\n      xyz.openbmc_project.PLDM.PDR FindStateSensorPDR yqq 0 33 100\n  aay 1 31 3 0 0 0 1 4 0 0 21 0 1 0 1 0 33 0 1 0 1 0 0 0 \\\n      2 100 0 1 6 200 0 1 6\n```\n\nChange-Id: Iaefe3ca4fe9a095ac988388b9b6479dc52580591\nSigned-off-by: JY Voon \u003cjvoon@nvidia.com\u003e\n"
    },
    {
      "commit": "fef35d5c18ef0342e54c9856ab0181bb49c05b35",
      "tree": "b7a3c5a433d0ea8ba1efcfd2b6c840a321897e0c",
      "parents": [
        "039648e6456f6520e12f51c1564cd8bb12b5d4e4"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Sat Aug 15 11:06:57 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Aug 17 08:25:13 2026 +0000"
      },
      "message": "oem-ibm: Fix null buffer check in PCIeInfoHandler::write\n\nThe write operation is currently guarded by an inverted null\ncheck, causing valid buffers to be ignored while allowing a\nnull pointer to be passed to pcieData.write().\nPerform the write only when a valid buffer is provided.\n\nChange-Id: Ib10401a2a239ee27cd819db6654928d4fbf99665\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "039648e6456f6520e12f51c1564cd8bb12b5d4e4",
      "tree": "1f5a523a82b8d048b50588f5a37066b2eeb262d6",
      "parents": [
        "ecb4b2bbe88d55e778d78f62d6521b0ade8035bc"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Thu Jul 23 16:42:41 2026 +0000"
      },
      "committer": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Sat Aug 15 12:45:51 2026 +0000"
      },
      "message": "pldm: prefer empty() over size() \u003d\u003d 0\n\nPrefer container.empty() over container.size() \u003d\u003d 0 for\nclarity and consistency with the rest of the codebase.\nempty() directly expresses intent and follows common\nC++ container usage conventions.\n\nChange-Id: Ia1beac941428d420b2c02a68cd66ea1732f9f989\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "ecb4b2bbe88d55e778d78f62d6521b0ade8035bc",
      "tree": "eec51773768153809c30166cc13a88200883cb4e",
      "parents": [
        "7735dc2266d33b59c9630dd88cc52455436f1c63"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Wed Jul 22 10:29:21 2026 +0530"
      },
      "committer": {
        "name": "Deepak Kodihalli",
        "email": "deepak.kodihalli.83@gmail.com",
        "time": "Thu Jul 30 06:18:55 2026 +0000"
      },
      "message": "platform-mc: fix dangling exec::async_scope in doSensorPolling\n\nstopPolling() erased the doSensorPollingTaskHandles entry while a\ncoroutine was still suspended on the scope. A response arriving after\nthe erase would resume the coroutine on freed memory, causing SIGSEGV.\n\nIntroduce PollHandle, a heap-allocated struct holding the scope and\ncompletion flag. The coroutine takes a shared_ptr\u003cPollHandle\u003e as an\nexplicit parameter so the scope outlives the map entry until\nfinal_suspend is done.\n\nAlso replace [this, tid] captures with explicit parameters. Captures\nare accessed through the closure object, which is a temporary;\nparameters are guaranteed to live in the coroutine frame.\n\nTested: Build an image for nvl32-obmc machine with the following patches\ncherry-picked:\n\n```\n1. pldm platform-mc fix dangling exec::async_scope in doSensorPolling:\n   https://gerrit.openbmc.org/c/openbmc/pldm/+/92581\n2. Align with upstream u-boot dts tree:\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/89932\n3. mctpd configuration:\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/87390\n4. Enable nvidia-gpu sensor:\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/89933\n```\n\nBoth images build pldm with AddressSanitizer (EXTRA_OEMESON +\u003d\n\"-Db_sanitize\u003daddress\") and run pldmd with\ndetect_stack_use_after_return\u003d1, so the defect is observable\nindependently of whether the reclaimed stack slot happens to be\noverwritten. Output below is trimmed where marked \"...\".\n\n```\n$ systemctl show pldmd -p Environment --value\nLD_LIBRARY_PATH\u003d/run/asan\nASAN_OPTIONS\u003ddetect_stack_use_after_return\u003d1:symbolize\u003d0:log_path\u003d/tmp/asan\n\n\u003d\u003d\u003d without 92581 \u003d\u003d\u003d\n\n$ systemctl show pldmd -p ActiveState -p Result -p NRestarts\nActiveState\u003dfailed\nResult\u003dexit-code\nNRestarts\u003d2\n\n$ systemctl status pldmd | grep -E \u0027Duration|Process\u0027\n   Duration: 2.889s\n    Process: 3000 ExecStart\u003d/run/asan/pldmd (code\u003dexited, status\u003d1/FAILURE)\n\n$ cat /tmp/asan.3000\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003d\u003d3000\u003d\u003dERROR: AddressSanitizer: stack-use-after-return on address 0x74f116c4 at pc 0x00944fa8 bp 0x7edb8a04 sp 0x7edb89f8\nREAD of size 4 at 0x74f116c4 thread T0\n    #0 0x00944fa4  (/run/asan/pldmd+0x47cfa4)\n    ...\nAddress 0x74f116c4 is located in stack of thread T0 at offset 1732 in frame\n    #0 0x009465e8  (/run/asan/pldmd+0x47e5e8)\n\n  This frame has 101 object(s):\n    ...\n    [1728, 1740) \u0027\u003cunknown\u003e\u0027 \u003c\u003d\u003d Memory access at offset 1732 is inside this variable\n    ...\n\u003d\u003d3000\u003d\u003dABORTING\n\n$ arm-openbmc-linux-gnueabi-addr2line -f -C -e pldmd.debug 0x47cfa4\npldm::platform_mc::SensorManager::doSensorPolling(unsigned char)::{lambda()#1}::operator()(...) [clone .actor]\n\n$ arm-openbmc-linux-gnueabi-addr2line -f -C -e pldmd.debug 0x47e5e8\npldm::platform_mc::SensorManager::doSensorPolling(unsigned char)\n\n\u003d\u003d\u003d with 92581 \u003d\u003d\u003d\n\n$ systemctl show pldmd -p ActiveState -p Result -p NRestarts\nActiveState\u003dactive\nResult\u003dsuccess\nNRestarts\u003d0\n\n$ ls /tmp/asan.* 2\u003e/dev/null | wc -l\n0\n\n$ systemctl show pldmd -p ExecMainStartTimestamp --value\nWed 2026-07-29 17:42:57 UTC\n$ date -u \u0027+%Y-%m-%d %H:%M:%S UTC\u0027\n2026-07-30 02:33:16 UTC\n\n$ grep VmRSS /proc/$(pidof pldmd)/status\nVmRSS:     68524 kB\n\n$ for s in Terminus_14_Sensor_300 Terminus_18_Sensor_300 \\\n  Terminus_19_Sensor_300; do busctl get-property \\\n  xyz.openbmc_project.PLDM \\\n  /xyz/openbmc_project/sensors/temperature/$s \\\n  xyz.openbmc_project.Sensor.Value Value; done\nd 47\nd 46\nd 48\n```\n\nChange-Id: Ia4b50beeadf1e9367e7737e7037a52edebc802fc\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\nSigned-off-by: JY Voon \u003cjvoon@nvidia.com\u003e\n"
    },
    {
      "commit": "7735dc2266d33b59c9630dd88cc52455436f1c63",
      "tree": "4580454e18d57419f7d02c8712b1c793b0b87acd",
      "parents": [
        "bcea5c8518660b7434fb7128c60233dddf446422"
      ],
      "author": {
        "name": "Henry Wu",
        "email": "Henry_Wu@quantatw.com",
        "time": "Wed Jul 29 15:56:42 2026 +0800"
      },
      "committer": {
        "name": "Henry Wu",
        "email": "Henry_Wu@quantatw.com",
        "time": "Wed Jul 29 15:56:42 2026 +0800"
      },
      "message": "oem-meta: santabarbara: update ASIC event logs\n\nUpdate the Santabarbara ASIC event logs with the latest definitions\nrequested by the Meta ASIC team.\n\nTest on Santabarbara platform\n```\n   \"103\": {\n        \"additional_data\": {\n            \"DEVICE\": \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/ubc1_ot_warning\",\n            \"FAILURE_DATA\": \"RAINBOW_UBC1_OT_WARNING - [02 03]\",\n            \"_CODE_FILE\": \"/usr/src/debug/pldm/1.0+git/oem/meta/libpldmresponder/file_io_type_event_log.cpp\",\n            \"_CODE_FUNC\": \"void pldm::responder::oem_meta::record::commit(const std::string\u0026, pldm::responder::oem_meta::EventAssert, const std::string\u0026) [with const char* TypeLabel \u003d (\u0026 label); AssertType \u003d sdbusplus::error::xyz::openbmc_project::state::Thermal::DeviceOverOperatingTemperatureFault; DeassertType \u003d sdbusplus::event::xyz::openbmc_project::state::Thermal::DeviceOperatingNormalTemperature; std::string \u003d std::__cxx11::basic_string\u003cchar\u003e]\",\n            \"_CODE_LINE\": \"202\",\n            \"_PID\": \"1779\"\n        },\n        \"event_id\": \"\",\n        \"message\": \"xyz.openbmc_project.State.Thermal.DeviceOverOperatingTemperatureFault\",\n        \"redfish\": {\n            \"args\": [\n                \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/ubc1_ot_warning\"\n            ],\n            \"id\": \"OpenBMC_StateThermal.DeviceOverOperatingTemperatureFault\",\n            \"message\": \"Device /xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/ubc1_ot_warning is significantly over safe operating temperature and may have been powered off.\"\n        },\n        \"resolution\": \"\",\n        \"resolved\": false,\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Critical\",\n        \"timestamp\": \"2026-07-29T07:33:38.563000000Z\",\n        \"updated_timestamp\": \"2026-07-29T07:33:38.563000000Z\"\n    },\n    \"104\": {\n        \"additional_data\": {\n            \"DEVICE\": \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/p0v85_medha1_vdd_ot_warning\",\n            \"FAILURE_DATA\": \"RAINBOW_P0V85_MEDHA1_VDD_OT_WARNING - [02 03]\",\n            \"_CODE_FILE\": \"/usr/src/debug/pldm/1.0+git/oem/meta/libpldmresponder/file_io_type_event_log.cpp\",\n            \"_CODE_FUNC\": \"void pldm::responder::oem_meta::record::commit(const std::string\u0026, pldm::responder::oem_meta::EventAssert, const std::string\u0026) [with const char* TypeLabel \u003d (\u0026 label); AssertType \u003d sdbusplus::error::xyz::openbmc_project::state::Thermal::DeviceOverOperatingTemperatureFault; DeassertType \u003d sdbusplus::event::xyz::openbmc_project::state::Thermal::DeviceOperatingNormalTemperature; std::string \u003d std::__cxx11::basic_string\u003cchar\u003e]\",\n            \"_CODE_LINE\": \"202\",\n            \"_PID\": \"1779\"\n        },\n        \"event_id\": \"\",\n        \"message\": \"xyz.openbmc_project.State.Thermal.DeviceOverOperatingTemperatureFault\",\n        \"redfish\": {\n            \"args\": [\n                \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/p0v85_medha1_vdd_ot_warning\"\n            ],\n            \"id\": \"OpenBMC_StateThermal.DeviceOverOperatingTemperatureFault\",\n            \"message\": \"Device /xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/p0v85_medha1_vdd_ot_warning is significantly over safe operating temperature and may have been powered off.\"\n        },\n        \"resolution\": \"\",\n        \"resolved\": false,\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Critical\",\n        \"timestamp\": \"2026-07-29T07:34:00.855000000Z\",\n        \"updated_timestamp\": \"2026-07-29T07:34:00.855000000Z\"\n    },\n    \"105\": {\n        \"additional_data\": {\n            \"DEVICE\": \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/p0v85_medha0_vdd_ot_warning\",\n            \"FAILURE_DATA\": \"RAINBOW_P0V85_MEDHA0_VDD_OT_WARNING - [02 03]\",\n            \"_CODE_FILE\": \"/usr/src/debug/pldm/1.0+git/oem/meta/libpldmresponder/file_io_type_event_log.cpp\",\n            \"_CODE_FUNC\": \"void pldm::responder::oem_meta::record::commit(const std::string\u0026, pldm::responder::oem_meta::EventAssert, const std::string\u0026) [with const char* TypeLabel \u003d (\u0026 label); AssertType \u003d sdbusplus::error::xyz::openbmc_project::state::Thermal::DeviceOverOperatingTemperatureFault; DeassertType \u003d sdbusplus::event::xyz::openbmc_project::state::Thermal::DeviceOperatingNormalTemperature; std::string \u003d std::__cxx11::basic_string\u003cchar\u003e]\",\n            \"_CODE_LINE\": \"202\",\n            \"_PID\": \"1779\"\n        },\n        \"event_id\": \"\",\n        \"message\": \"xyz.openbmc_project.State.Thermal.DeviceOverOperatingTemperatureFault\",\n        \"redfish\": {\n            \"args\": [\n                \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/p0v85_medha0_vdd_ot_warning\"\n            ],\n            \"id\": \"OpenBMC_StateThermal.DeviceOverOperatingTemperatureFault\",\n            \"message\": \"Device /xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/p0v85_medha0_vdd_ot_warning is significantly over safe operating temperature and may have been powered off.\"\n        },\n        \"resolution\": \"\",\n        \"resolved\": false,\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Critical\",\n        \"timestamp\": \"2026-07-29T07:34:07.056000000Z\",\n        \"updated_timestamp\": \"2026-07-29T07:34:07.056000000Z\"\n    }\n    \"106\": {\n        \"additional_data\": {\n            \"DEVICE\": \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/ubc2_ot_warning\",\n            \"FAILURE_DATA\": \"RAINBOW_UBC2_OT_WARNING - [02 03]\",\n            \"_CODE_FILE\": \"/usr/src/debug/pldm/1.0+git/oem/meta/libpldmresponder/file_io_type_event_log.cpp\",\n            \"_CODE_FUNC\": \"void pldm::responder::oem_meta::record::commit(const std::string\u0026, pldm::responder::oem_meta::EventAssert, const std::string\u0026) [with const char* TypeLabel \u003d (\u0026 label); AssertType \u003d sdbusplus::error::xyz::openbmc_project::state::Thermal::DeviceOverOperatingTemperatureFault; DeassertType \u003d sdbusplus::event::xyz::openbmc_project::state::Thermal::DeviceOperatingNormalTemperature; std::string \u003d std::__cxx11::basic_string\u003cchar\u003e]\",\n            \"_CODE_LINE\": \"202\",\n            \"_PID\": \"1779\"\n        },\n        \"event_id\": \"\",\n        \"message\": \"xyz.openbmc_project.State.Thermal.DeviceOverOperatingTemperatureFault\",\n        \"redfish\": {\n            \"args\": [\n                \"/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/ubc2_ot_warning\"\n            ],\n            \"id\": \"OpenBMC_StateThermal.DeviceOverOperatingTemperatureFault\",\n            \"message\": \"Device /xyz/openbmc_project/inventory/system/board/Santa_Barbara_Rainbow_module_2/ubc2_ot_warning is significantly over safe operating temperature and may have been powered off.\"\n        },\n        \"resolution\": \"\",\n        \"resolved\": false,\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Critical\",\n        \"timestamp\": \"2026-07-29T07:37:53.564000000Z\",\n        \"updated_timestamp\": \"2026-07-29T07:37:53.564000000Z\"\n    }\n}\n```\n\nChange-Id: I22b2354a4ffc3327cb1c58a995f54acb38bbba11\nSigned-off-by: Henry Wu \u003cHenry_Wu@quantatw.com\u003e\n"
    },
    {
      "commit": "bcea5c8518660b7434fb7128c60233dddf446422",
      "tree": "1a4655bd647b0a87f244fdcf4c2a97cfce0f79c6",
      "parents": [
        "a5c2c3cd4dab5a84bb2313481ef360500fe8a509"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Mon Jul 27 11:40:04 2026 +0000"
      },
      "committer": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Tue Jul 28 09:19:18 2026 +0000"
      },
      "message": "host-bmc: free instance ID on request registration failure\n\ngetHostPDR() allocates an instance ID before calling\nregisterRequest() to queue a PLDM request. If\nregisterRequest() fails, the allocated instance ID\nremains allocated until it expires from the InstanceIdDb.\n\nRelease the allocated instance ID when registerRequest()\nfails, matching the cleanup already performed when\nencode_get_pdr_req() fails. This keeps instance ID handling\nconsistent across error paths and avoids retaining an\nunneeded instance ID until expiration.\n\nNo functional change to the successful GetPDR request path.\n\nChange-Id: I99f707ef02f096ed1e08d922e18da99b31d43e4f\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "a5c2c3cd4dab5a84bb2313481ef360500fe8a509",
      "tree": "876fb72f6da2691ecf7c6fa93f39ccab5a4bdee1",
      "parents": [
        "3bf24f992f39cbb12b7621a5037e0c54722ca0a8"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Fri Jul 24 09:41:29 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Tue Jul 28 09:17:27 2026 +0000"
      },
      "message": "oem-ibm: drop redundant c_str() in CertHandler I/O calls\n\nRemove redundant c_str() calls when passing file paths to\ntransferFileData() and readFile() in CertHandler.\n\nThe stlcstrParam warning reports unnecessary conversions of\nstd::string objects to C-style strings when the called functions\nalready accept std::string-compatible parameters. Removing the\nexplicit c_str() calls improves readability and follows modern\nC++ practices.\n\nModified two call sites in\noem/ibm/libpldmresponder/file_io_type_cert.cpp:\n\n- transferFileData(filePath.c_str(), ...)\n  -\u003e transferFileData(filePath, ...)\n- readFile(filePath.c_str(), ...)\n  -\u003e readFile(filePath, ...)\n\nNo functional change intended.\n\nChange-Id: I04236f19b79fe45d8a5d8110dfdea06d876b33d0\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "3bf24f992f39cbb12b7621a5037e0c54722ca0a8",
      "tree": "32ae5399ab04cdbafb18cb96a7e6bd7f18a40151",
      "parents": [
        "bb9d7cbc8cf2c9d5bbe33607dcc39d540e235d30"
      ],
      "author": {
        "name": "Jagpal Singh Gill",
        "email": "paligill@gmail.com",
        "time": "Thu Jul 23 11:11:57 2026 -0700"
      },
      "committer": {
        "name": "Deepak Kodihalli",
        "email": "deepak.kodihalli.83@gmail.com",
        "time": "Tue Jul 28 04:37:30 2026 +0000"
      },
      "message": "OWNERS: add Jagpal for Meta-specific files\n\nAdd myself as an owner on any files in a Meta sub-directory,\nsuch as `oem/meta/`.\n\nChange-Id: I4cbab4cc6d7b695b23fb9ac905e6970b4c0a7dcd\nSigned-off-by: Jagpal Singh Gill \u003cpaligill@gmail.com\u003e\n"
    },
    {
      "commit": "bb9d7cbc8cf2c9d5bbe33607dcc39d540e235d30",
      "tree": "c3161016fcaaaf5486353902e73fc9ae657cc54d",
      "parents": [
        "10fbe40f88df3b49d70d1c21b347712c9b0f6204"
      ],
      "author": {
        "name": "Henry Wu",
        "email": "Henry_Wu@quantatw.com",
        "time": "Thu Jul 23 21:10:40 2026 +0800"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Mon Jul 27 20:26:57 2026 +0000"
      },
      "message": "oem-meta: santabarbara: update event logs from rainbow MMC\n\nAdd new logs from Rainbow ASIC via MMC\n\nTest on Santabarbara platform\n```\n    \"13\": {\n        \"additional_data\": {\n            \"DEVICE\": \"/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/irq_tmp75_1_alert_r_n\",\n            \"FAILURE_DATA\": \"RAINBOW_IRQ_TMP75_1_ALERT_R_N - [02 03]\",\n            \"_CODE_FILE\": \"/usr/src/debug/pldm/1.0+git/oem/meta/libpldmresponder/file_io_type_event_log.cpp\",\n            \"_CODE_FUNC\": \"void pldm::responder::oem_meta::record::commit(const std::string\u0026, pldm::responder::oem_meta::EventAssert, const std::string\u0026) [with const char* TypeLabel \u003d (\u0026 label); AssertType \u003d sdbusplus::error::xyz::openbmc_project::state::Thermal::DeviceOverOperatingTemperatureFault; DeassertType \u003d sdbusplus::event::xyz::openbmc_project::state::Thermal::DeviceOperatingNormalTemperature; std::string \u003d std::__cxx11::basic_string\u003cchar\u003e]\",\n            \"_CODE_LINE\": \"201\",\n            \"_PID\": \"1752\"\n        },\n        \"event_id\": \"\",\n        \"message\": \"xyz.openbmc_project.State.Thermal.DeviceOverOperatingTemperatureFault\",\n        \"redfish\": {\n            \"args\": [\n                \"/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/irq_tmp75_1_alert_r_n\"\n            ],\n            \"id\": \"OpenBMC_StateThermal.DeviceOverOperatingTemperatureFault\",\n            \"message\": \"Device /xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/irq_tmp75_1_alert_r_n is significantly over safe operating temperature and may have been powered off.\"\n        },\n        \"resolution\": \"\",\n        \"resolved\": false,\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Critical\",\n        \"timestamp\": \"2026-07-23T12:50:53.825000000Z\",\n        \"updated_timestamp\": \"2026-07-23T12:50:53.825000000Z\"\n    }\n}\n```\n\nChange-Id: Ie484c64b901a3af3ceaf66b62da23d66bc4e828c\nSigned-off-by: Henry Wu \u003cHenry_Wu@quantatw.com\u003e\n"
    },
    {
      "commit": "10fbe40f88df3b49d70d1c21b347712c9b0f6204",
      "tree": "f3e7f3ec0542869ec489d9712bcd782546b22dab",
      "parents": [
        "191707d220145726ff4df40071091d979d1e6cc0"
      ],
      "author": {
        "name": "Dhruv Rathi",
        "email": "dhruvr@nvidia.com",
        "time": "Fri Jun 26 10:00:21 2026 +0530"
      },
      "committer": {
        "name": "Dhruv Rathi",
        "email": "rathidhruv04@gmail.com",
        "time": "Mon Jul 27 09:33:40 2026 +0000"
      },
      "message": "fw-update: reject mismatched EID in ItemUpdateManager dispatch\n\nItemUpdateManager::handleRequest declared its eid parameter as\nmctp_eid_t /*eid*/ and dispatched purely on command. Combined with\nAggregateUpdateManager iterating updateManagers in SoftwareIdentifier\n(i.e. eid-then-component) order, whichever active ItemUpdateManager\ncame first claimed every FW-update response regardless of the inbound\nEID. Two concurrent target updates on different EIDs would have all\nresponses funneled to the lower-EID manager.\n\nConcretely: with an update on EID 12 in flight, starting an update\non EID 10 created ItemUpdateManager(10). EID 12\u0027s apply_complete was\nthen consumed by deviceUpdater10 and logged as if it belonged to EID\n10 (device_updater.cpp:858 uses the deviceUpdater\u0027s own eid member).\nEID 10 timed out on ActivateFirmware while EID 12\u0027s deviceUpdater\nstate was corrupted by the misrouted messages.\n\nThe per-ItemUpdateManager state (deviceUpdater, packageMap, dupFd,\ninProgressActivation, ...) is already independent, and the shared\nHandler\u003cRequest\u003e/InstanceIdDb demux BMC-\u003eFD responses by\n(eid, instanceId), so concurrent multi-EID target updates work\ncorrectly once the responder path stops the cross-EID misrouting.\n\nAdd an explicit eid !\u003d this-\u003eeid early-return that yields\nPLDM_FWUP_COMMAND_NOT_EXPECTED, letting AggregateUpdateManager fall\nthrough to the next manager. Fold the !deviceUpdater branch into the\nsame early-return since it returns the same encoded response, and\nconvert the placement-new calls to std::start_lifetime_as\u003c\u003e to match\nthe rest of the codebase.\n\nTested on nvl32-obmc:\n- Full bundle multipart update.\n- Single target update.\n- Back to back single-target updates.\n- Full bundle update followed by a target update (previously flooded\n  the journal with \"invalid state when updating progress\" and served\n  data from the stale bundle DeviceUpdater; now routed correctly).\n- Target update on a second PLDM device while an update on another\n  device is in progress: both complete successfully.\n- Target update on the same device while its update is in progress:\n  rejected as expected.\n\nSigned-off-by: Dhruv Rathi \u003crathidhruv04@gmail.com\u003e\nChange-Id: I390c54c82fc6405de37a06af6a8d0e80d31735d3\n"
    },
    {
      "commit": "191707d220145726ff4df40071091d979d1e6cc0",
      "tree": "f6ac5f9d6c0b39bc12bc99cf329086dc9ea645dc",
      "parents": [
        "164629ef382240d3124bd78eceb4271e24864495"
      ],
      "author": {
        "name": "Dhruv Rathi",
        "email": "dhruvr@nvidia.com",
        "time": "Fri Jun 26 10:00:21 2026 +0530"
      },
      "committer": {
        "name": "Dhruv Rathi",
        "email": "rathidhruv04@gmail.com",
        "time": "Mon Jul 27 09:33:40 2026 +0000"
      },
      "message": "fw-update: prefer ItemUpdateManager over UpdateManager in dispatch\n\nAggregateUpdateManager::handleRequest consulted the parent UpdateManager\nbefore iterating the per-target ItemUpdateManagers. After a full-bundle\nupdate completes, UpdateManager::deviceUpdaterMap retains its entries\n(only resetActivationState() ever clears them, which requires the\nactivation D-Bus object to be deleted explicitly). A subsequent\ntarget-filtered update for an EID that was in the prior bundle gets\nsilently serviced by the stale DeviceUpdater: PLDM_REQUEST_FIRMWARE_DATA\nresponses are read from the old package file at the old compOffset,\nand progress.reportFwUpdate() trips its currentState !\u003d Update guard,\nflooding the journal with \"invalid state when updating progress\".\n\nReverse the order: try the active ItemUpdateManagers first, fall back\nto UpdateManager only when none of them claim the request. This matches\n\"the more recently set-up manager wins,\" which is the right policy\nregardless of the underlying state leak in UpdateManager.\n\nAlso convert the in-loop placement-new to std::start_lifetime_as\u003c\u003e, to\nmatch the rest of the file (and 842113b \"avoid placement new\").\n\nTested on nvl32-obmc:\n- Full bundle multipart update.\n- Single target update.\n- Back to back single-target updates.\n- Full bundle update followed by a target update (previously flooded\n  the journal with \"invalid state when updating progress\" and served\n  data from the stale bundle DeviceUpdater; now routed correctly).\n- Target update on the same device while its update is in progress:\n  rejected as expected.\n\nSigned-off-by: Dhruv Rathi \u003crathidhruv04@gmail.com\u003e\nChange-Id: I6050fa7e98b822cd1cf51ff27d31675e9ba9d6e1\n"
    },
    {
      "commit": "164629ef382240d3124bd78eceb4271e24864495",
      "tree": "bb628518db7655a4d4857dd700ca46d32f4f7426",
      "parents": [
        "6e343540efde7d074932880a49b9c8a11ffe0e2d"
      ],
      "author": {
        "name": "Kevin Tung",
        "email": "kevin.tung.openbmc@gmail.com",
        "time": "Fri Jul 24 14:48:14 2026 +0800"
      },
      "committer": {
        "name": "Kevin Tung",
        "email": "kevin.tung.openbmc@gmail.com",
        "time": "Mon Jul 27 16:45:12 2026 +0800"
      },
      "message": "fw_update: change the default VersionPurpose to Other\n\nThe PLDM Software VersionPurpose is currently initialized to `Unknown`,\nwhich is defined as a reserved value for future use. Displaying\n`Unknown` in the firmware inventory can be confusing because it may\nsuggest that the purpose is missing or invalid.\n\nChange the default VersionPurpose from `Unknown` to `Other` to provide\na more meaningful value while preserving the existing behavior.\n\nAccording to [1], VersionPurpose is considered deprecated, so using\n`Other` as the default avoids exposing the reserved `Unknown` value to\nusers without affecting functionality.\n\n[1] https://github.com/openbmc/phosphor-dbus-interfaces/blob/09bf58398d631bb2e896ff3d0d918b882fec99ab/yaml/xyz/openbmc_project/Software/Version.interface.yaml#L19\n\nChange-Id: I9d359ef102404cd0fb17684999e9169211ad786b\nSigned-off-by: Kevin Tung \u003ckevin.tung.openbmc@gmail.com\u003e\n"
    },
    {
      "commit": "6e343540efde7d074932880a49b9c8a11ffe0e2d",
      "tree": "a0013c634122a1c552cf923610dcaa7f9c5ff60c",
      "parents": [
        "fdc82200dd97b05bc190e920466f77430ef7f468"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jul 15 15:37:58 2026 +0200"
      },
      "committer": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jul 22 10:03:29 2026 +0200"
      },
      "message": "fw-update: simplify PackageParser class\n\nSince neither libpldm nor libpldm++ require separate codes for each\npackage format revision, only one implementation is required.\n\nlibpldm can parse any pldm fw update package where the pin passed to it\nis greater or equal to the revision of that package.\n\nSee [1] for an example of libpldm parsing a package of a lower revision\nthan the pin passed to it.\n\nAlso, due to the spec not having removed or significantly changed\nany of the old fields inside the package in newer revisions, it is\npossible to parse packages of different revision into the same struct,\nusing optional/vector/map/... types for newly added members which may\nnot be present in older package format versions. See for example [2].\n\nThis simplifies the class considerably.\n\nTested: covered by existing unit tests for PackageParser\n\nReferences:\n[1] https://github.com/openbmc/libpldm/blob/4aea3a69199cb780256f0f06b05c9e0db14f6044/tests/unit/dsp/firmware_update.cpp#L5641-L5681\n[2] https://github.com/openbmc/libpldm/blob/84ef0f40e8f5565785ef0b97cb0352ffdb33c2bc/include/libpldm%2B%2B/firmware_update.hpp#L225\n\nChange-Id: I6a0c0c4e78acbac60dd1e7bf9e616dc70050376e\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "fdc82200dd97b05bc190e920466f77430ef7f468",
      "tree": "2329a7bb40d748cc476328e6544ce4909f2463b1",
      "parents": [
        "9fd86d58bd57f01a9b40d6d1f4a88a0c069c002b"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Tue Jul 21 14:09:12 2026 +0530"
      },
      "committer": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Tue Jul 21 09:41:18 2026 +0000"
      },
      "message": "fix CI compilation error by replacing let_value\n\nstdexec::just() | stdexec::let_value(f) where f takes no arguments is\nsemantically identical to calling f() directly, since just() sends no\nvalues and let_value simply forwards them to f.\n\nReplace the pattern with the direct call to avoid the let_value\nconstexpr completion-signature computation path, which triggers a\ncompile error in stdexec\u0027s __typeinfo.hpp due to pointer comparison of\ninline constexpr globals in a constant expression context.\n\nIn sensor_manager.cpp an immediately-invoked lambda expression is used.\nIn handler_test.cpp the lambda is stored in a named variable before\ninvocation to preserve the closure lifetime across coroutine suspension\npoints, matching the original behavior where let_value held the closure\nin its operation state.\n\nNo behavior change.\n\nChange-Id: I3c6b6a432d3a5c594ea7a99b5c9e338898e3893a\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\n"
    },
    {
      "commit": "9fd86d58bd57f01a9b40d6d1f4a88a0c069c002b",
      "tree": "93370d4efa1f4eafc0d4dac8242f30b49c6753ef",
      "parents": [
        "58a1a8866049ce16c4cc731421af2db7b1339410"
      ],
      "author": {
        "name": "Meghana H",
        "email": "Meghana.H@arm.com",
        "time": "Thu Apr 30 15:25:17 2026 +0000"
      },
      "committer": {
        "name": "Deepak Kodihalli",
        "email": "deepak.kodihalli.83@gmail.com",
        "time": "Tue Jul 21 03:57:25 2026 +0000"
      },
      "message": "platform-mc: Close CPER file before creating dump\n\nClose the temporary CPER file before creating the\nFaultLog dump entry. This ensures phosphor-debug-collector\nobserves the final CPER file size when it records\nthe dump entry Size property.\n\nWithout this ordering, PLDM-created FaultLog Redfish entries\ncan report AdditionalDataSizeBytes as zero because the\nCPER data may still be buffered in pldmd.\n\nTested:\n\n\u0027\u0027\u0027\nCherry-pick below patch onto phosphor-debug-collector:\nhttps://gerrit.openbmc.org/c/openbmc/phosphor-debug-collector/+/91083\nCherry-pick below patch onto bmcweb:\nhttps://gerrit.openbmc.org/c/openbmc/bmcweb/+/91085\n\nSend a CPER through pldm\n\nroot@phoenix-crb-1-9082C309C448:/var/cper# ls -al\ndrwxr-xr-x    2 root     root             0 Apr 30 08:23 .\ndrwxr-xr-x    1 root     root             0 Apr 30 05:04 ..\n-rw-------    1 root     root           424 Apr 30 08:23 cper-BFgwBK\n\ncurl -k -u root:0penBmc -X GET https://{BMC_IP}/redfish/v1/Managers/bmc/LogServices/FaultLog/Entries/3\n\n{\n  \"@odata.id\": \"/redfish/v1/Managers/bmc/LogServices/FaultLog/Entries/3\",\n  \"@odata.type\": \"#LogEntry.v1_11_0.LogEntry\",\n  \"AdditionalDataSizeBytes\": 424,\n  \"AdditionalDataURI\": \"/redfish/v1/Managers/bmc/LogServices/FaultLog/Entries/3/attachment\",\n  \"Created\": \"2026-04-17T07:07:24.775620+00:00\",\n  \"EntryType\": \"Event\",\n  \"Id\": \"3\",\n  \"Name\": \"FaultLog Dump Entry\"\n}\n\n\u0027\u0027\u0027\n\nChange-Id: I65cf49b4b8342a1f9365463cc6aebe51315f4c6d\nSigned-off-by: Meghana H \u003cMeghana.H@arm.com\u003e\n"
    },
    {
      "commit": "58a1a8866049ce16c4cc731421af2db7b1339410",
      "tree": "9c8ca545f1c6561def8481750ebf02d1ace5649a",
      "parents": [
        "f6d6e01716d13bae1ce460ee00b7966734a9f523"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Thu Jul 16 15:15:07 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Jul 17 15:10:55 2026 -0400"
      },
      "message": "tests: avoid placement new in test files\n\nThe prior commit 842113b5349cd8dcb1bdbcc8d2845449ffe8317f replaced\nplacement new calls with std::start_lifetime_as in production code,\nbut the same pattern remained in a number of test files.  GCC-16\n-Wuninitialized handling of placement new caused these tests to fail\nat runtime with SIGSEGV, assertion failures, or timeouts.\n\nConvert all remaining placement new calls in the test files to\nstd::start_lifetime_as with the same polyfill for GCC-15 compatibility.\n\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\nChange-Id: Id2a87647a232b4332fbfead8cf3e49c8995993cc\n"
    },
    {
      "commit": "f6d6e01716d13bae1ce460ee00b7966734a9f523",
      "tree": "31409f01b0883e0cca17b252844c3d690b86f308",
      "parents": [
        "db7aa157bee691a97de41d409c3d29484bb80e11"
      ],
      "author": {
        "name": "JY Voon",
        "email": "jvoon@nvidia.com",
        "time": "Tue Jul 07 14:34:31 2026 +0900"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Fri Jul 17 05:22:44 2026 +0000"
      },
      "message": "libpldmresponder: guard null host-path handlers\n\npldmd only constructs hostPDRHandler and dbusToPLDMEventHandler when a\nhost EID is configured, but three paths dereference them\nunconditionally, crashing pldmd on hostless platforms:\n\n- pldmPDRRepositoryChgEvent() marks and consumes hostPDRHandler for\n  every PDR repository change event; guard those uses.\n- getStateSensorReadings() reads the sensor cache from\n  dbusToPLDMEventHandler; fall back to an empty cache, so previousState\n  reports PLDM_SENSOR_UNKNOWN as on a first read.\n- The OemIBM constructor wires the OEM handlers into hostPDRHandler;\n  skip the wiring when the handler does not exist.\n\nAdd regression tests for the two responder paths. The new event test\nsurfaced a misaligned uint32_t read of the changeEntry array in\ngetPDRRecordHandles(); copy each entry with memcpy instead.\n\nChange-Id: I5118ff9786254799790c848a68bdde5e6f6f2dfc\nSigned-off-by: JY Voon \u003cjvoon@nvidia.com\u003e\n"
    },
    {
      "commit": "db7aa157bee691a97de41d409c3d29484bb80e11",
      "tree": "a82470c4725efd71341628a1ecd797e63622b727",
      "parents": [
        "cf3ea39983d4bcf139c3ac25173ebebb9f1d72b2"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Tue Jul 14 11:30:25 2026 +0200"
      },
      "committer": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jul 15 11:36:05 2026 +0200"
      },
      "message": "handleRequest use start_lifetime_as consistently\n\nGCC16 returned an error w.r.t. potentially uninitialized data in\n`relayedResponseMsg-\u003epayload[0]` and replacing that with\nstart_lifetime_as does not result in compilation error.\n\n```\n../fw-update/aggregate_update_manager.cpp: In member function ‘virtual pldm::Response pldm::fw_update::AggregateUpdateManager::handleRequest(mctp_eid_t, uint8_t, const pldm_msg*, size_t)’:\n../fw-update/aggregate_update_manager.cpp:25:42: error: ‘*(pldm_msg*)MEM[(struct vector *)response_8(D)].D.366301._M_impl.D.365600._M_start.pldm_msg::payload[0]’ may be used uninitialized [-Werror\u003dmaybe-uninitialized]\n   25 |         if (relayedResponseMsg-\u003epayload[0] !\u003d PLDM_FWUP_COMMAND_NOT_EXPECTED)\n      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n```\n\nAlso improves consistency with how the response is handled.\n\nTested: Inspection only, relying on review since i don\u0027t have pldm\ndevices.\n\nChange-Id: Ic6df829957a239844b42ae97ded2d6400372ccf0\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "cf3ea39983d4bcf139c3ac25173ebebb9f1d72b2",
      "tree": "007c2ee126583a6fb76c9c5b8a0c7031b5fea739",
      "parents": [
        "61584ee490bb22cc51dee837b444ce95eb140e01"
      ],
      "author": {
        "name": "Manjeet Singh",
        "email": "itsmanjeet1998@gmail.com",
        "time": "Tue Jun 30 21:11:10 2026 +0530"
      },
      "committer": {
        "name": "Manjeet Singh",
        "email": "itsmanjeet1998@gmail.com",
        "time": "Fri Jul 10 06:05:08 2026 +0000"
      },
      "message": "fru: bound remote record table parsing\n\nparseFruRecordTable() checked only the minimum FRU table size. It\nthen walked remote record headers and TLVs using attacker-controlled\nfield counts and TLV lengths without checking the remaining buffer.\n\nA malicious PLDM terminus can answer the BMC\u0027s GetFRURecordTable\nrequest with a truncated final TLV. The parser copies bytes past the\nresponse allocation into the parsed FRU value, which may publish\nadjacent heap data on D-Bus or crash pldmd when the read crosses an\nunmapped boundary.\n\nValidate every record header, TLV header and TLV body before access.\nReject malformed tables without returning partially parsed records.\n\nChange-Id: I748b0db88f6e13b3f7b8820e877618c2f477e063\nSigned-off-by: Manjeet Singh \u003citsmanjeet1998@gmail.com\u003e\n"
    },
    {
      "commit": "61584ee490bb22cc51dee837b444ce95eb140e01",
      "tree": "810838ee86c235c8611fa48c0dca7837c6bb31ec",
      "parents": [
        "6e0f32b608ad433242910fb696bfaf4cd9605c7b"
      ],
      "author": {
        "name": "Meghana Vangapandu",
        "email": "meghanav@ami.com",
        "time": "Tue Jul 07 07:03:41 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Fri Jul 10 05:46:16 2026 +0000"
      },
      "message": "host-bmc: remove unused response PDR buffer copy\n\nIn processHostPDRs(), a local buffer responsePDRMsg was\nallocated and filled via memcpy after the first call to\ndecode_get_pdr_resp(), but was never read or used anywhere\nin the function or elsewhere in the codebase.\n\nRemove the dead code to eliminate an unnecessary heap\nallocation and memcpy on every PDR response received\nfrom the host firmware.\n\nNo functional change intended.\n\nTested: meson test -C build (34/34 passed)\n\nChange-Id: I877e435a64c1d62db4b8e91db3ce311098997932\nSigned-off-by: Meghana Vangapandu \u003cmeghanav@ami.com\u003e\n"
    },
    {
      "commit": "6e0f32b608ad433242910fb696bfaf4cd9605c7b",
      "tree": "4d0c6846a1a3130ae1863ef0fdea77f58fd83483",
      "parents": [
        "e489d9f21d92f3f0d4e19ebb2151ffb4728640d5"
      ],
      "author": {
        "name": "Manjeet Singh",
        "email": "itsmanjeet1998@gmail.com",
        "time": "Mon Jun 29 12:21:54 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Jul 09 07:00:00 2026 +0000"
      },
      "message": "oem-ibm: avoid file read range integer overflow\n\nFix IBM OEM file-read range validation to avoid overflowing the\n32-bit offset + length boundary check.\n\nA PLDM peer could issue ReadFile with a valid small offset and a\nlarge length, such as offset\u003d1 and length\u003dUINT32_MAX. The previous\ncheck computed offset + length directly, allowing the sum to wrap and\nskip the clamp logic. In the generic read path this could trigger an\nattempt to allocate a response near 4 GiB, causing std::bad_alloc and\nterminating pldmd.\n\nUse the overflow-safe form length \u003e fileSize - offset after the\nexisting offset \u003e\u003d fileSize validation. This preserves the existing\nclamp-at-EOF behavior while fixing all affected IBM file-read paths,\nincluding generic, DMA, and file-by-type reads.\n\nChange-Id: I774e0a16b9bf855b73b1456cec9a00e93fcc4cad\nSigned-off-by: Manjeet Singh \u003citsmanjeet1998@gmail.com\u003e\n"
    },
    {
      "commit": "e489d9f21d92f3f0d4e19ebb2151ffb4728640d5",
      "tree": "39097a0501b6453a3256aeaec12a45bf6a7696f2",
      "parents": [
        "f14d770180e9a1c8c8a595cc108e66048fea6343"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Tue Jul 07 10:42:25 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Jul 09 06:52:49 2026 +0000"
      },
      "message": "platform-mc: add sensor unit errors\n\nadd sensor units error to metric interface count\n\nChange-Id: Ic72635be6863058ddd393df72b9acb0e7619f3e3\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\n"
    },
    {
      "commit": "f14d770180e9a1c8c8a595cc108e66048fea6343",
      "tree": "4da483843445adfbf50b42ec5229b4e6a6f822a1",
      "parents": [
        "ff951fe075893181161ebbe099ae9df2a7307ab1"
      ],
      "author": {
        "name": "Kyle Hsieh",
        "email": "Kyle.Hsieh@quantatw.com",
        "time": "Thu Apr 16 14:25:22 2026 +0800"
      },
      "committer": {
        "name": "Kyle Hsieh",
        "email": "Kyle.Hsieh@quantatw.com",
        "time": "Thu Jul 09 09:49:52 2026 +0800"
      },
      "message": "fw-update: Create firmware inventory for ImageSetVersion\n\nCurrently, pldmd parses the ActiveComponentImageSetVersionString from\nthe GetFirmwareParameters response but does not create a corresponding\nD-Bus software object for it. It only creates entries for individual\ncomponents.\n\nFor many firmware devices (e.g., Intel E810 NIC), the ImageSetVersion\nrepresents the overall package version which is more readable for users\nthan individual component versions.\n\nThis commit adds a call to createFirmwareEntry using the ImageSetVersion\nbefore iterating through the component parameter table. This ensures the\npackage-level version is visible in the Software Inventory.\n\ngerrit: https://gerrit.openbmc.org/c/openbmc/pldm/+/89351\n\nTested:\n```\nroot@bmc-9082C30605E4:~# busctl tree xyz.openbmc_project.PLDM\n`- /xyz\n  `- /xyz/openbmc_project\n    |- /xyz/openbmc_project/inventory\n    |- /xyz/openbmc_project/metric\n    |- /xyz/openbmc_project/pldm\n    |- /xyz/openbmc_project/sensors\n    `- /xyz/openbmc_project/software\n      |- /xyz/openbmc_project/software/PLDM_Device_Firmware_Device_11_ActiveImageSetVersion_4838\n      |- /xyz/openbmc_project/software/PLDM_Device_Firmware_Device_11_Component_5_3209\n      |- /xyz/openbmc_project/software/PLDM_Device_Firmware_Device_11_Component_6_4836\n      `- /xyz/openbmc_project/software/PLDM_Device_Firmware_Device_11_Component_8_6189\n\nroot@bmc-9082C30605E4:~# busctl introspect xyz.openbmc_project.PLDM /xyz/openbmc_project/software/PLDM_Device_Firmware_Device_11_ActiveImageSetVersion_4838\nNAME                                        TYPE      SIGNATURE RESULT/VALUE                             FLAGS\norg.freedesktop.DBus.Introspectable         interface -         -                                        -\n.Introspect                                 method    -         s                                        -\norg.freedesktop.DBus.Peer                   interface -         -                                        -\n.GetMachineId                               method    -         s                                        -\n.Ping                                       method    -         -                                        -\norg.freedesktop.DBus.Properties             interface -         -                                        -\n.Get                                        method    ss        v                                        -\n.GetAll                                     method    s         a{sv}                                    -\n.Set                                        method    ssv       -                                        -\n.PropertiesChanged                          signal    sa{sv}as  -                                        -\nxyz.openbmc_project.Association.Definitions interface -         -                                        -\n.Associations                               property  a(sss)    1 \"running\" \"ran_on\" \"/xyz/openbmc_pr... emits-change writable\nxyz.openbmc_project.Software.Version        interface -         -                                        -\n.Purpose                                    property  s         \"xyz.openbmc_project.Software.Version... emits-change writable\n.Version                                    property  s         \"4.90 (0x80020F06) \"                     emits-change writable\n\nroot@bmc-9082C30605E4:~# pldmtool fw_update GetFwParams -m 11\n{\n    \"CapabilitiesDuringUpdate\": {\n        \"Component Update Failure Recovery Capability\": \"Device will revert to previous component image upon failure, timeout or cancellation of the transfer.\",\n        \"Component Update Failure Retry Capability\": \" Device can have component updated again without exiting update mode and restarting transfer via RequestUpdate command.\",\n        \"Firmware Device Host Functionality during Firmware Update\": \"Device will not revert to previous component image upon failure, timeout or cancellation of the transfer\",\n        \"Firmware Device Partial Updates\": \"Firmware Device can support a partial update, whereby a package which contains a component image set that is a subset of all components curr\nently residing on the FD, can be transferred.\",\n        \"Firmware Device Update Mode Restrictions\": \"No host OS environment restriction for update mode\"\n    },\n    \"ComponentCount\": 3,\n    \"ActiveComponentImageSetVersionString\": \"4.90 (0x80020F06) \",\n    \"PendingComponentImageSetVersionString\": \"\",\n    \"ComponentParameterEntries\": [\n        {\n            \"ComponentClassification\": \"Firmware\",\n            \"ComponentIdentifier\": 6,\n            \"ComponentClassificationIndex\": 0,\n            \"ActiveComponentComparisonStamp\": 157945606,\n            \"ActiveComponentReleaseDate\": \"\",\n            \"PendingComponentComparisonStamp\": 0,\n            \"PendingComponentReleaseDate\": \"\",\n            \"ComponentActivationMethods\": [\n                \"Self-Contained\",\n                \"DC power cycel\"\n            ],\n            \"CapabilitiesDuringUpdate\": {\n                \"Firmware Device apply state functionality\": \" Firmware Device will execute an operation during the APPLY state which will include migrating the new component image to\nits final non-volatile storage destination.\"\n            },\n            \"ActiveComponentVersionString\": \"096A0F06.0000000D \",\n            \"PendingComponentVersionString\": \"\"\n        },\n        {\n            \"ComponentClassification\": \"Firmware\",\n            \"ComponentIdentifier\": 5,\n            \"ComponentClassificationIndex\": 0,\n            \"ActiveComponentComparisonStamp\": 17766144,\n            \"ActiveComponentReleaseDate\": \"\",\n            \"PendingComponentComparisonStamp\": 0,\n            \"PendingComponentReleaseDate\": \"\",\n            \"ComponentActivationMethods\": [\n                \"Self-Contained\",\n                \"DC power cycel\"\n            ],\n            \"CapabilitiesDuringUpdate\": {\n                \"Firmware Device apply state functionality\": \" Firmware Device will execute an operation during the APPLY state which will include migrating the new component image to\nits final non-volatile storage destination.\"\n            },\n            \"ActiveComponentVersionString\": \"010F1700.0000000D \",\n            \"PendingComponentVersionString\": \"\"\n        },\n        {\n            \"ComponentClassification\": \"Firmware\",\n            \"ComponentIdentifier\": 8,\n            \"ComponentClassificationIndex\": 0,\n            \"ActiveComponentComparisonStamp\": 262148,\n            \"ActiveComponentReleaseDate\": \"\",\n            \"PendingComponentComparisonStamp\": 0,\n            \"PendingComponentReleaseDate\": \"\",\n            \"ComponentActivationMethods\": [\n                \"Self-Contained\",\n                \"DC power cycel\"\n            ],\n            \"CapabilitiesDuringUpdate\": {\n                \"Firmware Device apply state functionality\": \" Firmware Device will execute an operation during the APPLY state which will include migrating the new component image to\nits final non-volatile storage destination.\"\n            },\n            \"ActiveComponentVersionString\": \"00000004.00000004.10000010.00000157.0000 \",\n            \"PendingComponentVersionString\": \"\"\n        }\n    ]\n}\n```\n\nChange-Id: I625f8f71514c21d3551b890525c863e881f25630\nSigned-off-by: Kyle Hsieh \u003cKyle.Hsieh@quantatw.com\u003e\n"
    },
    {
      "commit": "ff951fe075893181161ebbe099ae9df2a7307ab1",
      "tree": "610f15275c3186489b531502afb4fa191f7da140",
      "parents": [
        "87cdbacf51858bb6a3fa8e83027b970cb655fd1f"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Wed Jul 01 14:24:59 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jul 06 10:28:33 2026 +0000"
      },
      "message": "pldmd: fix crash on PLDM loopback request via AF_MCTP\n\nSending a PLDM request to own EID causes the message to loop back to\nthe requester with no mappable TID, returning PLDM_REQUESTER_RECV_FAIL.\nThis incorrectly caused pldmd to exit.\n\nPLDM_REQUESTER_RECV_FAIL is not fatal in the AF_MCTP case. Log a\nwarning and continue instead.\n\nChange-Id: I79d136aa8258a5b3adca47c40fb9cf5cd6d3f911\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\n"
    },
    {
      "commit": "87cdbacf51858bb6a3fa8e83027b970cb655fd1f",
      "tree": "4c46c7c528f8c25bc9ef4bdd7be76f57edfad78e",
      "parents": [
        "957b05115560c0d8ad0ca218666e76428bdf3069"
      ],
      "author": {
        "name": "Chau Ly",
        "email": "chaul@amperecomputing.com",
        "time": "Thu Jun 18 05:52:56 2026 +0000"
      },
      "committer": {
        "name": "ChauLy-Vietnam",
        "email": "chaul@amperecomputing.com",
        "time": "Sun Jul 05 09:39:11 2026 +0000"
      },
      "message": "Migrate to encode_pldm_base_get_tid_resp()\n\nMigrate the codes that use encode_get_tid_resp() to using the newly\nadded encode_pldm_base_get_tid_resp() API as a replacement.\n\nChange-Id: Ie7e48ec36e9d96504d8088dfc8c756311e48beae\nSigned-off-by: Chau Ly \u003cchaul@amperecomputing.com\u003e\n"
    },
    {
      "commit": "957b05115560c0d8ad0ca218666e76428bdf3069",
      "tree": "d8183c8d57bf166112a2d82151b7989138dd2167",
      "parents": [
        "13b4eeb94f25e8314a7a6f4e26cef24788451b05"
      ],
      "author": {
        "name": "Chau Ly",
        "email": "chaul@amperecomputing.com",
        "time": "Thu Jun 18 03:59:26 2026 +0000"
      },
      "committer": {
        "name": "ChauLy-Vietnam",
        "email": "chaul@amperecomputing.com",
        "time": "Sun Jul 05 09:39:11 2026 +0000"
      },
      "message": "Migrate to decode_pldm_base_get_tid_resp()\n\nMigrate the codes that use decode_get_tid_resp() to using the newly\nadded decode_pldm_base_get_tid_resp() API as a replacement.\n\nChange-Id: I76d8488fb91a0dbcf77560de77ae117262900b68\nSigned-off-by: Chau Ly \u003cchaul@amperecomputing.com\u003e\n"
    },
    {
      "commit": "13b4eeb94f25e8314a7a6f4e26cef24788451b05",
      "tree": "19d1d7ac30b28a09154d8ee624a11af87f8f343a",
      "parents": [
        "188900886eb266b781afe4d56458837fa40f669a"
      ],
      "author": {
        "name": "Manojkiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Jun 24 10:31:58 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jun 29 09:02:41 2026 +0000"
      },
      "message": "softoff: Use logical entity type for System Chassis\n\nChange entityType from 45 to 32813 (45 | 0x8000) for TID 2.\nThis targets the logical System Chassis entity instead of the\nphysical one, where bit 15 set indicates a logical entity per\nPLDM specification.\n\nThis makes the configuration more accurate and vendor-neutral,\nas it explicitly targets logical entities rather than relying\non platform-specific physical entity mappings.\n\nChange-Id: I35b4e7cc5e6097fae95090d953815210e043b88f\nSigned-off-by: Manojkiran Eda \u003cmanojkiran.eda@gmail.com\u003e\n"
    },
    {
      "commit": "188900886eb266b781afe4d56458837fa40f669a",
      "tree": "e39af697d1d8eb9c6f4c75c4b3feb199f3c1e7cd",
      "parents": [
        "a9e016136ab43bac7699bb3e819c67b1febcc427"
      ],
      "author": {
        "name": "Manojkiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Jun 24 10:31:46 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jun 29 09:02:41 2026 +0000"
      },
      "message": "softoff: Improve PDR search failure logging\n\nAdd detailed context to error messages when PDR searches fail.\nInclude TID, EntityType, and StateSetId in all error logs to make\ndebugging easier when effecter or sensor PDRs are not found.\n\nThis helps identify which specific PDR lookup failed without needing\nto add additional debug statements.\n\nChange-Id: I4df7a4eb0092c6b859705294aaefdb6d1ad7b12e\nSigned-off-by: Manojkiran Eda \u003cmanojkiran.eda@gmail.com\u003e\n"
    },
    {
      "commit": "a9e016136ab43bac7699bb3e819c67b1febcc427",
      "tree": "f0776ea81bfafaa64cbc4353ffe72f3bff185d73",
      "parents": [
        "4573a3c08f154febb27d4f4fb9ba384c44e766d0"
      ],
      "author": {
        "name": "Ravi Teja",
        "email": "rbailapu@qti.qualcomm.com",
        "time": "Tue Jun 02 16:03:17 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jun 29 08:41:43 2026 +0000"
      },
      "message": "transport: fix mctp_demux handle leak on map_tid failure\n\nCall pldm_transport_mctp_demux_destroy() instead of\npldm_transport_af_mctp_destroy() on map_tid failure to correctly\ncleanup the initialized mctp_demux transport handle.\n\nChange-Id: I1f7de7659b92a58ae280690cb7a779231ae2037e\nSigned-off-by: Ravi Teja \u003crbailapu@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "4573a3c08f154febb27d4f4fb9ba384c44e766d0",
      "tree": "b97d167b375ea071731ae4da0940311144586a90",
      "parents": [
        "4bea0010798bb91a04dd74cfebf06aef7542ec6b"
      ],
      "author": {
        "name": "Ravi Teja",
        "email": "rbailapu@qti.qualcomm.com",
        "time": "Tue Jun 02 15:25:53 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jun 29 08:41:43 2026 +0000"
      },
      "message": "host-pdr: fix entities memory leak in mergeEntityAssociations\n\nFree the entities buffer allocated by\npldm_entity_association_pdr_extract() when pNode is null to avoid memory\nleak.\n\nChange-Id: I6357c19f1efc6c511595a3952ae9f6a83f8b25f7\nSigned-off-by: Ravi Teja \u003crbailapu@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "4bea0010798bb91a04dd74cfebf06aef7542ec6b",
      "tree": "1c7ee70a6d052a7dd772733a0fae4440f9d6ab44",
      "parents": [
        "532f502b4935769ff5324f28abcfc7b7b41f3198"
      ],
      "author": {
        "name": "Ravi Teja",
        "email": "rbailapu@qti.qualcomm.com",
        "time": "Tue Jun 02 14:43:15 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jun 29 08:41:43 2026 +0000"
      },
      "message": "fw-update: fix fd and wd leak on sd_event_add_io failure\n\nCleanup inotify fd and watch descriptor before throwing on\nsd_event_add_io failure.\n\nChange-Id: I9e68d7711337391af37869f4b9d1bf3f44e56c8f\nSigned-off-by: Ravi Teja \u003crbailapu@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "532f502b4935769ff5324f28abcfc7b7b41f3198",
      "tree": "3ce357dd548212c785e3d7144e49374b976233e6",
      "parents": [
        "149dd44a94dffcfb31a500c7c0b9260e82ace33b"
      ],
      "author": {
        "name": "Ravi Teja",
        "email": "rbailapu@qti.qualcomm.com",
        "time": "Tue Jun 02 13:39:37 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon Jun 29 08:41:43 2026 +0000"
      },
      "message": "pldmd: use RAII to manage recvMsg buffer lifetime\n\nReplace manual free() calls with std::unique_ptr RAII wrappers to\nensure the buffer is freed on error paths.\n\nChange-Id: Ic22557d7f68607bdae1be83809b69886803adb48\nSigned-off-by: Ravi Teja \u003crbailapu@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "149dd44a94dffcfb31a500c7c0b9260e82ace33b",
      "tree": "40d93b342ebf5e0af7d4dc54c6ecf4396cc6989d",
      "parents": [
        "5aa58929a04b173829fd2f754c1bf55b48c2b2b9"
      ],
      "author": {
        "name": "Pavithra Barithaya",
        "email": "pavithrabarithaya07@gmail.com",
        "time": "Tue Dec 02 14:20:18 2025 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Tue Jun 23 05:13:33 2026 +0000"
      },
      "message": "softoff: Add a README file\n\nDescribe the softoff code organization in the file\n\nChange-Id: I01590b8dcacc2fcfa6d264d879f31488265340d7\nSigned-off-by: Pavithra Barithaya \u003cpavithrabarithaya07@gmail.com\u003e\n"
    },
    {
      "commit": "5aa58929a04b173829fd2f754c1bf55b48c2b2b9",
      "tree": "c21c6f5ca9144def5cc9641bbae22d8da6806cd9",
      "parents": [
        "1f2d4c09b0d0edb5d2fbbd4cd79c913c2b026d6f"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Jun 19 07:51:26 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Jun 19 07:51:26 2026 -0400"
      },
      "message": "sdbusplus: use shorter type aliases\n\nThe sdbusplus headers provide shortened aliases for many types.\nSwitch to using them to provide better code clarity and shorter\nlines.  Possible replacements are for:\n  * exception_t\n  * manager_t\n  * match\n  * match_rules\n  * message_t\n  * object_t\n  * slot_t\n\nChange-Id: I7d0db69ba673705f0ec03242c445693b747801bd\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "1f2d4c09b0d0edb5d2fbbd4cd79c913c2b026d6f",
      "tree": "0096936f14f7ab0ffc79bbabf65e0d829b3bcd9e",
      "parents": [
        "f759a5a49d3d1e7b2a64381188705ff605e5bf3a"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed Jun 17 05:31:40 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed Jun 17 05:31:40 2026 -0400"
      },
      "message": "sdbusplus: use shorter type aliases\n\nThe sdbusplus headers provide shortened aliases for many types.\nSwitch to using them to provide better code clarity and shorter\nlines.  Possible replacements are for:\n  * bus_t\n  * exception_t\n  * manager_t\n  * match_t\n  * message_t\n  * object_t\n  * slot_t\n  * object_path\n\nChange-Id: I2c504b36847ed4be5786271c131132df89610230\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "f759a5a49d3d1e7b2a64381188705ff605e5bf3a",
      "tree": "b241205b18030d7947ab7804eedf5d21f8f0d90c",
      "parents": [
        "d1ba6fccd7bc7213c6cf52a96eafddc6e9b4c00e"
      ],
      "author": {
        "name": "Unive Tien",
        "email": "unive.tien.wiwynn@gmail.com",
        "time": "Thu Oct 30 08:19:56 2025 +0000"
      },
      "committer": {
        "name": "Unive Tien",
        "email": "unive.tien.wiwynn@gmail.com",
        "time": "Mon Jun 15 03:04:30 2026 +0000"
      },
      "message": "fw_update: target specific startUpdate implementation\n\nDescription:\nThis commit implements the `startUpdate` handling of the target specific\nupdate flow [1], which introduced `ItemUpdateManager` for handling\ntarget specific updates.\n\nMotivation:\nWe have introduced the `FirmwareInventory`/`FirmwareInventoryManager`\nclasses to manage D-Bus interfaces for firmware update, After that, we\nwould like to implement the `StartUpdate` method for `FirmwareInventory`\nproperly for the update process implementation, which\n`AggregateUpdateManager` will help route the command to the specific\nupdate sessions.\n\nTest results:\n- Successful FD item Firmware update performed on Yosemite4, by manually\n  triggering the `StartUpdate` method call on the\n  `xyz.openbmc_project.Software.Update` interface.\n- Successful FD item Firmware update performed on Yosemite4, by using\n  Redfish API to trigger the update.\n  (main stream version, no patch needed)\n- Successful firmware update performed on Yosemite4 via the dir inotify\n  based flow.\n- Successful firmware update performed on Yosemite4 via the multipart\n  image flow.\n- Successful firmware update performed on Yosemite4 after a previous\n  failed update attempt.\n-\n\n[1]: https://github.com/openbmc/docs/blob/master/designs/code-update.md\n\nChange-Id: I724f0987eb882a1b4e6bce8c209b319c927689e9\nSigned-off-by: Unive Tien \u003cunive.tien.wiwynn@gmail.com\u003e\n"
    },
    {
      "commit": "d1ba6fccd7bc7213c6cf52a96eafddc6e9b4c00e",
      "tree": "be66640af80456f41cbf2fa4407bf9c05a07e023",
      "parents": [
        "19ac8aa3b3e1135813f08c08e86b745d31305727"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jun 02 00:26:06 2026 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Thu Jun 11 04:14:12 2026 +0000"
      },
      "message": "libpldmresponder: Migrate to encode_pldm_base_get_pldm_types_resp()\n\nencode_get_types_resp() has been deprecated in libpldm. Switch to its\nreplacement.\n\nChange-Id: I76b16639701a50157811ebf8437b47738beb758e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "19ac8aa3b3e1135813f08c08e86b745d31305727",
      "tree": "ca496add720c4cab2165a9948f9fe08bb8c22dc8",
      "parents": [
        "b36ba289f99b36c75b30301adc39ba0f82374785"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Mon Jun 01 20:54:39 2026 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Thu Jun 11 04:14:12 2026 +0000"
      },
      "message": "platform-mc: Migrate to decode_pldm_base_get_pldm_types_resp()\n\ndecode_get_types_resp() has been deprecated in libpldm. Switch to its\nreplacement.\n\nChange-Id: If6300bca0ddac5c6bd857e05a262fe34ac3e0ce2\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "b36ba289f99b36c75b30301adc39ba0f82374785",
      "tree": "6c517a5992f5d948a6e9fde6e58254f42777f6f8",
      "parents": [
        "608c67050851df85ba85fa425970ff5d3b48bad5"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Feb 17 12:55:13 2026 -0500"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Tue Jun 09 14:05:32 2026 +0000"
      },
      "message": "fix modernize-use-override\n\nThis is a clang-tidy check, but modernize-use-override is not added to\nthe configuration as it does not yet exist in the reference tidy\nconfiguration.\n\nTested: Ran unit tests.\nChange-Id: I9f8015ffaba52cb1376ba7aa48914cd1ff2b80f8\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "608c67050851df85ba85fa425970ff5d3b48bad5",
      "tree": "1ff6374ccfab1ce3a35fb5c1da72463b0e6e6360",
      "parents": [
        "bee3df7fe496049d29960c7517955660a1495659"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri May 29 08:26:23 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri May 29 08:26:23 2026 -0400"
      },
      "message": "CLI11: simplify CLI11.wrap\n\nWe no longer need a `[provide]` statement and it ends up causing a\nmeson warning:\n\n```\nWARNING: Variable \u0027CLI11_dep\u0027 in the subproject \u0027subprojects/CLI11\u0027 is not found\n```\n\nThis is no longer needed because CLI11 has an explicit dependency\noverride statement in the project meson.build.\n\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\nChange-Id: I4e896726cf7cd1a3b652cbd69cd0dbdb5865a5e2\n"
    },
    {
      "commit": "bee3df7fe496049d29960c7517955660a1495659",
      "tree": "1c8472c2521db8d0e45a99853472c74591d49da8",
      "parents": [
        "842113b5349cd8dcb1bdbcc8d2845449ffe8317f"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri May 29 07:29:30 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri May 29 07:30:47 2026 -0400"
      },
      "message": "CLI11: disable tests\n\nAs of CLI11 commit cf8edaa [1], CLI11 no longer auto-detects if it is\nbuilt as a subproject to disable its tests.  When we build it as a\nsubproject we end up with compile errors, due to our stricter compile\nwarning settings. Explicitly disable the test option on the subproject\nin order to successfully build in meson-wrapfile mode.\n\n[1]: https://github.com/CLIUtils/CLI11/commit/cf8edaa020cfd6769f713a18d93a7b117166e3df\n\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\nChange-Id: I9cbf5e07eb678dee76e6c9b87802ed4d4d62a717\n"
    },
    {
      "commit": "842113b5349cd8dcb1bdbcc8d2845449ffe8317f",
      "tree": "0edf4f11640f29cb0dd916ef7b13a8c9677f9083",
      "parents": [
        "fd66378f1ed7458b1f27372e36d7d130e20d6711"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Sat May 23 21:53:56 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed May 27 01:00:31 2026 -0400"
      },
      "message": "avoid placement new\n\nThe placement new pattern used throughout these files was flagged by\nGCC-16 with -Wuninitialized and -Wmaybe-uninitialized.  Placement new\ndoes, technically, result in an uninitialized value even though the\nintent was to cast the pointer onto existing storage.  Using\n`start_lifetime_as` instead better expresses the intent and avoid the\nGCC-16 warnings.\n\nGCC-15 doesn\u0027t provide `std::start_lifetime_as` yet, so provide it\nin a polyfill for backwards compatibility.\n\nThere are a large number of `reinterpret_cast` calls already done in\nthis repository that likely should be converted to `start_lifetime_as`\nto avoid undefined-behavior in later versions of GCC.\n\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\nChange-Id: I227764f1191bbc70105200a703106c8d21e5e5eb\n"
    },
    {
      "commit": "fd66378f1ed7458b1f27372e36d7d130e20d6711",
      "tree": "0c74279da8d112eaaaa7b8e1ce5b39e55bcd2127",
      "parents": [
        "b04aad1a7af957f703addde2d53b8dff7531ef79"
      ],
      "author": {
        "name": "Frank Chen",
        "email": "FrankChen4@quantatw.com",
        "time": "Tue Apr 28 20:44:03 2026 +0800"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed May 27 02:12:49 2026 +0000"
      },
      "message": "oem-meta: santabarbara: add handler for asic event logs from rainbow MMC\n\nAdd support for decoding the event logs emitted by the Rainbow MMC.\n\nTested-On: santabarbara\n```\nroot@bmc:~# mfg-tool log-display 2\u003e/dev/null\n{\n    ...\n    \"97\": {\n        \"additional_data\": {\n            \"FAILURE_DATA\": \"RAINBOW_BOOTSTRAP_SET_AFTER_PWR_EN - [13 3C]\",\n            \"POWER_RAIL\": \"/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/bootstrap_set_after_pwr_en\",\n            \"_CODE_FILE\": \"/usr/src/debug/pldm/1.0+git/oem/meta/libpldmresponder/file_io_type_event_log.cpp\",\n            \"_CODE_FUNC\": \"void pldm::responder::oem_meta::record::commit(const std::string\u0026, pldm::responder::oem_meta::EventAssert, const std::string\u0026) [with const char* TypeLabel \u003d (\u0026 label); AssertType \u003d sdbusplus::error::xyz::openbmc_project::state::Power::PowerRailFault; DeassertType \u003d sdbusplus::event::xyz::openbmc_project::state::Power::PowerRailFaultRecovered; std::string \u003d std::__cxx11::basic_string\u003cchar\u003e]\",\n            \"_CODE_LINE\": \"199\",\n            \"_PID\": \"1526\"\n        },\n        \"event_id\": \"\",\n        \"message\": \"xyz.openbmc_project.State.Power.PowerRailFault\",\n        \"redfish\": {\n            \"args\": [\n                \"/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/bootstrap_set_after_pwr_en\"\n            ],\n            \"id\": \"OpenBMC_StatePower.PowerRailFault\",\n            \"message\": \"A fault has been detected on power rail \u0027/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/bootstrap_set_after_pwr_en\u0027.\"\n        },\n        \"resolution\": \"\",\n        \"resolved\": false,\n        \"severity\": \"xyz.openbmc_project.Logging.Entry.Level.Error\",\n        \"timestamp\": \"2026-04-28T12:35:39.488000000Z\",\n        \"updated_timestamp\": \"2026-04-28T12:35:39.488000000Z\"\n    }\n}\n\n```\n\nChange-Id: I1a2c1287b85fe9e928fcf5c21ab6fc098b16d56a\nSigned-off-by: Frank Chen \u003cFrankChen4@quantatw.com\u003e\n"
    },
    {
      "commit": "b04aad1a7af957f703addde2d53b8dff7531ef79",
      "tree": "b1af0765c82036a1ba12c3771160c688689baf8f",
      "parents": [
        "a36d51fce28d6cdae168ea0f8b45e4c2fb415b22"
      ],
      "author": {
        "name": "Eric Yang",
        "email": "eric.yang.wiwynn@gmail.com",
        "time": "Tue May 19 08:59:59 2026 +0000"
      },
      "committer": {
        "name": "Eric Yang",
        "email": "eric.yang.wiwynn@gmail.com",
        "time": "Wed May 20 04:07:11 2026 +0000"
      },
      "message": "platform-mc: Fix null deref in initTerminus\n\nCommit [1] changed initTerminus() to snapshot TIDs before iterating, but\nthe loop still looks up each terminus by TID using operator[]. If a\nterminus is removed between iterations, operator[] silently inserts a\nnull entry instead of failing, causing a null pointer dereference on the\nnext access.\n\nAdd a contains() guard before the lookup so that removed TIDs are\nskipped, consistent with the existing guards after each co_await.\n\nTested:\nOn a Yosemite 4 platform, repeated chassis power cycles trigger the\nrace. With the fix applied and a temporary log confirming the guard\nfires, initTerminus completes without crash.\n\nReference:\n[1] https://gerrit.openbmc.org/c/openbmc/pldm/+/89709\n\nChange-Id: I948d78bfd6087ac2496489752a3291ce5f34eb68\nSigned-off-by: Eric Yang \u003ceric.yang.wiwynn@gmail.com\u003e\n"
    },
    {
      "commit": "a36d51fce28d6cdae168ea0f8b45e4c2fb415b22",
      "tree": "2e8b13c4f10d4ebd37c2d51c4f7bdfe55d3761a0",
      "parents": [
        "3cc5de4fed9f5173d3c335861e7ffe51d73596a1"
      ],
      "author": {
        "name": "Unive Tien",
        "email": "unive.tien.wiwynn@gmail.com",
        "time": "Wed May 14 09:13:50 2025 +0800"
      },
      "committer": {
        "name": "carter.chen.wiwynn",
        "email": "carter.chen.wiwynn@gmail.com",
        "time": "Wed May 20 03:28:32 2026 +0000"
      },
      "message": "tools: pldm_fwup_pkg_creator.py: Add more DSP0267 revisions support\n\nThis commit adds support for DSP0267 v1.1.0 ~ 1.3.0 in\n`pldm_fwup_pkg_creator.py`, which includes:\n- More types of the device descriptors\n- Reference manifest Data field of the device/downstream device\n- Downstream device identification area\n- Package payload checksum\n- Component opaque data of the component image info area\n- Added metadata example JSON for multiple PLDM specification versions\n  (v1.0.0 ~ v1.3.0)\n\nTested:\n- Successfully generated a firmware package based on DSP0267 v1.3.0.\n- Successfully flashed the firmware to the devices based on unmerged\n  pldm commits:\n - #80194 [1]\n\n[1]: https://gerrit.openbmc.org/c/openbmc/pldm/+/80194\n\nChange-Id: Ia795888980a1c6dfd0cc0bc5748a4fd8088da7c4\nSigned-off-by: Unive Tien \u003cunive.tien.wiwynn@gmail.com\u003e\nSigned-off-by: Carter Chen \u003ccarter.chen.wiwynn@gmail.com\u003e\n"
    },
    {
      "commit": "3cc5de4fed9f5173d3c335861e7ffe51d73596a1",
      "tree": "28cc033a7cbcdc84792b59a15128dd8d3d19f757",
      "parents": [
        "fe62dde9fe689bd3d0b62e73f75579b48871766c"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Mar 10 10:35:02 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon May 18 08:24:47 2026 +0000"
      },
      "message": "make constructor explicit\n\nSingle argument constructors should be explicit to avoid undesired\nimplicit conversions.\n\nChange-Id: I453aa42554c5ae4e00f562afb99ba438b0bf5a43\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "fe62dde9fe689bd3d0b62e73f75579b48871766c",
      "tree": "90611be077d1177e44a386a2bb2805b1d8d1802e",
      "parents": [
        "611c4337bbfd80a5c2660105aba1067ea3cb1144"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Fri May 01 10:12:04 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon May 18 08:23:15 2026 +0000"
      },
      "message": "pass by const reference\n\nFix pass by non const reference function arguments that are not\nmodified.\n\nChange-Id: I8d2fc8cc160967ce0b6f2dc077b83dd281ebea22\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "611c4337bbfd80a5c2660105aba1067ea3cb1144",
      "tree": "c916569d643c00378f1c9182a843e0432064d172",
      "parents": [
        "7656b6575447d80c46fbd08d367dd516f350ba98"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Wed Mar 25 14:44:33 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Mon May 18 08:17:52 2026 +0000"
      },
      "message": "pldmtool: fix GetPDR loop to continue on multipart transfers\n\nWhen an endpoint sends a multipart response, pldmtool is expected to\nrequest all subsequent parts until the transfer is complete. However,\nwhile retrieving the first PDR, if recordHandle is 0, pldmtool\nprematurely exits the loop after receiving only the first multipart\nresponse. As a result, the remaining parts of the multipart response are\nnever requested.\n\nChange-Id: I332a3e1aefae608c5d6b4a156d54fa52794edb60\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\n"
    },
    {
      "commit": "7656b6575447d80c46fbd08d367dd516f350ba98",
      "tree": "115f407a02ddaa4cd24eafa4824381ac7c3952e8",
      "parents": [
        "19f98f3e0e632effb14a2118b4fc1f142be595f1"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Wed Feb 18 14:41:35 2026 -0500"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Fri May 15 09:29:57 2026 +0000"
      },
      "message": "fix cppcoreguidelines-init-variables\n\nAccidental use of uninitialized variables leads to undefined behavior.\nPrevent that by initializing variables.\n\nThis is a clang-tidy check, but cppcoreguidelines-init-variables is not\nadded to the configuration as it does not yet exist in the reference\ntidy configuration.\n\nTested: Ran unit tests.\nChange-Id: I170b7d7909b2c8f74763ee7317a66ce1eda36165\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "19f98f3e0e632effb14a2118b4fc1f142be595f1",
      "tree": "4f928342000df7d5ab8b7ed9bee6e12101bce69a",
      "parents": [
        "dc498d4625f295270d1f5122732dbfde2c0b42ab"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Thu Apr 30 16:10:18 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Fri May 15 09:08:13 2026 +0000"
      },
      "message": "remove using namespace at global scope\n\nAvoid using namespace at global scope.  After removing a couple fix ups\nare required.\n\nChange-Id: If7decc9911d488b2614b8d10169ee76c96701a0d\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "dc498d4625f295270d1f5122732dbfde2c0b42ab",
      "tree": "067c01377629d188eba5e251910fae83a4ddf658",
      "parents": [
        "04430fb4c5449b4a5f9a2f94b5d6a6137bfd51e8"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Fri May 08 11:06:01 2026 -0400"
      },
      "committer": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Fri May 08 11:17:24 2026 -0400"
      },
      "message": "fix another readability-make-member-function-const\n\nMissed one.\n\nFixes: 4b8c540ef7d8be448bf7ece8e75595045abbe0fd\nTested: Ran unit tests\nChange-Id: I82f1b025a79b9516ba306537038d9f11846a144c\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "04430fb4c5449b4a5f9a2f94b5d6a6137bfd51e8",
      "tree": "9741407e7b3f5c417de4f3e773a915cd7b84957a",
      "parents": [
        "4b8c540ef7d8be448bf7ece8e75595045abbe0fd"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Mon Apr 06 15:08:18 2026 +0530"
      },
      "committer": {
        "name": "Brad Bishop",
        "email": "bradleyb@fuzziesquirrel.com",
        "time": "Fri May 08 14:11:02 2026 +0000"
      },
      "message": "platform-mc: initialize numeric sensor values to NaN\n\nCurrently, sensor values are not initialized during D-Bus interface\ncreation, so they default to 0. This creates a window between sensor\ninitialization and the first GetSensorReading response where the value\ndoes not reflect the actual sensor reading. Users seeing 0 cannot\ndistinguish it from a true zero reading.\n\nInitialize both the Numeric Sensor and Compact Numeric Sensor values\nto NaN at interface creation to clearly indicate an unread sensor state.\n\nChange-Id: I47a0b49a528c4522d059bc51f09fd778f8e63059\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\nCo-developed-by: Arun P. Mohanan \u003carun.p.m@intel.com\u003e\n"
    },
    {
      "commit": "4b8c540ef7d8be448bf7ece8e75595045abbe0fd",
      "tree": "45308438a68ce145f12735fb4ad58725e7704d3b",
      "parents": [
        "6470a9b1120ab931802d9211d29d497f8903281c"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Wed May 06 10:24:35 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Fri May 08 05:40:34 2026 +0000"
      },
      "message": "fix readability-make-member-function-const\n\nA number of getter methods can be made const.  This is a clang-tidy\ncheck, but readability-make-member-function-const is not added to the\nconfiguration as it does not yet exist in the reference tidy\nconfiguration.\n\nTested: Ran unit tests\nChange-Id: Ib2a094b72611c7adce74042ada3796ab4c0c369e\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "6470a9b1120ab931802d9211d29d497f8903281c",
      "tree": "98e65b2d4efcccfd529d782382a838e81f40b9d8",
      "parents": [
        "98c08167fad49d508bec0984535ec1814151b313"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Wed Apr 15 13:27:06 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Fri May 08 05:32:03 2026 +0000"
      },
      "message": "transport: specialize throw message per transport backend\n\nSpecialize the error message per transport backend so consumers can\nquickly identify which transport layer failed to initialize.\n\nWithout this change, a generic \"Cannot initialize transport layer\" error\nis thrown regardless of which transport backend pldmd was built with.\nConsumers have no way to distinguish whether the issue is a missing\nmctp-demux service, a missing af-mctp service, or pldmd being built with\nthe wrong transport support.\n\nChange-Id: I003785f05c7c492c040fa4df4a46bdf59a087081\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\n"
    },
    {
      "commit": "98c08167fad49d508bec0984535ec1814151b313",
      "tree": "02a9353ee21cb8f49bcbbac172a4cacf5b23df59",
      "parents": [
        "e6b8fd16c289a81f2919bc5aa3ddf0e5a29af1e0"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Fri May 01 08:47:04 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Fri May 08 05:30:24 2026 +0000"
      },
      "message": "oem: ampere: remove unused arguments\n\nRemove a bunch of unused arguments to the OEM handler.\n\nChange-Id: Id74bc5e8a438d45ea9e1e63056c687332f2165b7\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "e6b8fd16c289a81f2919bc5aa3ddf0e5a29af1e0",
      "tree": "953de5d69658544fbbb73c28c3ac5c5514a887a8",
      "parents": [
        "5ce8fede0c83594083ec3ceba224e669ab89e189"
      ],
      "author": {
        "name": "Gary Beihl",
        "email": "garybeihl@microsoft.com",
        "time": "Wed Apr 08 20:20:39 2026 -0400"
      },
      "committer": {
        "name": "Deepak Kodihalli",
        "email": "deepak.kodihalli.83@gmail.com",
        "time": "Thu May 07 16:22:29 2026 +0000"
      },
      "message": "platform-mc: Add entity-type-specific D-Bus inventory interfaces\n\nPldmEntityReq unconditionally inherits Inventory.Item.Board\nregardless of the actual PLDM entity type. A GPU terminus therefore\nexposes an Inventory.Item.Board interface, making it\nindistinguishable from an actual board when bmcweb enumerates the\nRedfish Chassis collection via the object mapper.\n\nbmcweb\u0027s Chassis aggregation queries the mapper for objects\nimplementing specific Inventory.Item.* interfaces, and emits the\ncorresponding Redfish @odata.type (Chassis, Accelerator, Processor,\netc.) based on which interface is found. Today, all PLDM termini\nshow up as generic Board because that is the only interface\nPldmEntityReq implements, regardless of what the device actually\nis.\n\nRefactor PldmEntityReq into a class template parameterized by the\nsdbusplus Item server type, with a PldmEntityBase abstract base\nproviding the property setters via the Decorator interfaces\n(Asset, AssetTag, Revision, Compatible). A createPldmEntity()\nfactory function selects the correct template instantiation based\non the PLDM entity type reported by the Entity Auxiliary Names\nPDR:\n\n  System Chassis      -\u003e Inventory.Item.Chassis\n  Processor           -\u003e Inventory.Item.Cpu\n  Memory Module       -\u003e Inventory.Item.Dimm\n  Fan                 -\u003e Inventory.Item.Fan\n  Power Supply        -\u003e Inventory.Item.PowerSupply\n  GPU / Accelerator   -\u003e Inventory.Item.Accelerator\n  Board / SysBoard / Card / default -\u003e Inventory.Item.Board\n\nThis change deliberately does NOT touch the D-Bus object path\nconvention. Per OpenBMC conventions (as followed by entity-manager\nand other services), D-Bus object paths are opaque identifiers\nand should not be parsed or treated as semantic by consumers.\nAll meaning is carried by the interfaces the object implements,\nwhich is exactly what this change corrects.\n\nThe existing /system/board/\u003cname\u003e path prefix is a historical\nnamespace label matching entity-manager\u0027s convention, not a type\nclaim about the underlying device. A GPU terminus after this\nchange implements Inventory.Item.Accelerator while living at\n/system/board/GPU0, which looks odd in busctl tree but is\ncorrect by the established convention.\n\nTested: Unit test createPldmEntityTest exercises all 10 entity\ntype mappings (System Chassis, Processor, Memory Module, Fan,\nPower Supply, GPU, Accelerator, Board, SysBoard, Card) plus\nunknown-type fallback, verifying each produces a non-null entity\nwith working property setters through the PldmEntityBase\nabstract interface. Docker CI passes (format, build, all unit\ntests, 50.6% line coverage). End-to-end on Renode evb-ast2600\nwith PldmFirmwareDevice (entity type 152/GPU) over MCTP serial\nconfirms the terminus object at /xyz/openbmc_project/inventory/\nsystem/board/GPU0 implements Inventory.Item.Accelerator (Robot\nFramework test ASPEED_PLDM_Inventory: 2/2 passed).\n\nPS7 review feedback (Brad Bishop):\n  - Default-construct the move ctor/assignment for PldmEntityBase\n    and PldmEntityReq instead of deleting them. Class users should\n    be in control of ownership semantics rather than getting the\n    deleted-by-default behavior baked in by the inventory layer.\n  - Rename the lowercase server-type aliases to CamelCase\n    (assetserver -\u003e AssetServer, etc.) per OpenBMC style.\n\nChange-Id: Ia143edef5083a58dbe65864e63f7ede37e5e7594\nSigned-off-by: Gary Beihl \u003cgarybeihl@microsoft.com\u003e\n"
    },
    {
      "commit": "5ce8fede0c83594083ec3ceba224e669ab89e189",
      "tree": "3986c8a203209ec5a155ae4e67bc8f5f4967b04f",
      "parents": [
        "2627b81aa7bf5a1970e456c7da592e0a78c9962a"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Fri May 01 10:48:05 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu May 07 11:46:19 2026 +0000"
      },
      "message": "replace cpp defines with constexpr\n\nChange-Id: I6b00d5e4088ff1ebd820b09bc201bcbffcfd5b97\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "2627b81aa7bf5a1970e456c7da592e0a78c9962a",
      "tree": "f73594b24d4d25caf590fb421e4f2a3f850f2a81",
      "parents": [
        "c0864d4921974cbfa30b0e9ce2e9cc39c5b87e64"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Apr 28 17:15:33 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu May 07 11:46:19 2026 +0000"
      },
      "message": "remove unused using namespace\n\nThis has no effect.\n\nChange-Id: Ie7e6f7d97edfb5ddae70d045b2277a1df95ceaaf\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "c0864d4921974cbfa30b0e9ce2e9cc39c5b87e64",
      "tree": "c90f7f14ca80dabfd4790bfbdfa2212e99acc1e5",
      "parents": [
        "2d4f40f52189bf42d6cacadc463956fa12c5eb53"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Mar 10 10:33:37 2026 -0400"
      },
      "committer": {
        "name": "Deepak Kodihalli",
        "email": "deepak.kodihalli.83@gmail.com",
        "time": "Wed May 06 09:29:36 2026 +0000"
      },
      "message": "remove const from move constructors\n\nChange-Id: Ia47533c50c1c06cae19b8459b3671fb5a91b0a01\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "2d4f40f52189bf42d6cacadc463956fa12c5eb53",
      "tree": "a5101c0b5624abf89c0e946bf091ef14c7ab0d35",
      "parents": [
        "e098cd8747814ff36cc3108c8efb05ec7bfa4a7d"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Thu Apr 30 14:05:35 2026 -0400"
      },
      "committer": {
        "name": "Deepak Kodihalli",
        "email": "deepak.kodihalli.83@gmail.com",
        "time": "Wed May 06 09:29:24 2026 +0000"
      },
      "message": "return bool by value\n\nTemporaries can be bound to const references but this isn\u0027t useful here.\nReturn the value normally.\n\nChange-Id: I12e4f29e1efa34dc77cc18179873b4e57c6e8080\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "e098cd8747814ff36cc3108c8efb05ec7bfa4a7d",
      "tree": "93b49a382fed048d8141689817535187db1eb2ed",
      "parents": [
        "bd3489c784dc027f41c17a8852e4e4246f7a4b7a"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Thu Apr 16 15:31:02 2026 +0530"
      },
      "committer": {
        "name": "Deepak Kodihalli",
        "email": "deepak.kodihalli.83@gmail.com",
        "time": "Wed May 06 09:29:10 2026 +0000"
      },
      "message": "pldmtool: SetStateEffecter: size request buffer by effecterCount\n\nUse PLDM_SET_STATE_EFFECTER_STATES_MIN_REQ_BYTES as the base and add\n(effecterCount - 1) * sizeof(set_effecter_state_field) per additional\neffecter, so the buffer exactly fits the request per DSP0248 v1.3.0\ntable 52.\n\nChange-Id: Idb67a16a6db716ee259183694bc6d4d561668486\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\nCo-developed-by: Arun P. Mohanan \u003carun.p.m@intel.com\u003e\n"
    },
    {
      "commit": "bd3489c784dc027f41c17a8852e4e4246f7a4b7a",
      "tree": "8f14cffcfbc5c29aed29353c8a860f1caa2d7c3c",
      "parents": [
        "b4b7e19398ef9acb2ad92cbecdeec79efcb6d611"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Fri May 01 10:31:40 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed May 06 08:31:04 2026 +0000"
      },
      "message": "build: fix build failure with fw-update-pkg-inotify\n\nThe fw update tests fail to build with this option enabled.\n\nChange-Id: I9749e11660cee464044c1f667c07bd518b81fa60\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "b4b7e19398ef9acb2ad92cbecdeec79efcb6d611",
      "tree": "733cb7a9f814f9f4d1e236b4410c032b749a85dd",
      "parents": [
        "1c4e25a78ed955dcdb6f68eb7e0c98444360133d"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Wed Apr 29 11:34:21 2026 -0400"
      },
      "committer": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Fri May 01 10:18:24 2026 -0400"
      },
      "message": "remove commented out code\n\nChange-Id: Icf764a5f98b15807325ea24781b5e54890e6ac1d\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "1c4e25a78ed955dcdb6f68eb7e0c98444360133d",
      "tree": "c0ba670205c8f9a2a3f0a5f0f064915633000ee9",
      "parents": [
        "2da8acb495749626ce501eba2ae0b336d5248efb"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Wed Mar 04 11:26:31 2026 -0500"
      },
      "committer": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Thu Apr 30 13:33:56 2026 +0000"
      },
      "message": "pldmd: collapse the object managers\n\nsdbusplus object managers just hang out on the stack for the duration of\nthe process, doing their work in the background.  They don\u0027t need to be\nindividually named because they aren\u0027t interacted with in any way.\n\nCondense all the OMs into a single array for a minor readability\nimprovement.\n\nTested: Inspection only.\nChange-Id: Ifbd72a4e654310eaacef03522aa919b5f781ff90\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "2da8acb495749626ce501eba2ae0b336d5248efb",
      "tree": "33ef5c0bd7a34f864a0cc36b8d1672fc6e8eab51",
      "parents": [
        "320cf8bd968210ad0364c50b45f2e31bd44e01be"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Tue Mar 24 13:19:12 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Apr 30 12:08:53 2026 +0000"
      },
      "message": "platform-mc: fix double header subtraction in getFRURecordTable\n\nThe responseLen returned by sendRecvPldmMsg is already payload-only.\nSubtracting sizeof(pldm_msg_hdr) again in getFRURecordTable caused the\nlast 3 bytes of the FRU record table data to be silently truncated.\n\nRemove the redundant sizeof(pldm_msg_hdr) subtraction to match the\nconvention used by all other decode calls in platform_manager.cpp.\n\nFixes: b6d3943 (\"platform-mc: discovery FRU data from terminus\")\nChange-Id: I748bc5993f9aa66e11f1ee699478ad1fd3558bda\nCo-developed-by: Arun P. Mohanan \u003carun.p.m@intel.com\u003e\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\n"
    },
    {
      "commit": "320cf8bd968210ad0364c50b45f2e31bd44e01be",
      "tree": "2aeabdab3a297e98160fe60a7f0c0c8bc3a3e310",
      "parents": [
        "14457704e4fb3b4374cb61373c245a87d685f7a4"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Tue Apr 28 10:50:22 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Apr 30 12:07:54 2026 +0000"
      },
      "message": "platform-mc: fix pldm crash due to  use-after-free on terminus\n\ninitTerminus() and configEventReceiver() iterate over or hold\nreferences into the termini map while suspending at co_await points.\nA concurrent removeMctpTerminus() call can erase map entries during\nsuspension, invalidating iterators and dangling references.\n\nFix by:\n- Snapshotting TIDs into a vector before iterating so the loop is\n  not affected by map mutations.\n- Taking a local shared_ptr copy of the terminus so the Terminus\n  object stays alive even if the map entry is erased while suspended.\n- Adding termini.contains(tid) guards after each co_await suspension\n  point to skip further processing when a terminus is removed.\n\nChange-Id: I3fa6dfbd0c0b077381bfa5429c531c856de79919\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\nCo-developed-by: Arun P. Mohanan \u003carun.p.m@intel.com\u003e\n"
    },
    {
      "commit": "14457704e4fb3b4374cb61373c245a87d685f7a4",
      "tree": "122ad677a9858ed3e1493a04cb857c695fc0d998",
      "parents": [
        "f6a2723d3a26aa3a616f9ca0d2492af7a244371b"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Apr 28 12:47:02 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Apr 30 12:06:56 2026 +0000"
      },
      "message": "remove unused headers\n\nRemove unused-headers as reported by the clangd LSP.\n\nChange-Id: I8fc5f355b8022e93cbfe0386d2277687494e3638\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "f6a2723d3a26aa3a616f9ca0d2492af7a244371b",
      "tree": "a26c2b0973f99bbcf3f12ff9b8349ecd84bea6ac",
      "parents": [
        "e6b0babcf8687a9ce113f34284262cd1402a03ca"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Apr 28 14:48:16 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Apr 30 12:06:56 2026 +0000"
      },
      "message": "fully qualify pdr namespace\n\nevent_sensor.hpp sometimes fails to build with:\n\n```\nerror: ‘ContainerID’ in namespace ‘pldm::responder::pdr’ does not name a type\n```\n\ndepending on the location in which event_sensor.hpp is included relative\nto other pldm header files.\n\nFully qualify the namespace so that ordering is not required.\n\nChange-Id: I6658da7052e14763d0c10fc8c0c5c91e3fb1ac6c\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "e6b0babcf8687a9ce113f34284262cd1402a03ca",
      "tree": "97ab8b2e7ae22913cf03cce7db2de78a394ce140",
      "parents": [
        "a4a6da0e09f4c411f066620ff6da44126e8a29df"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Apr 28 12:47:33 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Apr 30 12:06:56 2026 +0000"
      },
      "message": "remove unused namespaces\n\nNothing from these namespaces are used, so bring them in scope.\n\nChange-Id: I1ff672c87c571fa4ae5ef8233f185ac462d0e2ba\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "a4a6da0e09f4c411f066620ff6da44126e8a29df",
      "tree": "031e94ec2de9e43b1a711d9636157de636f8246a",
      "parents": [
        "41ba01f5811864fe8534277f047cb7f1dcd94075"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Apr 28 10:58:03 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Thu Apr 30 12:06:56 2026 +0000"
      },
      "message": "treewide: add missing include guards\n\nA handful of headers are missing include guards.\n\nChange-Id: I6f7a925b457897445267187a6f7ef0f548faa12c\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "41ba01f5811864fe8534277f047cb7f1dcd94075",
      "tree": "28a2d628d93d695936a86148f04ea231dd4cbeb3",
      "parents": [
        "3945b0fcb2f640a8b160f2f460c050d640963619"
      ],
      "author": {
        "name": "Konstantin Aladyshev",
        "email": "aladyshev22@gmail.com",
        "time": "Thu Mar 12 17:53:00 2026 +0300"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Apr 29 06:03:07 2026 +0000"
      },
      "message": "pldmtool: Add state_set_id argument to GetStateSensorReadings\n\nSupport parsing state set values in the GetStateSensorReadings command\nresponse by passing state_set_id argument.\n\nUsage:\n```\n # pldmtool platform GetStateSensorReadings --help\nget the state sensor readings\nUsage: pldmtool platform GetStateSensorReadings [OPTIONS]\n\nOptions:\n  ...\n  -s,--state_set_id UINT      State Set ID that should be used for data\n                              interpretation\n```\n\nParsing example before:\n```\n~# pldmtool platform GetStateSensorReadings \\\n                       --sensor_id\u003d203 \\\n                       --rearm\u003d0 \\\n                       -m 10\n{\n    \"compositeSensorCount\": 1,\n    \"sensorOpState[0]\": \"Sensor Enabled\",\n    \"presentState[0]\": \"2\",\n    \"previousState[0]\": \"0\",\n    \"eventState[0]\": \"2\"\n}\n```\n\nAfter:\n```\n~# pldmtool platform GetStateSensorReadings \\\n                       --sensor_id\u003d203 \\\n                       --rearm\u003d0 -m 10 \\\n                       --state_set_id 33\n{\n    \"compositeSensorCount\": 1,\n    \"sensorOpState[0]\": \"Sensor Enabled\",\n    \"presentState[0]\": \"Disconnected(2)\",\n    \"previousState[0]\": \"0\",\n    \"eventState[0]\": \"Disconnected(2)\"\n}\n```\n\nChange-Id: Id3002086cc6429bb0df2d53c300ced6165722c8f\nSigned-off-by: Konstantin Aladyshev \u003caladyshev22@gmail.com\u003e\n"
    },
    {
      "commit": "3945b0fcb2f640a8b160f2f460c050d640963619",
      "tree": "3c90475adb21ffb7f4bb0660a4161116fdb32fb9",
      "parents": [
        "929f317b004ade6f1fd5d961017c2d78d63753b2"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Apr 24 17:48:47 2026 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Apr 24 17:48:47 2026 -0400"
      },
      "message": "sdbusplus: rename SdBusError\n\nsdbusplus has an exception type `SdBusError` which was intended to\nbe primarily for internal use.  It is used specficially when a\nfunction call to sd-bus gives an errno.  There is a more general\nevent called `internal_exception` that should be used instead because\nit catches any case that the internals to sd-bus or sdbusplus have an\nerror.\n\nThere is a change coming to sdbusplus that will give finer-grained\nevents for what are currently SdBusError types.  Without accepting this\nchange, the catch clauses will no longer cover those fine-grained event\ntypes once that sdbusplus change is merged.\n\nChange-Id: Ied67c6c1f1b30370965dc83067e468d0e9e0757e\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "929f317b004ade6f1fd5d961017c2d78d63753b2",
      "tree": "3d4e956441522f087663d26d5b4f265fdd7b05d4",
      "parents": [
        "1602b362455e3f87dae4b314c61e8a4df2d8e260"
      ],
      "author": {
        "name": "Gary Beihl",
        "email": "garybeihl@microsoft.com",
        "time": "Fri Apr 10 08:19:10 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Apr 15 06:08:48 2026 +0000"
      },
      "message": "fw-update: Notify UpdateManager on response decode failure\n\nDeviceUpdater response handlers follow a common pattern: if\nresponse is null, the decoder fails, or the completion code is\nnon-zero, the device cannot complete the update and the handler\nlogs an error and returns. The null-response and completion-code\npaths correctly notify UpdateManager via updateDeviceCompletion(),\nbut the decode-failure path silently returns, leaving the software\nobject in InProgress state indefinitely.\n\nAdd updateDeviceCompletion(eid, false) calls to four decode\nfailure paths so the state machine correctly transitions to\nfailure:\n  - requestUpdate()       (decode_request_update_resp)\n  - passCompTable()       (decode_pass_component_table_resp)\n  - updateComponent()     (decode_update_component_resp)\n  - activateFirmware()    (decode_activate_firmware_resp)\n\ncancelUpdateComponent() is intentionally left unchanged because\nit is the cleanup path for an already-failed update.\n\nReported-by: Vishnunithyasoundhar S (on Gerrit 87785 PS8)\nTested: E2E on Renode evb-ast2600-renode with malformed\nUpdateComponent response injection — pldmd correctly logs\ndecode failure and calls updateDeviceCompletion(eid, false).\nRobot test \"Should Handle Malformed Update Component Response\"\npasses. clang-format clean, Docker CI builds cleanly.\n\nChange-Id: Ie04b385abcb86f5fb815cfddb6ec95bca053a19f\nSigned-off-by: Gary Beihl \u003cgarybeihl@microsoft.com\u003e\n"
    },
    {
      "commit": "1602b362455e3f87dae4b314c61e8a4df2d8e260",
      "tree": "3f777552d5b10171a2621528c750b3c57defbb0d",
      "parents": [
        "7e18c415c8254142125befd6fe925a8757b12d64"
      ],
      "author": {
        "name": "Vishnunithyasoundhar S",
        "email": "vishnunithyasoundhar.s@intel.com",
        "time": "Wed Apr 08 15:40:45 2026 +0530"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Apr 15 06:07:51 2026 +0000"
      },
      "message": "platform-mc: fix infinite retry on FRU record table response error\n\nIn getFRURecordTable() and getFRURecordTableMetadata(), when the PLDM\nresponse decode succeeds but the completion code is non-zero, rc is 0\n(PLDM_SUCCESS) at that point. Returning rc instead of completionCode\ncaused the caller getFRURecordTables() to treat the error as success\nand loop indefinitely, flooding the log with repeated errors like:\n\n  Error : GetFRURecordTable for terminus ID 1, complete code 128.\n\nFix by returning completionCode when it is non-PLDM_SUCCESS, so the\ncaller exits the transfer loop correctly.\n\nChange-Id: I35bb9535ac3aeeb12e842ddce48988e1f1a04418\nSigned-off-by: Vishnunithyasoundhar S \u003cvishnunithyasoundhar.s@intel.com\u003e\nCo-developed-by: Arun P. Mohanan \u003carun.p.m@intel.com\u003e\n"
    },
    {
      "commit": "7e18c415c8254142125befd6fe925a8757b12d64",
      "tree": "295484ac3e9fa21375cd730030b61be27d5ecf83",
      "parents": [
        "5a62ec95c288e8713c547da1ac6547ae44e44612"
      ],
      "author": {
        "name": "Metha, Mayank",
        "email": "mayank.metha@intel.com",
        "time": "Thu Feb 19 02:47:23 2026 +0000"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Apr 15 06:06:03 2026 +0000"
      },
      "message": "pldmtool: Add Update Security Revision from DSP0267 v1.3.0\n\nAdded command to leverage Update Security Revision command from DSP0267\nv1.3.0 which was added to libpldm. This command will be used to update\nthe security revision of the firmware.\n\nChange-Id: I36f9597a39c7fb9cd4255974ba86c3eaa8503ef4\nSigned-off-by: Metha, Mayank \u003cmayank.metha@intel.com\u003e\n"
    },
    {
      "commit": "5a62ec95c288e8713c547da1ac6547ae44e44612",
      "tree": "58c1ae5d118110afd9a0c464ededb65395e0f24c",
      "parents": [
        "9560a2b9bcc34c3553aa1e716b8ec810bb3cc020"
      ],
      "author": {
        "name": "Gary Beihl",
        "email": "garybeihl@microsoft.com",
        "time": "Tue Feb 24 14:36:11 2026 -0500"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Apr 15 06:02:57 2026 +0000"
      },
      "message": "fw-update: Handle cannot-be-updated response\n\nFix DeviceUpdater::updateComponent() to handle the\nPLDM_CCR_COMP_CANNOT_BE_UPDATED response. Previously the response\nwas decoded but never checked, causing the update to hang. Now the\nrejected component is skipped and the updater proceeds to the next\ncomponent. Activation is only sent if at least one component was\nsuccessfully updated.\n\nAlso fix dead code, add missing createRequestFwDataTimer() call,\nguard against empty applicableComponents, and reject unknown\ncompCompatibilityResp values.\n\nCloses: https://github.com/openbmc/pldm/issues/70\nTested: 4/4 PLDM firmware update E2E tests pass on Renode\n  evb-ast2600-renode. clang-format clean.\n\nChange-Id: Id2c786bc454533d204e44f1d3b4c36a7f57e288b\nSigned-off-by: Gary Beihl \u003cgarybeihl@microsoft.com\u003e\n"
    },
    {
      "commit": "9560a2b9bcc34c3553aa1e716b8ec810bb3cc020",
      "tree": "78ed4e5d0a725ff5db9ac03f1672fc55a96e285d",
      "parents": [
        "acbe3a077b9926ee5d401b5c1438fe65d275f0df"
      ],
      "author": {
        "name": "Brad Bishop",
        "email": "bradbish@qti.qualcomm.com",
        "time": "Tue Mar 10 16:27:23 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Apr 15 05:54:42 2026 +0000"
      },
      "message": "config: remove unused configuration\n\nRemove a bunch of configuration options that are not used in the OpenBMC\nGitHub organization.  A quick global GitHub search doesn\u0027t turn up any\nusers in any forks either.  Remove the unused configuration until such a\ntime that it is required by a real use case.\n\nChange-Id: I33980481797ceba89cfd8939082aff8860817fd2\nSigned-off-by: Brad Bishop \u003cbradbish@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "acbe3a077b9926ee5d401b5c1438fe65d275f0df",
      "tree": "7a8139149030b842aa7f2283d60d5a4ee3abc128",
      "parents": [
        "089f250f7a2bfabc7d98a0b4fe2753f09ee072d7"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Thu Apr 09 14:52:30 2026 -0400"
      },
      "committer": {
        "name": "ManojKiran Eda",
        "email": "manojkiran.eda@gmail.com",
        "time": "Wed Apr 15 05:51:38 2026 +0000"
      },
      "message": "sdbusplus: use shorter type aliases\n\nThe sdbusplus headers provide shortened aliases for many types.\nSwitch to using them to provide better code clarity and shorter\nlines.  Possible replacements are for:\n  * bus_t\n  * exception_t\n  * manager_t\n  * match_t\n  * message_t\n  * object_t\n  * slot_t\n  * object_path\n\nChange-Id: Ief97859630d6532ffe669ce65d07296c12195e30\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    }
  ],
  "next": "089f250f7a2bfabc7d98a0b4fe2753f09ee072d7"
}
