)]}'
{
  "commit": "24c1ceaf87bd7a4b4fca09e4ac31c5c39187a5a9",
  "tree": "288c4bf07649ad09899d826dc38d01ca00b6da35",
  "parents": [
    "17f2fc3fe1400bf9e45c075e4864cc79afa2ed91"
  ],
  "author": {
    "name": "Saptarsi Saha",
    "email": "saptarsis@nvidia.com",
    "time": "Tue May 20 21:38:37 2025 +0530"
  },
  "committer": {
    "name": "Ender Hsieh",
    "email": "andhsieh@nvidia.com",
    "time": "Thu Oct 01 17:41:54 2026 +0900"
  },
  "message": "mctpreactor: support configuration for USB MCTP devices\n\nAdd a reactor for the MCTPUSBDevice configuration defined in the\nentity-manager MCTP USB schema. For each exposed\nConfiguration.MCTPUSBDevice object, resolve the kernel mctpusbX\ninterface from its USB Port path and set up an endpoint via mctpd,\nthen publish a configured_by association linking the endpoint back\nto its EM configuration.\n\nThe configuration names a root hub position rather than a bus, because\nthe bus number the kernel gives a root hub is not fixed. A position\ncounts the SOC\u0027s USB host controllers only. Turning a position back\ninto a bus means knowing the addresses of those controllers, and those\nbelong to the SOC, so the position is resolved against the SOC that was\nfound rather than before looking for it.\n\nTested: Build an image for nvl32-obmc machine with the following\npatches cherry-picked:\n\n```\n1. Align with upstream u-boot dts tree:\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/89932\n2. mctpd configuration:\n   https://gerrit.openbmc.org/c/openbmc/openbmc/+/87390\n3. Remove MCTP over USB enumeration hacks (platform-init):\n   https://gerrit.openbmc.org/c/openbmc/platform-init/+/85992\n4. Entity Manager MCTP USB platform config\n   https://gerrit.openbmc.org/c/openbmc/entity-manager/+/85991\n\nWith ten MCTPUSBDevice configurations exposed by entity-manager, the\nreactor resolved each to its kernel mctpusbX interface, assigned an EID\nvia mctpd, and published the configured_by association back to the\noriginating configuration:\n\n  journalctl -u xyz.openbmc_project.mctpreactor:\n  Added MCTP endpoint to device: [ network: 1, EID: 9  | interface: mctpusb0 ]\n  ...\n  Added MCTP endpoint to device: [ network: 1, EID: 26 | interface: mctpusb8 ]\n\n  busctl get-property xyz.openbmc_project.ObjectMapper \\\n    /au/com/codeconstruct/mctp1/networks/1/endpoints/9/configured_by \\\n    xyz.openbmc_project.Association endpoints\n  as 1 \".../Nvidia_MGX_ConnectX8_SuperNIC_Server/GPU_SMA_0\"\n```\n\nChange-Id: I2a2c30605b2738f64d30b3f3efcdefdece8e5652\nSigned-off-by: Saptarsi Saha \u003csaptarsis@nvidia.com\u003e\nSigned-off-by: Deepak Kodihalli \u003cdeepak.kodihalli.83@gmail.com\u003e\nSigned-off-by: Ender Hsieh \u003candhsieh@nvidia.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "192c089d70df97d07c798582ecad3c904b69d60c",
      "old_mode": 33188,
      "old_path": "src/mctp/MCTPEndpoint.cpp",
      "new_id": "70efb3619a7eca181da4dfcb95c415f4c808e9fe",
      "new_mode": 33188,
      "new_path": "src/mctp/MCTPEndpoint.cpp"
    },
    {
      "type": "modify",
      "old_id": "371d2ad0eca46a203684fd951243c9641f96c503",
      "old_mode": 33188,
      "old_path": "src/mctp/MCTPEndpoint.hpp",
      "new_id": "ab62bdee4ac9b580b0c8a3e0ec7b93fc24ec0319",
      "new_mode": 33188,
      "new_path": "src/mctp/MCTPEndpoint.hpp"
    },
    {
      "type": "modify",
      "old_id": "e415214dd43efc15984e3ff2c48d462bf188d6d0",
      "old_mode": 33188,
      "old_path": "src/mctp/MCTPReactorMain.cpp",
      "new_id": "9b7f93036493b00c5c24e81cddd54c99e15b1dcf",
      "new_mode": 33188,
      "new_path": "src/mctp/MCTPReactorMain.cpp"
    },
    {
      "type": "modify",
      "old_id": "36b7d3ccbff0f5b4c82c898e8996f6bbe1a174ab",
      "old_mode": 33188,
      "old_path": "src/tests/test_MCTPEndpoint.cpp",
      "new_id": "e70b1914fc16f97e5cebeac51e62ff6106831577",
      "new_mode": 33188,
      "new_path": "src/tests/test_MCTPEndpoint.cpp"
    }
  ]
}
