History log of /openbmc/entity-manager/src/entity_manager/ (Results 1 – 25 of 84)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
c689762b29-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 ...


/openbmc/entity-manager/configurations/ampere/mtjade.json
/openbmc/entity-manager/configurations/ampere/mtjefferson_mb.json
/openbmc/entity-manager/configurations/ampere/mtmitchell_mb.json
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/catalina/catalina_hdd_adc_ina.json
/openbmc/entity-manager/configurations/meta/catalina/catalina_hdd_adc_isl.json
/openbmc/entity-manager/configurations/meta/catalina/catalina_pdb_hsc_ltc_fsc_max_vr_delta_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina/catalina_pdb_hsc_ltc_fsc_max_vr_raa_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina/catalina_pdb_hsc_xdp_fsc_nct_vr_raa_gndsen_max_p12vsen_isl_p12vfan_rtt.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_1kw_paddle_board.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_mb_vr_mps_pvdd18vr_mps_adc_tic_i3chub_rtt.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_mb_vr_rtt_pvdd18vr_mps_adc_tic_i3chub_rtt.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_mb_vr_sni_pvdd18vr_sni_adc_tic_i3chub_rtt.json
/openbmc/entity-manager/configurations/nvidia/nvidia_cable_cartridge.json
/openbmc/entity-manager/docs/associations.md
/openbmc/entity-manager/schemas/exposes_record.json
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/legacy.json
/openbmc/entity-manager/schemas/topology.json
main.cpp
/openbmc/entity-manager/src/gpio-presence/device_presence.cpp
/openbmc/entity-manager/src/gpio-presence/device_presence.hpp
/openbmc/entity-manager/src/gpio-presence/gpio_presence_manager.cpp
/openbmc/entity-manager/src/gpio-presence/gpio_presence_manager.hpp
/openbmc/entity-manager/test/test_gpio_presence.cpp
/openbmc/entity-manager/test/test_gpio_presence_state.cpp
7f2fbf8214-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 ...

9a5eec9107-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 ...

c58af0b612-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 ...

fa88c5e612-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 ...

8ee4369309-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 ...

dd5732d513-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 ...

71fbff7b09-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 ...

fd977ec624-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 ...

5a61ec8624-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 ...

ecf1a31624-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 ...

c5a2af9024-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 ...

ce8d1d0d24-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 ...

8feb045415-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 ...

5531eeac22-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 ...


/openbmc/entity-manager/configurations/3y-power/3ypower_vast2112_psu.json
/openbmc/entity-manager/configurations/asrock/nf5280m7_baseboard.json
/openbmc/entity-manager/configurations/broadcomm/brcm_100g_1p_ocp_mezz.json
/openbmc/entity-manager/configurations/broadcomm/brcm_200g_1p_ocp_mezz.json
/openbmc/entity-manager/configurations/compuware/compuware_cdr_9011_3m1_psu.json
/openbmc/entity-manager/configurations/flextronics/flextronics_s-1100adu00-201_psu.json
/openbmc/entity-manager/configurations/foxconn-industrial-internet/kudo_bmc.json
/openbmc/entity-manager/configurations/foxconn-industrial-internet/kudo_motherboard.json
/openbmc/entity-manager/configurations/foxconn-industrial-internet/mori_bmc.json
/openbmc/entity-manager/configurations/foxconn-industrial-internet/mori_motherboard.json
/openbmc/entity-manager/configurations/gospower/gospower_g1136-1300wna_psu.json
/openbmc/entity-manager/configurations/ibm/fp5280g3_chassis.json
/openbmc/entity-manager/configurations/ibm/fp5280g3_fanboard.json
/openbmc/entity-manager/configurations/ibm/mudflap.json
/openbmc/entity-manager/configurations/ibm/nisqually.json
/openbmc/entity-manager/configurations/intel/1ux16_riser.json
/openbmc/entity-manager/configurations/intel/2ux8_riser.json
/openbmc/entity-manager/configurations/intel/8x25_hsbp.json
/openbmc/entity-manager/configurations/intel/a2ul16riser.json
/openbmc/entity-manager/configurations/intel/a2ux8x4riser.json
/openbmc/entity-manager/configurations/intel/ahw1um2riser.json
/openbmc/entity-manager/configurations/intel/axx1p100hssi_aic.json
/openbmc/entity-manager/configurations/intel/axx2prthdhd.json
/openbmc/entity-manager/configurations/intel/bnp_baseboard.json
/openbmc/entity-manager/configurations/intel/f1u12x25_hsbp.json
/openbmc/entity-manager/configurations/intel/f1u4x25_hsbp.json
/openbmc/entity-manager/configurations/intel/f2u12x35_hsbp.json
/openbmc/entity-manager/configurations/intel/f2u8x25_hsbp.json
/openbmc/entity-manager/configurations/intel/intel_front_panel.json
/openbmc/entity-manager/configurations/intel/nvme_intel_p_series.json
/openbmc/entity-manager/configurations/intel/nvme_p4500_p5500.json
/openbmc/entity-manager/configurations/intel/pcie_ssd_retimer.json
/openbmc/entity-manager/configurations/intel/r1000_chassis.json
/openbmc/entity-manager/configurations/intel/r2000_chassis.json
/openbmc/entity-manager/configurations/intel/sas_module.json
/openbmc/entity-manager/configurations/intel/stp_baseboard.json
/openbmc/entity-manager/configurations/intel/stp_p4000_chassis.json
/openbmc/entity-manager/configurations/intel/wft_baseboard.json
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/micron/micron_7450.json
/openbmc/entity-manager/configurations/nuvoton/nuvoton_npcm8xx_evb.json
/openbmc/entity-manager/configurations/ocp/cx7_ocp.json
/openbmc/entity-manager/configurations/ocp/cx8_ocp.json
/openbmc/entity-manager/configurations/supermicro/supermicro-pws-920p-sq_psu.json
dbus_interface.cpp
dbus_interface.hpp
b4c4e03205-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

entity-manager: encapsulation for PerformProbe

class PerformProbe has a bunch of members which are not used outside the
class. Mark those as 'private' to avoid any accidental use in new
code. We can

entity-manager: encapsulation for PerformProbe

class PerformProbe has a bunch of members which are not used outside the
class. Mark those as 'private' to avoid any accidental use in new
code. We can always go back to make things public as necessary, but it
should not be that way for all members.

Tested: Inspection only.

Change-Id: I70a50233870978cc80e05cf5237432efccd4550c
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

7cab244e05-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

entity-manager: encapsulation for PerformScan

class PerformScan has a bunch of members which are not used outside the
class. Mark those as 'private' to avoid any accidental use in new
code. We can a

entity-manager: encapsulation for PerformScan

class PerformScan has a bunch of members which are not used outside the
class. Mark those as 'private' to avoid any accidental use in new
code. We can always go back to make things public as necessary, but it
should not be that way for all members.

Tested: Inspection only.

Change-Id: Ice493a1b04006da89fe15ec62c57f7ac5112cd43
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

d10dd46a22-Aug-2025 Marc Olberding <molberding@nvidia.com>

entity-manager: Make schema validation on addObject optional

Puts schema validation behind the compile switch for
schema validation within the AddObject dbus API. Schema
validation is currently comp

entity-manager: Make schema validation on addObject optional

Puts schema validation behind the compile switch for
schema validation within the AddObject dbus API. Schema
validation is currently completely broken, and entity-manager
fails to start with it enabled. We shouldn't require a dbus
api to rely on a broken feature.

Tested: loading this onto nvl32-obmc model and running busctl

```
root@nvl32-bmc:~# busctl call xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/Nvidia_GPU_13 xyz.openbmc_project.AddObject AddObject a{sv} 3 Name s GPU_0 Type s NvidiaMctpVdm PollRate u 1000

root@nvl32-bmc:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/Nvidia_GPU_13/GPU_0
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.Configuration.NvidiaMctpVdm interface - - -
.Delete method - - -
.Name property s "GPU_0" emits-change
.PollRate property d 1000 emits-change
.Type property s "NvidiaMctpVdm" emits-change
```

Change-Id: Iacbb683b2d9cb7fb762082a9c2f48355236f846c
Signed-off-by: Marc Olberding <molberding@nvidia.com>

show more ...

b2f8282925-Sep-2025 Marc Olberding <molberding@nvidia.com>

entity-manager: fix compile option to not persist

After a BMC reboot, this file may not exist when we try
to remove it. Just use the non throwing version.

Tested-by: Loading entity-manager onto nvl

entity-manager: fix compile option to not persist

After a BMC reboot, this file may not exist when we try
to remove it. Just use the non throwing version.

Tested-by: Loading entity-manager onto nvl32-obmc and testing boot
after remove the file

Change-Id: Ia352753e5911b4502f7af1b106c919e5bddb6740
Signed-off-by: Marc Olberding <molberding@nvidia.com>

show more ...

b360991804-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

entity-manager: writeJsonFiles: fix throw on mkdir

writeJsonFiles is fixed to not throw in case the directory cannot be
created and instead use the overload with std::error_code to relay the
error t

entity-manager: writeJsonFiles: fix throw on mkdir

writeJsonFiles is fixed to not throw in case the directory cannot be
created and instead use the overload with std::error_code to relay the
error to the caller instead.

Discovered the issue in unit testing:

```
C++ exception with description "filesystem error: cannot create directory: Permission denied [/var/configuration/]" thrown in the test body.
```

Tested: Inspection only.

Change-Id: I4c1c09cad5a560e9db9f994579ff9af2b5280c00
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

daa4ac0827-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

topology: move powered_by quirk to config parsing

The legacy topology schemas only declare `PowerPort` on the downstream
port, so the upstream port has no choice in the association.

Move this quirk

topology: move powered_by quirk to config parsing

The legacy topology schemas only declare `PowerPort` on the downstream
port, so the upstream port has no choice in the association.

Move this quirk from the association logic to the config parsing stage,
where it is isolated to the legacy config schema.

Tested: Topology Unit Tests Pass.

Change-Id: I5fb6c84eb71353e2b88b1c90b5ea739a6c44129b
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

9b95ae4927-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

topology: generalize association restrictions

Previously association definitions were limited to be created on configs
with `Type` Board and Chassis.

Change the restriction to be defined per associ

topology: generalize association restrictions

Previously association definitions were limited to be created on configs
with `Type` Board and Chassis.

Change the restriction to be defined per association definition and not
hardcoded.

Remove this restriction for `Type` PowerSupply

Tested: next patch

Change-Id: I304a433afc7311ce5b7c350033566969e8d73793
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

5df916f126-Sep-2025 Alexander Hansen <alexander.hansen@9elements.com>

clang-tidy-21: fix cppcoreguidelines-pro-bounds-pointer-arithmetic

Fix various pro-bounds-pointer-arithmetic warnings that started being
reported with clang-tidy-21.

```
error: do not use pointer a

clang-tidy-21: fix cppcoreguidelines-pro-bounds-pointer-arithmetic

Fix various pro-bounds-pointer-arithmetic warnings that started being
reported with clang-tidy-21.

```
error: do not use pointer arithmetic [cppcoreguidelines-pro-bounds-pointer-arithmetic,-warnings-as-errors]
```

Forked this change from [1]

References:
[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/84049

Tested: Inspection only.

Change-Id: I535802825e68d7f5fe01ed2428d127f7a18ab4f8
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

90fabb0627-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

topology: schema rework: implementation

Implementation code for the schema change done in [1]. This change
enables entity-manager to consume the new schema and create associations
based on it.

Test

topology: schema rework: implementation

Implementation code for the schema change done in [1]. This change
enables entity-manager to consume the new schema and create associations
based on it.

Tested: next patch

References:
[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/82817

Change-Id: If227949ab7bb216c2365241c307fe752b0a4cd93
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

7b2a77fe27-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

topology: class AssocName for association

Define a class AssocName to represent the association definition.

Since the association definition has a forward and reverse name, the
class has 2 members.

topology: class AssocName for association

Define a class AssocName to represent the association definition.

Since the association definition has a forward and reverse name, the
class has 2 members.

So we will always be able to reverse the association definition without
doing any further lookups.

Which removes some branches and optionals and simplifies the code.

Tested: Topology Unit Tests Pass.

Change-Id: I8805d6cb45ba07030d45fc3ca32625c8a6c1b03e
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

1234