| bc0b05be | 10-Nov-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: fix type for schema directory
Change the type of schema directory from `constexpr const char*` to `std::filesystem::path` and pass it through the appropriate functions instead of dec
entity-manager: fix type for schema directory
Change the type of schema directory from `constexpr const char*` to `std::filesystem::path` and pass it through the appropriate functions instead of declaring in the header.
This avoids e.g. testcases gaining a dependency on PACKAGE_DIR symbol and allows them to pass in a different directory for schemas, as the package is usually not installed in a development / ci workflow.
Tested:
EM starts normally, configuration is loaded as expected and appears on DBus.
``` Nov 10 15:56:54 s8030-bmc-30303035c0c1 entity-manager[20982]: Inventory Added: MBX 1.57 Chassis Nov 10 15:56:54 s8030-bmc-30303035c0c1 entity-manager[20982]: Inventory Added: Supermicro PWS 920P SQ 2 Nov 10 15:56:54 s8030-bmc-30303035c0c1 entity-manager[20982]: Inventory Added: Tyan S8030 Baseboard Nov 10 15:56:54 s8030-bmc-30303035c0c1 entity-manager[20982]: Inventory Added: Supermicro PWS 920P SQ 3 ```
Change-Id: Iecc21ba0e1045bd8b37f4a0cc0e2ef25d06da18c Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| cba1a97a | 20-Nov-2025 |
Marc Olberding <molberding@nvidia.com> |
entity-manager: fix index bug in perform_scan.cpp
Previously, matched names were not being replaced before they hit dbus. This caused names that depend on index to only allow one instance of a given
entity-manager: fix index bug in perform_scan.cpp
Previously, matched names were not being replaced before they hit dbus. This caused names that depend on index to only allow one instance of a given device, as $index was being formatted to __index rather than the subsistuted value.
Tested: on nvl32-obmc startup entity-manager before ``` busctl tree xyz.openbmc_project.EntityManager `- /xyz `- /xyz/openbmc_project |- /xyz/openbmc_project/EntityManager `- /xyz/openbmc_project/inventory `- /xyz/openbmc_project/inventory/system `- /xyz/openbmc_project/inventory/system/board |- /xyz/openbmc_project/inventory/system/board/Nvidia_Alon8_HPM | `- /xyz/openbmc_project/inventory/system/board/Nvidia_Alon8_HPM/Nvidia_Alon8_HPM_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_IMGX_ConnectX8_SuperNIC_Switch | `- /xyz/openbmc_project/inventory/system/board/Nvidia_IMGX_ConnectX8_SuperNIC_Switch/Nvidia_IMGX_ConnectX8_SuperNIC_Switch_FRU `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell__index `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell__index/Nvidia_RTX_PRO_6000_FRU ```
After: ``` busctl tree xyz.openbmc_project.EntityManager `- /xyz `- /xyz/openbmc_project |- /xyz/openbmc_project/EntityManager `- /xyz/openbmc_project/inventory `- /xyz/openbmc_project/inventory/system `- /xyz/openbmc_project/inventory/system/board |- /xyz/openbmc_project/inventory/system/board/Nvidia_Alon8_HPM | `- /xyz/openbmc_project/inventory/system/board/Nvidia_Alon8_HPM/Nvidia_Alon8_HPM_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_IMGX_ConnectX8_SuperNIC_Switch | `- /xyz/openbmc_project/inventory/system/board/Nvidia_IMGX_ConnectX8_SuperNIC_Switch/Nvidia_IMGX_ConnectX8_SuperNIC_Switch_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_1 | `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_1/Nvidia_RTX_PRO_6000_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_2 | `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_2/Nvidia_RTX_PRO_6000_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_3 | `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_3/Nvidia_RTX_PRO_6000_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_4 | `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_4/Nvidia_RTX_PRO_6000_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_5 | `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_5/Nvidia_RTX_PRO_6000_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_6 | `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_6/Nvidia_RTX_PRO_6000_FRU |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_7 | |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_7/GPU_6 | `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_7/Nvidia_RTX_PRO_6000_FRU `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_8 |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_8/GPU_7 |- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_8/GPU_7SMA `- /xyz/openbmc_project/inventory/system/board/Nvidia_RTX_PRO_6000_Blackwell_8/Nvidia_RTX_PRO_6000_FRU ```
Change-Id: Ide8e6c1bee7870216cdda6a00718b4c82aa23671 Signed-off-by: Marc Olberding <molberding@nvidia.com>
show more ...
|
| 90e4f058 | 10-Oct-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: fixes for logDeviceAdded/Removed
Follow-up patch to fix issues found in comments of [1].
- Use explicit type rather than 'auto' for local variable - Setup a return variable to avoid
entity-manager: fixes for logDeviceAdded/Removed
Follow-up patch to fix issues found in comments of [1].
- Use explicit type rather than 'auto' for local variable - Setup a return variable to avoid duplicate initial value "Unknown" - Fix string value read to avoid uncaught exception - Remove unused boost include - Add unit tests
Tested: Unit tests pass.
References: [1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/84340
Change-Id: I3d5540860e8ef8e590bc2685ce559c53dc8452b5 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| 7719269f | 24-Jun-2025 |
Ed Tanous <etanous@nvidia.com> |
Remove implicit conversions
Implicit conversions are something that nlohmann library itself is a bad default, and 3 years ago threatened to change the default. These implicit conversions cause a nu
Remove implicit conversions
Implicit conversions are something that nlohmann library itself is a bad default, and 3 years ago threatened to change the default. These implicit conversions cause a number of crashes that are hard to reproduce, because they throw an uncaught exception.
Update the code to be able to do no more implicit conversions.
Tested: Entity-manager launches and runs. Items are detected correctly and show up on dbus. Unit tests pass.
Change-Id: Ib23159ae58f5584641427d9be7545bc25a3619af Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| 250432b3 | 13-Oct-2025 |
Ed Tanous <ed@tanous.net> |
Make device array constexpr
This map will consume memory the whole time the application runs, despite not being needed for anything but a lookup at startup. Move to a constexpr array and std::find_
Make device array constexpr
This map will consume memory the whole time the application runs, despite not being needed for anything but a lookup at startup. Move to a constexpr array and std::find_if so that this struct will always be const.
Tested: EM boots and detects devices.
Change-Id: Iae95884a8076d991d0d2696dd0c03113ed49a92f Signed-off-by: Ed Tanous <ed@tanous.net>
show more ...
|
| 7d5f205f | 14-Oct-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: extract function addObjectJson
extract function `addObjectJson` from `addObject` function.
This separates the data conversion from core `AddObject` logic which operates on json (as
entity-manager: extract function addObjectJson
extract function `addObjectJson` from `addObject` function.
This separates the data conversion from core `AddObject` logic which operates on json (as usual with EM internals).
Tested: on Tyan S8030:
Adding a dummy record:
``` root@s8030-bmc-30303035c0c1:~# busctl call xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard xyz.openbmc_project.AddObject AddObject a{sv} 3 Name s DummyRecord Type s DummyType PollRate u 1000
root@s8030-bmc-30303035c0c1:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/DummyRecord
NAME TYPE SIGNATURE RESULT/VALUE FLAGS ... xyz.openbmc_project.Configuration.DummyType interface - - - .Delete method - - - .Name property s "DummyRecord" emits-change .PollRate property d 1000 emits-change .Type property s "DummyType" emits-change ```
New record is added without issues.
Change-Id: I62e2276ff517d0369f5644fa21dae162c44590db Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| f9a40246 | 14-Oct-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: addObjectRuntimeValidateJson
extract function addObjectRuntimeValidateJson from addObject function.
Since the runtime configuration validation feature for "AddObject" API looks to b
entity-manager: addObjectRuntimeValidateJson
extract function addObjectRuntimeValidateJson from addObject function.
Since the runtime configuration validation feature for "AddObject" API looks to be broken since some time, extract it into it's own function to separate the `AddObject` feature from schema handling and enhance readability of the default code path.
Tested: next patches in series
Change-Id: Ief9a1c90598221450b5bceffd6e85ee7e1feca68 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| a182cb7c | 14-Oct-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: extract function for AddObject API
extract `addObject` function for the implementation of "AddObject" DBus API.
The reduced indentation enhances readability and helps with further r
entity-manager: extract function for AddObject API
extract `addObject` function for the implementation of "AddObject" DBus API.
The reduced indentation enhances readability and helps with further refactoring.
Additionally the feature is decoupled from its DBus method name, allowing easier unit-testing.
Tested: next patches in series
Change-Id: I9722d7b4c6baf53f1b833f81671e9bd6d8b71f17 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| dbf95b2c | 13-Oct-2025 |
Ed Tanous <ed@tanous.net> |
Flat map all the things
In an earlier commit, entity-manager gained required dependency on std::flat_map. This means that EM can only compile with gcc-15, which the project only recently moved to.
Flat map all the things
In an earlier commit, entity-manager gained required dependency on std::flat_map. This means that EM can only compile with gcc-15, which the project only recently moved to. Rather than move backwards, port forward all uses of boost flat_map and flat_set to their std equivalents.
Tested: entity-manager launches and enumerates devices on gb200-obmc.
Change-Id: Id24803057711c60d5b00f436db80b27edbb756a3 Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| 8290ca42 | 04-Aug-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: constructor arg to load config
Introduce a constructor arg to point EM to directories to load configuration from.
This enables running unit tests without depending on a specific dir
entity-manager: constructor arg to load config
Introduce a constructor arg to point EM to directories to load configuration from.
This enables running unit tests without depending on a specific directory layout from our rofs.
Tested: on Tyan S8030. Config parsed as expected.
``` Oct 02 11:22:52 s8030-bmc-30303035c0c1 systemd[1]: Starting Entity Manager... Oct 02 11:22:52 s8030-bmc-30303035c0c1 systemd[1]: Started Entity Manager. Oct 02 11:23:02 s8030-bmc-30303035c0c1 entity-manager[8265]: There's still template variable $PRODUCT_PART_NUMBER un-replaced. Removing it from the string. Oct 02 11:23:02 s8030-bmc-30303035c0c1 entity-manager[8265]: There's still template variable $PRODUCT_ASSET_TAG un-replaced. Removing it from the string. Oct 02 11:23:02 s8030-bmc-30303035c0c1 entity-manager[8265]: There's still template variable $PRODUCT_ASSET_TAG un-replaced. Removing it from the string. Oct 02 11:23:02 s8030-bmc-30303035c0c1 entity-manager[8265]: There's still template variable $PRODUCT_ASSET_TAG un-replaced. Removing it from the string. Oct 02 11:23:02 s8030-bmc-30303035c0c1 entity-manager[8265]: There's still template variable $PRODUCT_PART_NUMBER un-replaced. Removing it from the string. Oct 02 11:23:04 s8030-bmc-30303035c0c1 entity-manager[8265]: Inventory Added: Supermicro PWS 920P SQ 0 Oct 02 11:23:04 s8030-bmc-30303035c0c1 entity-manager[8265]: Inventory Added: Supermicro PWS 920P SQ 1 Oct 02 11:23:04 s8030-bmc-30303035c0c1 entity-manager[8265]: Inventory Added: Tyan S8030 Baseboard Oct 02 11:23:04 s8030-bmc-30303035c0c1 entity-manager[8265]: Inventory Added: MBX 1.57 Chassis ```
Change-Id: I8ce297847d3cafe2e2ae2040e9db261dc1d8f426 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| c689762b | 29-Oct-2025 |
Haiyue Wang <haiyuewa@163.com> |
entity_manager: Remove unused local variable
The local object variable 'systemConfiguration' in main() function is not used, it is changed to public member value of 'class EntityManager' by the comm
entity_manager: Remove unused local variable
The local object variable 'systemConfiguration' in main() function is not used, it is changed to public member value of 'class EntityManager' by the commit cf6a75bd2bbf ("Introduce EntityManager class").
Change-Id: I28fe6814c2b7c1aecd4aa54583304ba7e6179711 Signed-off-by: Haiyue Wang <haiyuewa@163.com>
show more ...
|
| 7f2fbf82 | 14-Oct-2025 |
Ed Tanous <ed@tanous.net> |
Remove enable_shared_from_this on PerformProbe
This class was both added incorrectly as a private base class, and not used. Had it been used, it would've shown errors on construction, but as-is, it
Remove enable_shared_from_this on PerformProbe
This class was both added incorrectly as a private base class, and not used. Had it been used, it would've shown errors on construction, but as-is, it can fail on destruction. This isn't used anywhere, so just remove it.
Clang tidy has a bugprone check that will be enabled separately.
[1] https://clang.llvm.org/extra/clang-tidy/checks/bugprone/incorrect-enable-shared-from-this.html
Change-Id: I6bf16bd4979652e72129abd9f52bd7ebebd9b1be Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| 9a5eec91 | 07-Aug-2025 |
Christopher Meis <christopher.meis@9elements.com> |
entity-manager: Add probe associations
Probe associations provides a mapping between a probed path and the inventory path of the board. This may help in getting information about bus and address val
entity-manager: Add probe associations
Probe associations provides a mapping between a probed path and the inventory path of the board. This may help in getting information about bus and address values from the properties available via the aforementioned probed path. Probed path of board 'probed_by' inventory board path. Inventory board path 'probing' probe path. A probe path can be valid statement found in the 'Probe' statement of a EM configuration.
This change could require testing on real hardware from other reviewers and maintainers to make sure, the feature works as intended.
Tested on QEMU/Yosemite4 with EEPROM data added to QEMU source code. This allows loading configurations without changing the probe statements. Logs: ``` root@yosemite4:~# journalctl | grep entity-manager Apr 03 13:35:05 yosemite4 entity-manager[464]: Clearing previous configuration Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 2 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 8 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 4 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 12 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 1 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 6 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 8 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 10 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 13 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 14 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 7 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 3 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 15 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 9 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 12 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 9 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 1 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 2 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Management Board Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 2 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 15 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 7 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 6 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 5 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 3 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 7 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 11 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 5 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 10 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 14 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 16 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 3 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 5 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 1 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 16 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Fan Board 1 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 6 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 11 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome T1 Slot 4 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 4 CPU Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Fan Board 0 Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 8 Chassis Apr 03 13:35:14 yosemite4 entity-manager[464]: Inventory Added: Yosemite 4 Sentinel Dome Slot 13 Chassis
root@yosemite4:~# busctl tree xyz.openbmc_project.EntityManager `- /xyz `- /xyz/openbmc_project |- /xyz/openbmc_project/EntityManager `- /xyz/openbmc_project/inventory `- /xyz/openbmc_project/inventory/system |- /xyz/openbmc_project/inventory/system/board | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_ADC | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN0_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN0_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN1_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN1_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN4_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN4_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN5_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN5_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN8_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN8_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN9_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/FANBOARD0_FAN9_TACH_OUTLET_SPEED_RPM | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_0/Fan_Board_0_FRU | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_ADC | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN10_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN10_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN11_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN11_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN2_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN2_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN3_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN3_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN6_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN6_TACH_OUTLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN7_TACH_INLET_SPEED_RPM | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/FANBOARD1_FAN7_TACH_OUTLET_SPEED_RPM | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Fan_Board_1/Fan_Board_1_FRU | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/All_Fan | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P0V6_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P12V_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P1V0_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P1V2_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P1V8_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P2V5_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P3V3_RGM_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P3V3_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P3V_BAT_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P5V_USB_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P5V_VOLT_V | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_TEMP_C | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/PID_NIC_TEMP | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Stepwise_MGNT_TEMP | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Stepwise_NIC_TEMP | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Stepwise_SENTINEL_DOME_SLOT_PRESENT_PERCENTAGE | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Stepwise_VIRTUAL_NIC_TEMP_C | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Zone_1 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/PID_MB_CPU_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/PID_MB_DIMM_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/PID_MB_SSD_BOOT_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/PID_MB_VR_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/Stepwise_CALIBRATED_MB_FIO_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/Stepwise_MB_CPU_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/Stepwise_MB_DIMM_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/Stepwise_MB_FIO_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/Stepwise_MB_INLET_OUTLET_TEMP_Slot_1 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/Stepwise_MB_SSD_BOOT_Slot_1 | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_1/Stepwise_MB_VR_Slot_1 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/PID_MB_CPU_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/PID_MB_DIMM_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/PID_MB_SSD_BOOT_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/PID_MB_VR_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/Stepwise_CALIBRATED_MB_FIO_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/Stepwise_MB_CPU_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/Stepwise_MB_DIMM_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/Stepwise_MB_FIO_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/Stepwise_MB_INLET_OUTLET_TEMP_Slot_2 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/Stepwise_MB_SSD_BOOT_Slot_2 | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_2/Stepwise_MB_VR_Slot_2 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/PID_MB_CPU_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/PID_MB_DIMM_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/PID_MB_SSD_BOOT_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/PID_MB_VR_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/Stepwise_CALIBRATED_MB_FIO_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/Stepwise_MB_CPU_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/Stepwise_MB_DIMM_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/Stepwise_MB_FIO_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/Stepwise_MB_INLET_OUTLET_TEMP_Slot_3 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/Stepwise_MB_SSD_BOOT_Slot_3 | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_3/Stepwise_MB_VR_Slot_3 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/PID_MB_CPU_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/PID_MB_DIMM_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/PID_MB_SSD_BOOT_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/PID_MB_VR_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/Stepwise_CALIBRATED_MB_FIO_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/Stepwise_MB_CPU_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/Stepwise_MB_DIMM_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/Stepwise_MB_FIO_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/Stepwise_MB_INLET_OUTLET_TEMP_Slot_4 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/Stepwise_MB_SSD_BOOT_Slot_4 | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_4/Stepwise_MB_VR_Slot_4 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/PID_MB_CPU_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/PID_MB_DIMM_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/PID_MB_SSD_BOOT_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/PID_MB_VR_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/Stepwise_CALIBRATED_MB_FIO_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/Stepwise_MB_CPU_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/Stepwise_MB_DIMM_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/Stepwise_MB_FIO_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/Stepwise_MB_INLET_OUTLET_TEMP_Slot_5 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/Stepwise_MB_SSD_BOOT_Slot_5 | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_5/Stepwise_MB_VR_Slot_5 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/PID_MB_CPU_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/PID_MB_DIMM_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/PID_MB_SSD_BOOT_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/PID_MB_VR_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/Stepwise_CALIBRATED_MB_FIO_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/Stepwise_MB_CPU_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/Stepwise_MB_DIMM_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/Stepwise_MB_FIO_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/Stepwise_MB_INLET_OUTLET_TEMP_Slot_6 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/Stepwise_MB_SSD_BOOT_Slot_6 | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_6/Stepwise_MB_VR_Slot_6 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/PID_MB_CPU_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/PID_MB_DIMM_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/PID_MB_SSD_BOOT_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/PID_MB_VR_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/Stepwise_CALIBRATED_MB_FIO_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/Stepwise_MB_CPU_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/Stepwise_MB_DIMM_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/Stepwise_MB_FIO_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/Stepwise_MB_INLET_OUTLET_TEMP_Slot_7 | | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/Stepwise_MB_SSD_BOOT_Slot_7 | | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_7/Stepwise_MB_VR_Slot_7 | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/PID_MB_CPU_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/PID_MB_DIMM_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/PID_MB_SSD_BOOT_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/PID_MB_VR_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/Stepwise_CALIBRATED_MB_FIO_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/Stepwise_MB_CPU_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/Stepwise_MB_DIMM_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/Stepwise_MB_FIO_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/Stepwise_MB_INLET_OUTLET_TEMP_Slot_8 | |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/Stepwise_MB_SSD_BOOT_Slot_8 | `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Sentinel_Dome_T1_Slot_8/Stepwise_MB_VR_Slot_8 |- /xyz/openbmc_project/inventory/system/chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_10_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_11_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_12_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_13_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_14_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_15_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_16_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_1_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_2_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_3_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_4_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_5_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_6_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_7_Chassis | |- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_8_Chassis | `- /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Sentinel_Dome_Slot_9_Chassis `- /xyz/openbmc_project/inventory/system/cpu |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_10_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_11_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_12_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_13_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_14_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_15_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_16_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_1_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_2_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_3_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_4_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_5_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_6_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_7_CPU |- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_8_CPU `- /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_9_CPU
busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_10_CPU NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.AddObject interface - - - .AddObject method a{sv} - - xyz.openbmc_project.Association.Definitions interface - - - .Associations property a(sss) 1 "probed_by" "probing" "/xyz/openbmc... emits-change xyz.openbmc_project.Inventory.Decorator.Asset interface - - - .Manufacturer property s "N/A" emits-change .Model property s "N/A" emits-change .PartNumber property s "N/A" emits-change .SerialNumber property s "$CHASSIS_INFO_AM1" emits-change xyz.openbmc_project.Inventory.Decorator.Slot interface - - - .SlotNumber property t 10 emits-change xyz.openbmc_project.Inventory.Item.CPU interface - - - .Name property s "Yosemite 4 Sentinel Dome Slot 10 CPU" emits-change .Probe property s "xyz.openbmc_project.FruDevice({\'BOA... emits-change .Type property s "CPU" emits-change
root@yosemite4:~# busctl get-property xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/chassis/Yosemite_4_Chassis xyz.openbmc_project.Association.Definitions Associations a(sss) 2 "probed_by" "probed" "/xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board" "probed_by" "probed" "/xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome"
busctl get-property xyz.openbmc_project.ObjectMapper /xyz/openbmc_project/inventory/system/cpu/Yosemite_4_Sentinel_Dome_Slot_10_CPU/probed_by xyz.openbmc_project.Association endpoints as 1 "/xyz/openbmc_project/FruDevice/Sentinel_Dome_without_Retimer_0" ```
Change-Id: Id5f2564a38327e029b7e5c6faef75b2547b42527 Signed-off-by: Christopher Meis <christopher.meis@9elements.com>
show more ...
|
| c58af0b6 | 12-Sep-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: use PDI constants for inventory
Use PDI constants to create inventory interfaces, where possible. This helps to make the code more readable and guarantees the interfaces which are di
entity-manager: use PDI constants for inventory
Use PDI constants to create inventory interfaces, where possible. This helps to make the code more readable and guarantees the interfaces which are directly created from a PDI constant actually exist.
Also use the decorator asset interface PDI definition to query asset information.
Tested: on Tyan S8030
Inventory interfaces are created as before ``` busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard ```
output ``` NAME TYPE SIGNATURE RESULT/VALUE FLAGS ... xyz.openbmc_project.Inventory.Decorator.Asset ... xyz.openbmc_project.Inventory.Item.Board ... ```
Asset information is queried as before
``` Sep 12 14:31:41 s8030-bmc-30303035c0c1 entity-manager[19121]: Inventory Added: Supermicro PWS 920P SQ 0 Sep 12 14:31:41 s8030-bmc-30303035c0c1 entity-manager[19121]: Inventory Added: Supermicro PWS 920P SQ 1 Sep 12 14:31:41 s8030-bmc-30303035c0c1 entity-manager[19121]: Inventory Added: Tyan S8030 Baseboard Sep 12 14:31:41 s8030-bmc-30303035c0c1 entity-manager[19121]: Inventory Added: MBX 1.57 Chassis ```
Change-Id: I28e22f986686238caf4213aaa1334004c8dd721c Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| fa88c5e6 | 12-Sep-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: use PDI constants for Host State
PDI already defines interface name and path namespace, use that instead of duplicating it here.
Using the interface variable for service name since
entity-manager: use PDI constants for Host State
PDI already defines interface name and path namespace, use that instead of duplicating it here.
Using the interface variable for service name since service name is not defined in PDI and it's the same.
Defining default service name in [1].
Tested: on Tyan S8030
``` Sep 12 11:32:18 s8030-bmc-30303035c0c1 entity-manager[14717]: querying initial power state ```
``` ipmitool power on ```
``` Sep 12 11:37:27 s8030-bmc-30303035c0c1 entity-manager[14717]: power match triggered Sep 12 11:37:28 s8030-bmc-30303035c0c1 entity-manager[14717]: power match triggered Sep 12 11:37:28 s8030-bmc-30303035c0c1 entity-manager[14717]: power match triggered Sep 12 11:37:28 s8030-bmc-30303035c0c1 entity-manager[14717]: power match triggered ```
``` ipmitool power off ```
``` Sep 12 11:37:52 s8030-bmc-30303035c0c1 entity-manager[14717]: power match triggered ```
References: [1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/83644
Change-Id: Ibbb2828ab6b7e9216ccd4c37e5697c5ad4b02177 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| 8ee43693 | 09-Oct-2025 |
Chau Ly <chaul@amperecomputing.com> |
Don't handle leftover template vars for "Probe" string
As "Probe" string does not contain any template variable, we should not check for leftover template variables in it after performing template v
Don't handle leftover template vars for "Probe" string
As "Probe" string does not contain any template variable, we should not check for leftover template variables in it after performing template variable replacement which can mistakenly treat the regex token "$" as a template variable.
This commit also skips handling leftover template variables for "Exposes" object when the replacement is performed on the record for the first time. The handling will be done when the replacement is targeted for "Exposes" object later.
Tested on configurations with regex patterns in Probe string and and on meta's fan boards that have math operations for more than 2 template variables in the same JSON pair value. e.g:
``` "in0_Name": "FCB_$bus % 2 FAN_$bus % 2 * 2 VOLT_V", ```
Fixes: I4499baf3ebe9560e13932a49e324d1c8b0255623 Change-Id: I86ba103fec67c79908aa7a09755582e76b4cdee1 Signed-off-by: Chau Ly <chaul@amperecomputing.com>
show more ...
|
| dd5732d5 | 13-Oct-2025 |
Ed Tanous <etanous@nvidia.com> |
Fix includes for lg2
phosphor-logging is a system package. Fix it so it's included once, and as a system header (using <>)
Tested: Code compiles.
Change-Id: I8a85a8c2003fa6882efd7065029019fb9c413
Fix includes for lg2
phosphor-logging is a system package. Fix it so it's included once, and as a system header (using <>)
Tested: Code compiles.
Change-Id: I8a85a8c2003fa6882efd7065029019fb9c413d1a Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| 71fbff7b | 09-Oct-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: deduplicate code in logDeviceAdded
`logDeviceAdded' and `logDeviceRemoved` were using identical code to query their information from json.
``` diff <(sed -n '20,60p' src/entity_mana
entity-manager: deduplicate code in logDeviceAdded
`logDeviceAdded' and `logDeviceRemoved` were using identical code to query their information from json.
``` diff <(sed -n '20,60p' src/entity_manager/log_device_inventory.cpp) <(sed -n '74,114p' src/entity_manager/log_device_inventory.cpp); echo $? 0 ```
Deduplicate the code to prevent future code drift and increase readability.
Tested: on Tyan S8030
Journal logs appear as expected ``` Oct 09 16:16:52 s8030-bmc-30303035c0c1 entity-manager[7281]: Inventory Added: Supermicro PWS 920P SQ 0 Oct 09 16:16:52 s8030-bmc-30303035c0c1 entity-manager[7281]: Inventory Added: Supermicro PWS 920P SQ 1 Oct 09 16:16:52 s8030-bmc-30303035c0c1 entity-manager[7281]: Inventory Added: Tyan S8030 Baseboard ```
``` PRIORITY=6 _BOOT_ID=9c09f24836074e7a95a7eb0fc88c9b42 _MACHINE_ID=980464f768884a9a8b76eacd41d988bd _HOSTNAME=s8030-bmc-30303035c0c1 _RUNTIME_SCOPE=system _UID=0 _GID=0 _SYSTEMD_SLICE=system.slice _TRANSPORT=journal _CAP_EFFECTIVE=1ffffffffff CODE_LINE=77 CODE_FILE=../git/src/entity_manager/log_device_inventory.cpp CODE_FUNC=logDeviceAdded REDFISH_MESSAGE_ID=OpenBMC.0.1.InventoryAdded SYSLOG_IDENTIFIER=entity-manager _COMM=entity-manager _EXE=/usr/libexec/entity-manager/entity-manager _CMDLINE=/usr/libexec/entity-manager/entity-manager _SYSTEMD_CGROUP=/system.slice/xyz.openbmc_project.EntityManager.service _SYSTEMD_UNIT=xyz.openbmc_project.EntityManager.service MESSAGE=Inventory Added: Supermicro PWS 920P SQ 1 REDFISH_MESSAGE_ARGS=PWS-920P-SQ,PowerSupply,P9212CK03EN1643 NAME=Supermicro PWS 920P SQ 1 _PID=7281 _SYSTEMD_INVOCATION_ID=cf27821a00954b4c84a116c263c39bff _SOURCE_REALTIME_TIMESTAMP=1760026612675043 ```
Change-Id: I0a51dc781d12069f766f9da9c0a595abd3ae1847 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| fd977ec6 | 24-Aug-2025 |
George Liu <liuxiwei@ieisystem.com> |
Remove boost::to_lower_copy
Replaced with inline std::transform lambda for lowercase conversion, removing Boost dependency.
Tested: added UT and verified all tests passed
Change-Id: Ie875e131b2e0a
Remove boost::to_lower_copy
Replaced with inline std::transform lambda for lowercase conversion, removing Boost dependency.
Tested: added UT and verified all tests passed
Change-Id: Ie875e131b2e0a7d5ab53288928983d640a9d1c12 Signed-off-by: George Liu <liuxiwei@ieisystem.com>
show more ...
|
| 5a61ec86 | 24-Aug-2025 |
George Liu <liuxiwei@ieisystem.com> |
Replace boost::replace_all and boost::ireplace_all
Replaced with custom functions using std::string_view to remove Boost dependency and reduce template instantiation, keeping original behavior.
Tes
Replace boost::replace_all and boost::ireplace_all
Replaced with custom functions using std::string_view to remove Boost dependency and reduce template instantiation, keeping original behavior.
Tested: added UT and verified all tests passed
Change-Id: I82cc238c800c7780dc50b6a40445657931bf5250 Signed-off-by: George Liu <liuxiwei@ieisystem.com> Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| ecf1a316 | 24-Aug-2025 |
George Liu <liuxiwei@ieisystem.com> |
Remove boost::split
Replaced boost::split with a simple std::string_view-based split to reduce Boost dependency and template instantiation during compilation
Tested: added UT and verified all tests
Remove boost::split
Replaced boost::split with a simple std::string_view-based split to reduce Boost dependency and template instantiation during compilation
Tested: added UT and verified all tests passed
Change-Id: Icc84794a3d5a98088bdbce032dc76055a035f0dc Signed-off-by: George Liu <liuxiwei@ieisystem.com>
show more ...
|
| c5a2af90 | 24-Aug-2025 |
Ed Tanous <etanous@nvidia.com> |
Standardize iFindFirst
iFindFirst was added in the previous commit. Move it to using std::ranges::subrange, withi is a direct replacement for boost, rather than inventing a new type.
Tested: Unit
Standardize iFindFirst
iFindFirst was added in the previous commit. Move it to using std::ranges::subrange, withi is a direct replacement for boost, rather than inventing a new type.
Tested: Unit tests pass. Change-Id: I6d88fc90f34ee0748b52e9fb6438635f9cdbd0a9 Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
| ce8d1d0d | 24-Aug-2025 |
George Liu <liuxiwei@ieisystem.com> |
replace boost::ifind_first with std::ranges::search
Use a custom case-insensitive search to remove Boost dependency and reduce compilation memory usage, keeping original string replacement behavior.
replace boost::ifind_first with std::ranges::search
Use a custom case-insensitive search to remove Boost dependency and reduce compilation memory usage, keeping original string replacement behavior.
Change-Id: I5778b208dfdb0082515e92f7bda335beb94c21cb Signed-off-by: George Liu <liuxiwei@ieisystem.com>
show more ...
|
| 8feb0454 | 15-Sep-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
use phosphor-logging
Migrate all instances of std::cerr and std::cout to phosphor-logging such as lg2::error, lg2::info, lg2::debug, ...
The use of modern logging infrastructure helps with developm
use phosphor-logging
Migrate all instances of std::cerr and std::cout to phosphor-logging such as lg2::error, lg2::info, lg2::debug, ...
The use of modern logging infrastructure helps with development since additional logging levels such as `debug` and `warning` are available.
Migrating the remaining logging calls helps to make the code more readable and uniform.
Tested: Inspection, and on Tyan S8030
Restarted EM with patch applied. Logs appear as usual.
``` Sep 15 13:52:46 s8030-bmc-30303035c0c1 entity-manager[23480]: Inventory Added: Supermicro PWS 920P SQ 0 Sep 15 13:52:46 s8030-bmc-30303035c0c1 entity-manager[23480]: Inventory Added: Supermicro PWS 920P SQ 1 Sep 15 13:52:46 s8030-bmc-30303035c0c1 entity-manager[23480]: Inventory Added: Tyan S8030 Baseboard Sep 15 13:52:46 s8030-bmc-30303035c0c1 entity-manager[23480]: Inventory Added: MBX 1.57 Chassis ```
`busctl tree` output appears as before.
Did a power cycle to trigger a few more log prints
``` Sep 15 13:55:14 s8030-bmc-30303035c0c1 entity-manager[23480]: power match triggered ```
Created configuration file with missing fields to trigger error print. ``` { "Exposes": [], "Type": "error" } ```
``` Sep 15 13:56:58 s8030-bmc-30303035c0c1 entity-manager[23659]: Finished loading json configuration in 7938ms Sep 15 13:56:58 s8030-bmc-30303035c0c1 entity-manager[23659]: configuration file missing probe: {"Exposes":[],"Type":"error"} Sep 15 13:56:59 s8030-bmc-30303035c0c1 entity-manager[23659]: configuration file missing probe: {"Exposes":[],"Type":"error"} ```
Change-Id: I3452f983c9c14cd02ab9b56451c4b3e4a13c3979 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|
| 5531eeac | 22-Aug-2025 |
Alexander Hansen <alexander.hansen@9elements.com> |
entity-manager: fix representation: arrays of bool
This quirk came up during [1] and was fixed in sdbusplus in [2].
Fix the EM code now to drop this quirk.
According to statements in [2] there 'sh
entity-manager: fix representation: arrays of bool
This quirk came up during [1] and was fixed in sdbusplus in [2].
Fix the EM code now to drop this quirk.
According to statements in [2] there 'should' not be any effects of the change, at least in upstream code.
Tested: on Tyan S8030.
entity-manager starts normally
``` Apr 03 20:35:36 s8030 systemd[1]: Started Entity Manager. Apr 03 20:36:03 s8030 entity-manager[272]: Clearing previous configuration Apr 03 20:36:15 s8030 entity-manager[272]: Inventory Added: Supermicro PWS 920P SQ 0 Apr 03 20:36:15 s8030 entity-manager[272]: Inventory Added: Supermicro PWS 920P SQ 1 Apr 03 20:36:15 s8030 entity-manager[272]: Inventory Added: Tyan S8030 Baseboard Apr 03 20:36:15 s8030 entity-manager[272]: Inventory Added: MBX 1.57 Chassis ```
entity-manager `busctl tree` looks same as before the change.
No new warnings or errors found in `journalctl` output. No new services failures on `systemctl --failed`
References: [1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/81474 [2] https://gerrit.openbmc.org/c/openbmc/sdbusplus/+/82035
Change-Id: Ia0788868f5631430b3733f20575c64f3d0411e96 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
show more ...
|