History log of /openbmc/entity-manager/test/ (Results 1 – 25 of 74)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
90e4f05810-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 ...

7719269f24-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 ...


/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/anacapa/anacapa_bridge_l.json
/openbmc/entity-manager/configurations/meta/anacapa/anacapa_bridge_r.json
/openbmc/entity-manager/configurations/meta/anacapa/anacapa_mb.json
/openbmc/entity-manager/configurations/meta/anacapa/anacapa_pdb_l.json
/openbmc/entity-manager/configurations/meta/anacapa/anacapa_pdb_r.json
/openbmc/entity-manager/configurations/meta/anacapa/anacapa_scm.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_mb.json
/openbmc/entity-manager/configurations/meta/ventura/delta_heat_exchanger.json
/openbmc/entity-manager/configurations/meta/ventura/delta_heat_exchanger_fans.json
/openbmc/entity-manager/configurations/meta/ventura/delta_reservoir_pump_unit.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_scm.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_cxl_board_vr_mps_tchip_stm.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_cxl_board_vr_raa_tchip_tic.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_e1s_expansion_board_adc_qns_pmon_sgy.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_e1s_expansion_board_adc_tic_pmon_tic.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/meta/yv5/yosemite5_medusa_board.json
/openbmc/entity-manager/meson.build
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/legacy.json
/openbmc/entity-manager/src/entity_manager/dbus_interface.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.hpp
/openbmc/entity-manager/src/entity_manager/devices.hpp
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/entity_manager.hpp
/openbmc/entity-manager/src/entity_manager/overlay.cpp
/openbmc/entity-manager/src/entity_manager/perform_scan.cpp
/openbmc/entity-manager/src/entity_manager/utils.cpp
/openbmc/entity-manager/src/entity_manager/utils.hpp
entity_manager/test_entity-manager.cpp
dbf95b2c13-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 ...


/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/ibm/huygens_chassis.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/santabarbara/santabarbara_pdb1.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_pdb1_vr_sni.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_cable.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4n.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/modbus.json
/openbmc/entity-manager/schemas/topology.json
/openbmc/entity-manager/src/entity_manager/configuration.cpp
/openbmc/entity-manager/src/entity_manager/configuration.hpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.hpp
/openbmc/entity-manager/src/entity_manager/devices.hpp
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/entity_manager.hpp
/openbmc/entity-manager/src/entity_manager/log_device_inventory.cpp
/openbmc/entity-manager/src/entity_manager/main.cpp
/openbmc/entity-manager/src/entity_manager/overlay.cpp
/openbmc/entity-manager/src/entity_manager/perform_probe.cpp
/openbmc/entity-manager/src/entity_manager/perform_probe.hpp
/openbmc/entity-manager/src/entity_manager/perform_scan.cpp
/openbmc/entity-manager/src/entity_manager/perform_scan.hpp
/openbmc/entity-manager/src/entity_manager/utils.hpp
/openbmc/entity-manager/src/fru_device/fru_device.cpp
/openbmc/entity-manager/src/fru_device/fru_utils.cpp
/openbmc/entity-manager/src/fru_device/fru_utils.hpp
/openbmc/entity-manager/src/gpio-presence/config_provider.cpp
/openbmc/entity-manager/src/utils.cpp
/openbmc/entity-manager/src/utils.hpp
test_fru-utils.cpp
bd98a13d27-Oct-2025 Alexander Hansen <alexander.hansen@9elements.com>

fix: test: gpio presence: state

Fix compilation errors introduced in [1] which was not re-built prior to
merging. Since [1] was last built, additional test cases were introduced
in [2].

The constru

fix: test: gpio presence: state

Fix compilation errors introduced in [1] which was not re-built prior to
merging. Since [1] was last built, additional test cases were introduced
in [2].

The constructor takes a vector of parent inventory compatible, we can
just pass an empty vector for these testcases.

Sorry for any inconvenience caused.

References:
[1] 92d79814514748e0f259566ed70d5e69f5570ac7
[2] a005e3e656021be5e8291e8df86503b27942f237

Fixes: 92d79814514748e0f259566ed70d5e69f5570ac7

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

show more ...

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

gpio-presence: track parent inventory compatible

When detecting multiple instances of a device such as a fan module
```
{
"Exposes": [
{
"Name": "FAN1",
"PresencePinNames": [

gpio-presence: track parent inventory compatible

When detecting multiple instances of a device such as a fan module
```
{
"Exposes": [
{
"Name": "FAN1",
"PresencePinNames": [
"FAN1_PRSNT"
],
"PresencePinValues": [
1
],
"Type": "GPIODeviceDetect"
},
{
"Name": "FAN2",
"PresencePinNames": [
"FAN2_PRSNT"
],
"PresencePinValues": [
1
],
"Type": "GPIODeviceDetect"
}
],
"Name": "Minerva Fan Board 6",
"Probe": [
"xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board.*', 'PRODUCT_MANUFACTURER': 'Quanta', 'BUS': 21, 'BOARD_INFO_AM4': 'pwr-silergy'})",
"OR",
"xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Minerva Fan Board DVT', 'PRODUCT_MANUFACTURER': 'Quanta', 'BUS': 21, 'BOARD_PART_NUMBER': '3XF0MFB0030'})"
],
"Type": "Board",
"xyz.openbmc_project.Inventory.Decorator.Asset": {
"BuildDate": "$BOARD_MANUFACTURE_DATE",
"Manufacturer": "$BOARD_MANUFACTURER",
"Model": "$BOARD_PRODUCT_NAME",
"PartNumber": "$BOARD_PART_NUMBER",
"SerialNumber": "$BOARD_SERIAL_NUMBER",
"SparePartNumber": "$BOARD_INFO_AM1"
},
"xyz.openbmc_project.Inventory.Decorator.AssetTag": {
"AssetTag": "$PRODUCT_ASSET_TAG"
},
"xyz.openbmc_project.Inventory.Decorator.Compatible": {
"Names": [
"com.meta.Hardware.Minerva.FanBoard"
]
}
}
```

we want to use a single configuration file for that FRU to avoid
duplication.

```
{
"Exposes": [],
"Name": "$Name",
"Probe": [
"xyz.openbmc_project.Inventory.Source.DevicePresence({'Name': 'FAN*'})"
],
"Type": "Board",
"xyz.openbmc_project.Inventory.Decorator.Asset": {
"Manufacturer": "Unknown",
"Model": "Unknown",
"PartNumber": "Unknown",
"SerialNumber": "Unknown",
"SparePartNumber": "05-100051"
}
}
```

That creates the requirement to have `Name` property to be something
which can show up for example in the fan (or whichever) inventory.

This requirement conflicts with the requirement for `Probe` statements
to be unique and not trigger any unintended probing of unrelated
configurations.

Since `FAN 2` is a good name to use in context of a single system, but
not sufficiently unique to probe a configuration.

This patch populates a `Compatible` field on the
`xyz.openbmc_project.Inventory.Source.DevicePresence` interface which
allows to rewrite above `Probe` statement as:

```
"xyz.openbmc_project.Inventory.Source.DevicePresence({'Name': 'FAN*', 'Compatible': 'com.meta.Hardware.Minerva*'})"
```

which will be unique and not probe accidentally on other systems.

The PDI change is [4].

The value for `Compatible` field is taken from the parent inventory item
object path, which can have an optional
"xyz.openbmc_project.Inventory.Decorator.Compatible" configured.

From my perspective, entity-manager does not currently support probing
on properties which have an array type [3], so we simply take the first
value if there are multiple compatible strings on the decorator.

In case there is no such decorator, the `Compatible` string will be
empty.

Alternatives considered:

- configuring a `Compatible` property on `GPIODeviceDetect` schema.

This creates configuration bloat as all such instances are already
identified by `Name` in context of a single system.

- expanding `Probe` statement to also probe on the baseboard.

This is undesirable as currently `Probe` statement is kind of broken
[2], does not support nested expressions and also does not handle
boolean operator precedence correctly.

Tested:

Unit Tests have been adjusted.

On Tyan S8030 added following example record for some gpio.

```
{
"Name": "ExampleDevice",
"PresencePinNames": [ "BMC_SPD_SEL" ],
"PresencePinValues": [ 0 ],
"Type": "GPIODeviceDetect"
},
```

compatible decorator is not set, so compatible is empty when it detects
the Example Device.

```
xyz.openbmc_project.Inventory.Source.DevicePresence interface - - -
.Compatible property s "" emits-change writable
.Name property s "ExampleDevice" emits-change writable
```

Adding following compatible decorator
```
"xyz.openbmc_project.Inventory.Decorator.Compatible": {
"Names": [
"com.tyan.Hardware.Mainboard.S8030",
"com.tyan.Hardware.Mainboard.S8030GM"
]
}
```

And the daemon picks it up
```
Aug 22 14:43:35 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: found configuration interface at xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/ExampleDevice xyz.openbmc_project.Configuration.GPIODeviceDetect
Aug 22 14:43:35 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: Found 'Compatible' decorator on parent inventory path of /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/ExampleDevice
Aug 22 14:43:35 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: adding configuration for /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/ExampleDevice
Aug 22 14:43:36 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: found valid configuration at object path /xyz/openbmc_project/inventory/system/board/Tyan_S8030_Baseboard/ExampleDevice
Aug 22 14:43:36 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: Watching gpio events for BMC_SPD_SEL
Aug 22 14:43:36 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: GPIO line BMC_SPD_SEL went low
Aug 22 14:43:36 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: Updating dbus interface for config ExampleDevice
Aug 22 14:43:36 s8030-bmc-30303035c0c1 gpio-presence-sensor[7336]: Detected ExampleDevice as present, adding dbus interface
```

Then the Compatible string is exposed as expected
```
xyz.openbmc_project.Inventory.Source.DevicePresence interface - - -
.Compatible property s "com.tyan.Hardware.Mainboard.S8030" emits-change writable
.Name property s "ExampleDevice" emits-change writable
```

References:
[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/82819
[2] https://github.com/openbmc/entity-manager/blob/e86be7c648b6fa6e457928b4348e561b852b79bb/src/entity_manager/perform_probe.cpp#L165
[3] https://github.com/openbmc/entity-manager/blob/e86be7c648b6fa6e457928b4348e561b852b79bb/src/utils.cpp#L116
[4] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/83061

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

show more ...

a005e3e610-Oct-2025 Patrick Williams <patrick@stwcx.xyz>

gpio-presence: add test cases for GPIO comparisons

Add test cases for the DevicePresence class, where GPIO state
is cached in a map and then decisions about device presence are
made. Add coverage o

gpio-presence: add test cases for GPIO comparisons

Add test cases for the DevicePresence class, where GPIO state
is cached in a map and then decisions about device presence are
made. Add coverage of many GPIO + cache states for the determination.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I3a11c174d6a0a8b92c446dde3e0345b195a67a9c

show more ...


/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/minerva/minerva_pdb_hsc_xdp.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_mb.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_pdb2.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_scm.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_cable.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_cpu.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_cxl_board_vr_mps_tchip_stm.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_cxl_board_vr_raa_tchip_tic.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/meta/yv5/yosemite5_medusa_board.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_scm.json
/openbmc/entity-manager/schemas/cpld.json
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/global.json
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/log_device_inventory.cpp
/openbmc/entity-manager/src/entity_manager/perform_scan.cpp
/openbmc/entity-manager/src/entity_manager/power_status_monitor.cpp
/openbmc/entity-manager/src/entity_manager/utils.cpp
/openbmc/entity-manager/src/entity_manager/utils.hpp
meson.build
test_gpio_presence_state.cpp
10c5765630-Sep-2025 Ed Tanous <etanous@nvidia.com>

Allow decoding MAC addresses in some FRUs

Some motherboards store their mac address in a zlib compressed chunk at
a known location in the FRU. Decode that section, and pull the mac
address into the

Allow decoding MAC addresses in some FRUs

Some motherboards store their mac address in a zlib compressed chunk at
a known location in the FRU. Decode that section, and pull the mac
address into the appropriate field.

This requires some refactoring so that the indexing can now have the
indexes passed through the various parse functions.

To use this functionality requires the use of libxml and zlib, which are
added as new dependencies.

Change-Id: Icb5c2e46e2a08ca83b3559892169ee2b3f319b2e
Signed-off-by: Ed Tanous <etanous@nvidia.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 ...

a915884a30-Sep-2025 Ed Tanous <etanous@nvidia.com>

Fix signed comparison warnings

Tested: unit tests pass. Unit test only change.

Change-Id: I9b105cf862b70cc788d8aea345504c7e8682eb34
Signed-off-by: Ed Tanous <etanous@nvidia.com>

25680e3d03-Oct-2025 Marc Olberding <molberding@nvidia.com>

fru-device: fixup fru edit commit

Adds a number of fixups to review comments and simplifications
to the flow of the previous fru-edit commit.

Tested: Edited FRU property on nvl32-obmc
```
root@nvl3

fru-device: fixup fru edit commit

Adds a number of fixups to review comments and simplifications
to the flow of the previous fru-edit commit.

Tested: Edited FRU property on nvl32-obmc
```
root@nvl32-obmc:/sys/bus/i2c/devices/4-0051# busctl introspect xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/MSX4_MG1_000
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.FruDevice interface - - -
.UpdateFruField method ss b -
.ADDRESS property u 81 emits-change
.BOARD_INFO_AM1 property s "NULL" emits-change writable
.BOARD_LANGUAGE_CODE property s "0" emits-change
.BOARD_MANUFACTURER property s "Giga Computing" emits-change writable
.BOARD_MANUFACTURE_DATE property s "20250101T000800Z" emits-change
.BOARD_PART_NUMBER property s "123456789AB" emits-change writable
.BOARD_PRODUCT_NAME property s "MSX4-MG1-000" emits-change writable
.BOARD_SERIAL_NUMBER property s "S2510200007" emits-change writable
.BUS property u 4 emits-change
.CHASSIS_PART_NUMBER property s "01234567" emits-change writable
.CHASSIS_SERIAL_NUMBER property s "01234567890123456789AB" emits-change writable
.CHASSIS_TYPE property s "23" emits-change
.Common_Format_Version property s "1" emits-change
.PRODUCT_ASSET_TAG property s "01234567890" emits-change writable
.PRODUCT_LANGUAGE_CODE property s "0" emits-change
.PRODUCT_MANUFACTURER property s "Giga Computing" emits-change writable
.PRODUCT_PART_NUMBER property s "000000000001" emits-change writable
.PRODUCT_PRODUCT_NAME property s "XL44-SX2-AAS1-000" emits-change writable
.PRODUCT_SERIAL_NUMBER property s "01234567890123" emits-change writable
.PRODUCT_VERSION property s "0100" emits-change writable
root@nvl32-obmc:/sys/bus/i2c/devices/4-0051# busctl call xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/MSX4_MG1_000 xyz.openbmc_project.FruDevice UpdateFruField ss "PRODUCT_ASSET_TAG" "12345678901234"
b true
root@nvl32-obmc:/sys/bus/i2c/devices/4-0051# busctl introspect xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/MSX4_MG1_000
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.FruDevice interface - - -
.UpdateFruField method ss b -
.ADDRESS property u 81 emits-change
.BOARD_INFO_AM1 property s "NULL" emits-change writable
.BOARD_LANGUAGE_CODE property s "0" emits-change
.BOARD_MANUFACTURER property s "Giga Computing" emits-change writable
.BOARD_MANUFACTURE_DATE property s "20250101T000800Z" emits-change
.BOARD_PART_NUMBER property s "123456789AB" emits-change writable
.BOARD_PRODUCT_NAME property s "MSX4-MG1-000" emits-change writable
.BOARD_SERIAL_NUMBER property s "S2510200007" emits-change writable
.BUS property u 4 emits-change
.CHASSIS_PART_NUMBER property s "01234567" emits-change writable
.CHASSIS_SERIAL_NUMBER property s "01234567890123456789AB" emits-change writable
.CHASSIS_TYPE property s "23" emits-change
.Common_Format_Version property s "1" emits-change
.PRODUCT_ASSET_TAG property s "12345678901234" emits-change writable
.PRODUCT_LANGUAGE_CODE property s "0" emits-change
.PRODUCT_MANUFACTURER property s "Giga Computing" emits-change writable
.PRODUCT_PART_NUMBER property s "000000000001" emits-change writable
.PRODUCT_PRODUCT_NAME property s "XL44-SX2-AAS1-000" emits-change writable
.PRODUCT_SERIAL_NUMBER property s "01234567890123" emits-change writable
.PRODUCT_VERSION property s "0100" emits-change writable
```

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

show more ...

cf28896c06-Jun-2025 Naresh Solanki <naresh.solanki@9elements.com>

fru-device: Add support to dynamically add FRU fields

This patch adds the ability to dynamically add or update FRU fields
at runtime, enhancing system flexibility in managing FRU data.

Previously,

fru-device: Add support to dynamically add FRU fields

This patch adds the ability to dynamically add or update FRU fields
at runtime, enhancing system flexibility in managing FRU data.

Previously, field modification was limited to the preassigned space
available in the FRU area. Any attempt to exceed this boundary would
fail:
Example:
```busctl set-property xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/MDA_WCU_AI xyz.openbmc_project.FruDevice CHASSIS_SERIAL_NUMBER s "1234567890123"
busctl set-property xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/MDA_WCU_AI xyz.openbmc_project.FruDevice CHASSIS_SERIAL_NUMBER s "12345678901234"
Failed to set property CHASSIS_SERIAL_NUMBER on interface xyz.openbmc_project.FruDevice: Invalid argument
hexdump -C /sys/bus/i2c/drivers/at24/8-0051/eeprom
```
With this patch, the FRU area can extend dynamically. All FRU areas are
repacked, and the FRU common header is updated without errors:
Example:
```
busctl set-property xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/MDA_WCU_AI xyz.openbmc_project.FruDevice CHASSIS_SERIAL_NUMBER s "1234567890123"
busctl set-property xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/MDA_WCU_AI xyz.openbmc_project.FruDevice CHASSIS_SERIAL_NUMBER s "12345678901234567890123456789"
```
Also check eeprom so that FRU areas get aligned properly.

Key changes:
- Introduced support through the `UpdateFruField` API.
- Utilizes `disassembleFruData` to parse existing FRU data into editable
fields.
- Applies field changes using `setField`, which handles updates or
additions.
- Reconstructs updated FRU binary data with `assembleFruData` before
committing it back.

TESTED=Build for Tiagopass & test on QEMU using below commands:
busctl call xyz.openbmc_project.FruDevice \
/xyz/openbmc_project/FruDevice/BMC_Storage_Module \
xyz.openbmc_project.FruDevice UpdateFruField ss \
"CHASSIS_INFO_AM10" "1234567890"

Readback:
busctl introspect xyz.openbmc_project.FruDevice \
/xyz/openbmc_project/FruDevice/BMC_Storage_Module

Change-Id: I5df2776211cb5cfd23570e479568da4717df3097
Signed-off-by: Naresh Solanki <naresh.solanki@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/gigabyte/gigabyte_msx4_mg1.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/meta/santabarbara/santabarbara_evb_pdb2.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_mb.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_max_pwr_silergy.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_max_pwr_ti.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_ti_pwr_silergy.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_ti_pwr_ti.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_cxl_board.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_mb.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_medusa_board.json
/openbmc/entity-manager/configurations/micron/micron_7450.json
/openbmc/entity-manager/configurations/nuvoton/nuvoton_npcm8xx_evb.json
/openbmc/entity-manager/configurations/nvidia/nvidia_rtx6000_pro.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
/openbmc/entity-manager/schemas/cpld.json
/openbmc/entity-manager/schemas/exposes_record.json
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/legacy.json
/openbmc/entity-manager/schemas/meson.build
/openbmc/entity-manager/schemas/spdm_endpoint.json
/openbmc/entity-manager/src/entity_manager/configuration.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.hpp
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/perform_probe.hpp
/openbmc/entity-manager/src/entity_manager/perform_scan.hpp
/openbmc/entity-manager/src/fru_device/fru_device.cpp
/openbmc/entity-manager/src/fru_device/fru_utils.cpp
/openbmc/entity-manager/src/fru_device/fru_utils.hpp
test_fru-utils.cpp
8ca0940927-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

test: topology: new configurations

Add tests for the new topology schema.

New testcases:
- 2 powersupplies powering a board, PSUs and board contained by a
chassis. Similar to a Tyan S8030.
- 4 Bl

test: topology: new configurations

Add tests for the new topology schema.

New testcases:
- 2 powersupplies powering a board, PSUs and board contained by a
chassis. Similar to a Tyan S8030.
- 4 Blades, each contained by a SubChassis, all 4 SubChassis contained
by a SuperChassis. (modeled after Yv3 [1])

Tested: Topology Unit Tests Pass

References:
[1] https://www.opencompute.org/products/237/wiwynn-yosemite-v3-server

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

show more ...


/openbmc/entity-manager/configurations/asrock/asrock_altrad8.json
/openbmc/entity-manager/configurations/compuware_cdr_9011_3m1_psu.json
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/minerva/minerva_pdb_hsc_xdp.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_mb.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_pcie_switch_board.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_cable.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_max_adc_ti_led_nxp_ons_efuse_max.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_max_adc_ti_led_nxp_ons_efuse_mps.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_nct_adc_max_led_nxp_ons_efuse_max.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_nct_adc_max_led_nxp_ons_efuse_mps.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_max_pwr_rt.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_ti_pwr_rt.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_cxl_board.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_medusa_board.json
/openbmc/entity-manager/configurations/nvidia/nvidia_cx8_mezzanine_module.json
/openbmc/entity-manager/configurations/supermicro-pws-920p-sq_psu.json
/openbmc/entity-manager/configurations/tyan/tyan_s5549_baseboard.json
/openbmc/entity-manager/configurations/tyan/tyan_s7106_baseboard.json
/openbmc/entity-manager/configurations/tyan/tyan_s8030_baseboard.json
/openbmc/entity-manager/configurations/tyan/tyan_s8036_baseboard.json
/openbmc/entity-manager/configurations/tyan/tyan_s8040_baseboard.json
/openbmc/entity-manager/configurations/tyan/tyan_s8047_baseboard.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
/openbmc/entity-manager/src/entity_manager/topology.cpp
/openbmc/entity-manager/src/entity_manager/topology.hpp
/openbmc/entity-manager/src/entity_manager/utils.cpp
/openbmc/entity-manager/src/fru_device/fru_device.cpp
/openbmc/entity-manager/src/fru_device/fru_utils.cpp
/openbmc/entity-manager/src/utils.hpp
test_topology.cpp
7962944f20-Aug-2025 Chau Ly <chaul@amperecomputing.com>

entity-manager: Handle left-over template vars

With current implementations for template variable replacement, if a
variable does not exist on D-Bus, it will be left as is and will appear
in the fin

entity-manager: Handle left-over template vars

With current implementations for template variable replacement, if a
variable does not exist on D-Bus, it will be left as is and will appear
in the final configuration. However, if the string is intended to be
replaced and not handled properly after a replacement failure, the
variable itself will possibly be shown to users via Redfish/IPMI if the
consuming properties are used by those.

After performing the template variable replacement, a post-processing
step is added to check for any leftover template variables. These
leftovers may occur if the probed property is not available on D-Bus.
Any such variables are replaced with an empty string to avoid
unresolved placeholders.

The boundary of a template var is decided to be from the character "$"
to before a " " character, or the end of the keyPair's value string.
This conforms to the implicit rules currently applied to template
variable configuration that a template variable should not be
immediately followed by an arbitrary string without a space separating
them. This pattern can also be found in how the math configurations are
extracted, which looks for a math operator at the position that is one
character away from the end of the template variable [1].

The unit tests are also updated to test the new function that handles
left-over template variables.

[1]: https://github.com/openbmc/entity-manager/blob/3911d80afb6956b17c4f4b9a76c7eb45bb76e3b9/src/entity_manager/utils.cpp#L134

Tested: Unit tests pass

Tested with real configuration:

`$PRODUCT_PRODUCT_KK_NAME`, `$PRODUCT_KK_VERSION` and
`$PRODUCT_SERIAL_KK_NUMBER` are non-existent probed property on D-Bus.

```
{
"Exposes": [
...
],
"Name": "Mt.Mitchell_Motherboard",
"Probe": [
"xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'MB'})",
"AND",
"FOUND('Mt.Mitchell_DCSCM_BMC')"
],
"Type": "Board",
"xyz.openbmc_project.Common.UUID": {
"UUID": "$MULTIRECORD_UUID"
},
"xyz.openbmc_project.Inventory.Decorator.Asset": {
"BuildDate": "$BOARD_MANUFACTURE_DATE",
"Manufacturer": "$PRODUCT_MANUFACTURER",
"Model": "$PRODUCT_PRODUCT_KK_NAME $PRODUCT_KK_VERSION",
"PartNumber": "$PRODUCT_PART_NUMBER",
"SerialNumber": "$PRODUCT_SERIAL_KK_NUMBER"
}
}
```

D-Bus results after the configuration is processed:

- `Model` has a space character which is the space between
`$PRODUCT_PRODUCT_KK_NAME` and `$PRODUCT_KK_VERSION` in the
configuration.

- SerialNumber is empty.

```
$ busctl introspect xyz.openbmc_project.EntityManager \
/xyz/openbmc_project/inventory/system/board/Mt_Mitchell_Motherboard

xyz.openbmc_project.Common.UUID interface - -
.UUID property s "xx-xx"
xyz.openbmc_project.Inventory.Decorator.Asset interface - -
.BuildDate property s "20221018Z"
.Manufacturer property s "NULL"
.Model property s " "
.PartNumber property s "ProductPN"
.SerialNumber property s ""

Change-Id: I4499baf3ebe9560e13932a49e324d1c8b0255623
Signed-off-by: Chau Ly <chaul@amperecomputing.com>

show more ...


/openbmc/entity-manager/OWNERS
/openbmc/entity-manager/configurations/acbel/acbel_r1ca2122a_psu.json
/openbmc/entity-manager/configurations/acbel/acbell_rica_psu.json
/openbmc/entity-manager/configurations/ampere/mtjade.json
/openbmc/entity-manager/configurations/ampere/mtjefferson_bmc.json
/openbmc/entity-manager/configurations/ampere/mtjefferson_bp.json
/openbmc/entity-manager/configurations/ampere/mtjefferson_mb.json
/openbmc/entity-manager/configurations/ampere/mtjefferson_riser.json
/openbmc/entity-manager/configurations/ampere/mtmitchell_bmc.json
/openbmc/entity-manager/configurations/ampere/mtmitchell_bp.json
/openbmc/entity-manager/configurations/ampere/mtmitchell_mb.json
/openbmc/entity-manager/configurations/ampere/mtmitchell_riser.json
/openbmc/entity-manager/configurations/aspower/aspower_u1a-d10550_psu.json
/openbmc/entity-manager/configurations/aspower/aspower_u1a-d10800_psu.json
/openbmc/entity-manager/configurations/aspower/aspower_u1a-d11200_psu.json
/openbmc/entity-manager/configurations/aspower/aspower_u1a-d11600_psu.json
/openbmc/entity-manager/configurations/aspower/aspower_u1d-d10800_psu.json
/openbmc/entity-manager/configurations/asrock/asrock_altrad8.json
/openbmc/entity-manager/configurations/asrock/asrock_c3_medium_x86.json
/openbmc/entity-manager/configurations/asrock/asrock_e3c246d4i.json
/openbmc/entity-manager/configurations/asrock/asrock_e3c256d4i.json
/openbmc/entity-manager/configurations/asrock/asrock_m3_small_x86.json
/openbmc/entity-manager/configurations/asrock/asrock_n3_xlarge_x86.json
/openbmc/entity-manager/configurations/asrock/asrock_romed8hm3.json
/openbmc/entity-manager/configurations/asrock/asrock_spc621d8hm3.json
/openbmc/entity-manager/configurations/asrock/asrock_x470d4u.json
/openbmc/entity-manager/configurations/delta/delta_awf2dc3200w_psu.json
/openbmc/entity-manager/configurations/delta/delta_dps-1600ab_psu.json
/openbmc/entity-manager/configurations/delta/delta_dps-2000ab_psu.json
/openbmc/entity-manager/configurations/delta/delta_dps-750xb_psu.json
/openbmc/entity-manager/configurations/gigabyte/gigabyte_msx4_mg1.json
/openbmc/entity-manager/configurations/ibm/balcones.json
/openbmc/entity-manager/configurations/ibm/bellavista.json
/openbmc/entity-manager/configurations/ibm/blueridge_1s4u_chassis.json
/openbmc/entity-manager/configurations/ibm/blueridge_2u_chassis.json
/openbmc/entity-manager/configurations/ibm/blueridge_4u_chassis.json
/openbmc/entity-manager/configurations/ibm/blyth.json
/openbmc/entity-manager/configurations/ibm/blyth2.json
/openbmc/entity-manager/configurations/ibm/bonnell.json
/openbmc/entity-manager/configurations/ibm/everest.json
/openbmc/entity-manager/configurations/ibm/fuji.json
/openbmc/entity-manager/configurations/ibm/genesis3_baseboard.json
/openbmc/entity-manager/configurations/ibm/genesis3_chassis.json
/openbmc/entity-manager/configurations/ibm/genesis3_psu.json
/openbmc/entity-manager/configurations/ibm/ibm_tacoma_rack_controller.json
/openbmc/entity-manager/configurations/ibm/ingraham.json
/openbmc/entity-manager/configurations/ibm/pennybacker.json
/openbmc/entity-manager/configurations/ibm/rainier_1s4u_chassis.json
/openbmc/entity-manager/configurations/ibm/rainier_2u_chassis.json
/openbmc/entity-manager/configurations/ibm/rainier_4u_chassis.json
/openbmc/entity-manager/configurations/ibm/sbp1_baseboard.json
/openbmc/entity-manager/configurations/ibm/sbp1_chassis.json
/openbmc/entity-manager/configurations/ibm/sbp1_hbm.json
/openbmc/entity-manager/configurations/ibm/sbp1_nvme.json
/openbmc/entity-manager/configurations/ibm/sbp1_psu.json
/openbmc/entity-manager/configurations/ibm/sbp1_rssd.json
/openbmc/entity-manager/configurations/ibm/storm_king.json
/openbmc/entity-manager/configurations/ibm/storm_king2.json
/openbmc/entity-manager/configurations/ibm/system1_baseboard.json
/openbmc/entity-manager/configurations/ibm/system1_chassis.json
/openbmc/entity-manager/configurations/ibm/system1_psu.json
/openbmc/entity-manager/configurations/ibm/tola.json
/openbmc/entity-manager/configurations/ibm/waterloo.json
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/bletchley/bletchley_baseboard.json
/openbmc/entity-manager/configurations/meta/bletchley/bletchley_chassis.json
/openbmc/entity-manager/configurations/meta/bletchley/bletchley_frontpanel.json
/openbmc/entity-manager/configurations/meta/bletchley15/bletchley15_baseboard.json
/openbmc/entity-manager/configurations/meta/bletchley15/bletchley15_chassis.json
/openbmc/entity-manager/configurations/meta/catalina/catalina_fio.json
/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_hdd_nvme.json
/openbmc/entity-manager/configurations/meta/catalina/catalina_osfp.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/catalina/catalina_scm.json
/openbmc/entity-manager/configurations/meta/clemente/clemente_fio.json
/openbmc/entity-manager/configurations/meta/clemente/clemente_hdd.json
/openbmc/entity-manager/configurations/meta/clemente/clemente_hdd_nvme.json
/openbmc/entity-manager/configurations/meta/clemente/clemente_interposer.json
/openbmc/entity-manager/configurations/meta/clemente/clemente_osfp.json
/openbmc/entity-manager/configurations/meta/clemente/clemente_pdb.json
/openbmc/entity-manager/configurations/meta/clemente/clemente_scm.json
/openbmc/entity-manager/configurations/meta/harma/harma_bsm.json
/openbmc/entity-manager/configurations/meta/harma/harma_fanboard.json
/openbmc/entity-manager/configurations/meta/harma/harma_mb.json
/openbmc/entity-manager/configurations/meta/harma/harma_mb_vr_infineon.json
/openbmc/entity-manager/configurations/meta/harma/harma_scm.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_aegis.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_cmm.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_cmm_bsm.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_cmm_hsc_infineon.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_cmm_misc_boards.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_cmm_scm.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_fanboard_adc_silergy.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_fanboard_adc_ti.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_fanboard_misc.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_janga_smb.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_pdb.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_pdb_hsc_xdp.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_pttv.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_sitv.json
/openbmc/entity-manager/configurations/meta/minerva/minerva_tahan_smb.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_cable.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_e1s_bp.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_evb.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_evb_pdb2.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_mb.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_pcie_switch_board.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_pdb1.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_pdb2.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_pttv.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_rainbow.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_scm.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_sitv_eth.json
/openbmc/entity-manager/configurations/meta/santabarbara/santabarbara_sitv_pcie.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_cable.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_fanboard_adc_max.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_fanboard_adc_ocp_max.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_fanboard_adc_ocp_tic.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_fanboard_adc_tic.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_ioboard.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_ledboard.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_rmc_hsc_ltc_fsc_max_p24vsen_ina_gndsen_ina_p12vbrick_delta.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_rmc_hsc_xdp_fsc_nct_p24vsen_isl_gndsen_isl_p12vbrick_flex.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_scm.json
/openbmc/entity-manager/configurations/meta/ventura/ventura_valve.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_max_adc_ti_led_nxp_ons_efuse_max.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_max_adc_ti_led_nxp_ons_efuse_mps.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_nct_adc_max_led_nxp_ons_efuse_max.json
/openbmc/entity-manager/configurations/meta/yv4/fanboard/yosemite4_fanboard_fsc_nct_adc_max_led_nxp_ons_efuse_mps.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_rns_isl_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yv4/medusaboard/yosemite4_medusaboard_adc_ti_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_max_pwr_silergy.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_max_pwr_ti.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_ti_pwr_silergy.json
/openbmc/entity-manager/configurations/meta/yv4/spiderboard/yosemite4_spiderboard_adc_ti_pwr_ti.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_chassis.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_cpu.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_floatingfalls.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_sentineldome_chassis.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_sentineldome_t1.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_sentineldome_t1_retimer.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_sentineldome_t2.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_sentineldome_t2_retimer.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4_wailuafalls.json
/openbmc/entity-manager/configurations/meta/yv4/yosemite4n.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_1kw_paddle_board.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_e1s_expansion_board.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_mb.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_medusa_board.json
/openbmc/entity-manager/configurations/meta/yv5/yosemite5_scm.json
/openbmc/entity-manager/configurations/nvidia/nvidia_bmc_p3809.json
/openbmc/entity-manager/configurations/nvidia/nvidia_cx7_mezzanine_module.json
/openbmc/entity-manager/configurations/nvidia/nvidia_cx8_mezzanine_module.json
/openbmc/entity-manager/configurations/nvidia/nvidia_gb200.json
/openbmc/entity-manager/configurations/nvidia/nvidia_gb300.json
/openbmc/entity-manager/configurations/nvidia/nvidia_hmc.json
/openbmc/entity-manager/configurations/nvidia/nvidia_imgx_connectx8_supernic_switch.json
/openbmc/entity-manager/configurations/nvidia/nvidia_rtx6000_pro.json
/openbmc/entity-manager/configurations/solum/pssf132202a.json
/openbmc/entity-manager/configurations/solum/pssf162205a.json
/openbmc/entity-manager/configurations/solum/pssf212201a.json
/openbmc/entity-manager/configurations/solum/pssf222201a.json
/openbmc/entity-manager/configurations/solum/solum_pssf162202_psu.json
/openbmc/entity-manager/configurations/yadro/vegman_n110_baseboard.json
/openbmc/entity-manager/configurations/yadro/vegman_rx20_baseboard.json
/openbmc/entity-manager/configurations/yadro/vegman_sx20_baseboard.json
/openbmc/entity-manager/meson.build
/openbmc/entity-manager/meson.options
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/legacy.json
/openbmc/entity-manager/schemas/openbmc-dbus.json
/openbmc/entity-manager/schemas/valve.json
/openbmc/entity-manager/src/entity_manager/configuration.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.hpp
/openbmc/entity-manager/src/entity_manager/devices.hpp
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/log_device_inventory.cpp
/openbmc/entity-manager/src/entity_manager/meson.build
/openbmc/entity-manager/src/entity_manager/topology.cpp
/openbmc/entity-manager/src/entity_manager/topology.hpp
/openbmc/entity-manager/src/entity_manager/utils.cpp
/openbmc/entity-manager/src/entity_manager/utils.hpp
/openbmc/entity-manager/src/fru_device/fru_utils.cpp
entity_manager/test_entity-manager.cpp
32e7418c20-Aug-2025 Alexander Hansen <alexander.hansen@9elements.com>

topology: getAssocs param board paths view

`getAssocs` function received a parameter
```
const std::map<std::string, std::string>& boards
```
which maps object paths to board names, but only queried

topology: getAssocs param board paths view

`getAssocs` function received a parameter
```
const std::map<std::string, std::string>& boards
```
which maps object paths to board names, but only queried the object
paths. Pass an `std::view::keys` instead to minimize the API surface.

Tested: Topology Unit Tests Pass

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

show more ...

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

make Topology::getAssocs return association sets

Change return type:

```
-std::unordered_map<std::string, std::vector<Association>>
+std::unordered_map<std::string, std::set<Association>>
```

Reca

make Topology::getAssocs return association sets

Change return type:

```
-std::unordered_map<std::string, std::vector<Association>>
+std::unordered_map<std::string, std::set<Association>>
```

Recall
```
using Association = std::tuple<std::string, std::string, std::string>;
```

The change makes the association code more robus as adding an
association to the set multiple times is supported and cannot cause
issues later on.

Also fix the tests which assumed some ordering of the associations
returned by the function.

Tested: Topology Unit Tests pass.

There is one call site in non-test code:
```
src/entity_manager/entity_manager.cpp
91: topology.getAssocs(newBoards))
```

which only iterates the destructured map entries and creates DBus
interfaces for association definitions.

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

show more ...

89092a9c02-Jun-2025 Naresh Solanki <naresh.solanki@9elements.com>

fru-device: Add option to allow updating all FRU fields

This patch introduces a new meson option `fru-update-property` to enable
updating FRU properties via D-Bus. This is particularly useful during

fru-device: Add option to allow updating all FRU fields

This patch introduces a new meson option `fru-update-property` to enable
updating FRU properties via D-Bus. This is particularly useful during
lab testing to modify FRU fields as needed.

TESTED=Build for tiagopass with fru-update-property set to true.
Verify the following:
1. Run command:
`busctl introspect xyz.openbmc_project.FruDevice
/xyz/openbmc_project/FruDevice/BMC_Storage_Module`

2. Verify the FRU fields are `writable`
Example:
...
.PRODUCT_ASSET_TAG property s "XXXXXXX"
emits-change writable
.PRODUCT_FRU_VERSION_ID property s "1.0"
emits-change writable
.PRODUCT_INFO_AM1 property s "XXXXXXXXX"
emits-change writable
.PRODUCT_INFO_AM2 property s "Config A"
emits-change writable
...

3. Update FRU field:
busctl set-property xyz.openbmc_project.FruDevice
/xyz/openbmc_project/FruDevice/BMC_Storage_Module
xyz.openbmc_project.FruDevice PRODUCT_INFO_AM2 s "123"

4. Verify by reading the field:
busctl get-property xyz.openbmc_project.FruDevice
/xyz/openbmc_project/FruDevice/BMC_Storage_Module
xyz.openbmc_project.FruDevice PRODUCT_INFO_AM2
s "123"

root@tiogapass:~# hexdump /sys/bus/i2c/drivers/at24/6-0054/eeprom
0000000 0001 0100 000d f100 0c01 3600 d0e6 58c6
0000010 5858 5858 d258 4d42 2043 7453 726f 6761
0000020 2065 6f4d 7564 656c 58cd 5858 5858 5858
0000030 5858 5858 5858 58ce 5858 5858 5858 5858
0000040 5858 5858 c358 2e31 c930 5858 5858 5858
0000050 5858 d258 5858 5858 5858 5858 5858 5858
0000060 5858 5858 5858 39c1 0c01 c600 5858 5858
0000070 5858 54d2 6f69 6167 5020 7361 2073 6953
0000080 676e 656c ce32 5858 5858 5858 5858 5858
0000090 5858 5858 58c4 5858 cd32 5858 5858 5858
00000a0 5858 5858 5858 c758 5858 5858 5858 c358
00000b0 2e31 c930 5858 5858 5858 5858 c858 6f43
00000c0 666e 6769 4120 45c1 0000 0000 0000 0000
00000d0 0000 0000 0000 0000 0000 0000 0000 0000
*
0002000
root@tiogapass:~# busctl set-property xyz.openbmc_project.FruDevice
/xyz/openbmc_project/FruDevice/BMC_Storage_Module
xyz.openbmc_project.FruDevice PRODUCT_INFO_AM1 s "123456"
root@tiogapass:~# hexdump /sys/bus/i2c/drivers/at24/6-0054/eeprom
0000000 0001 0100 000d f100 0c01 3600 d0e6 58c6
0000010 5858 5858 d258 4d42 2043 7453 726f 6761
0000020 2065 6f4d 7564 656c 58cd 5858 5858 5858
0000030 5858 5858 5858 58ce 5858 5858 5858 5858
0000040 5858 5858 c358 2e31 c930 5858 5858 5858
0000050 5858 d258 5858 5858 5858 5858 5858 5858
0000060 5858 5858 5858 39c1 0c01 c600 5858 5858
0000070 5858 54d2 6f69 6167 5020 7361 2073 6953
0000080 676e 656c ce32 5858 5858 5858 5858 5858
0000090 5858 5858 58c4 5858 cd32 5858 5858 5858
00000a0 5858 5858 5858 c758 5858 5858 5858 c358
00000b0 2e31 c630 3231 3433 3635 43c8 6e6f 6966
00000c0 2067 c141 0000 4f00 0000 0000 0000 0000
00000d0 0000 0000 0000 0000 0000 0000 0000 0000
*
0002000

Change-Id: Iff11d64a291e6bdb653b6c524ca90e2e16003ec3
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>

show more ...


/openbmc/entity-manager/configurations/cx8_ocp.json
/openbmc/entity-manager/configurations/hpe/dl360g12_baseboard.json
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/bletchley15_chassis.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_ltc_fsc_max_vr_delta_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_ltc_fsc_max_vr_raa_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_xdp_fsc_nct_vr_raa_gndsen_max_p12vsen_isl_p12vfan_rtt.json
/openbmc/entity-manager/configurations/meta/clemente_hdd_nvme.json
/openbmc/entity-manager/configurations/meta/clemente_pdb.json
/openbmc/entity-manager/configurations/meta/darwin_chassis.json
/openbmc/entity-manager/configurations/meta/harma_fanboard.json
/openbmc/entity-manager/configurations/meta/harma_mb_vr_infineon.json
/openbmc/entity-manager/configurations/meta/minerva_aegis.json
/openbmc/entity-manager/configurations/meta/minerva_cmm.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_hsc_infineon.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_misc_boards.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_scm.json
/openbmc/entity-manager/configurations/meta/minerva_fanboard_adc_silergy.json
/openbmc/entity-manager/configurations/meta/minerva_fanboard_adc_ti.json
/openbmc/entity-manager/configurations/meta/minerva_fanboard_misc.json
/openbmc/entity-manager/configurations/meta/minerva_pdb.json
/openbmc/entity-manager/configurations/meta/minerva_pdb_hsc_xdp.json
/openbmc/entity-manager/configurations/meta/santabarbara_pcie_switch_board.json
/openbmc/entity-manager/configurations/meta/santabarbara_pdb1.json
/openbmc/entity-manager/configurations/meta/santabarbara_scm.json
/openbmc/entity-manager/configurations/meta/santabarbara_sitv_eth.json
/openbmc/entity-manager/configurations/meta/ventura_cable.json
/openbmc/entity-manager/configurations/meta/ventura_fanboard_adc_max.json
/openbmc/entity-manager/configurations/meta/ventura_fanboard_adc_ocp_max.json
/openbmc/entity-manager/configurations/meta/ventura_fanboard_adc_ocp_tic.json
/openbmc/entity-manager/configurations/meta/ventura_fanboard_adc_tic.json
/openbmc/entity-manager/configurations/meta/ventura_scm.json
/openbmc/entity-manager/configurations/meta/yosemite5_e1s_expansion_board.json
/openbmc/entity-manager/configurations/meta/yosemite5_medusa_board.json
/openbmc/entity-manager/configurations/nvidia_cx7_mezzanine_module.json
/openbmc/entity-manager/configurations/nvidia_cx8_mezzanine_module.json
/openbmc/entity-manager/configurations/tyan/tyan_s8030_baseboard.json
/openbmc/entity-manager/meson.build
/openbmc/entity-manager/meson.options
/openbmc/entity-manager/schemas/exposes_record.json
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/global.json
/openbmc/entity-manager/schemas/legacy.json
/openbmc/entity-manager/schemas/meson.build
/openbmc/entity-manager/schemas/openbmc-dbus.json
/openbmc/entity-manager/schemas/valve.json
/openbmc/entity-manager/src/devicetree_vpd_parser/machine_context.cpp
/openbmc/entity-manager/src/devicetree_vpd_parser/machine_context.hpp
/openbmc/entity-manager/src/entity_manager/devices.hpp
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/entity_manager.hpp
/openbmc/entity-manager/src/entity_manager/expression.cpp
/openbmc/entity-manager/src/entity_manager/expression.hpp
/openbmc/entity-manager/src/entity_manager/log_device_inventory.hpp
/openbmc/entity-manager/src/entity_manager/main.cpp
/openbmc/entity-manager/src/entity_manager/overlay.cpp
/openbmc/entity-manager/src/entity_manager/overlay.hpp
/openbmc/entity-manager/src/entity_manager/perform_probe.cpp
/openbmc/entity-manager/src/entity_manager/perform_scan.cpp
/openbmc/entity-manager/src/entity_manager/utils.cpp
/openbmc/entity-manager/src/entity_manager/utils.hpp
/openbmc/entity-manager/src/fru_device/fru_device.cpp
/openbmc/entity-manager/src/fru_device/fru_reader.cpp
/openbmc/entity-manager/src/fru_device/fru_reader.hpp
/openbmc/entity-manager/src/fru_device/fru_utils.cpp
/openbmc/entity-manager/src/fru_device/fru_utils.hpp
/openbmc/entity-manager/src/fru_device/meson.build
/openbmc/entity-manager/src/utils.cpp
/openbmc/entity-manager/src/utils.hpp
/openbmc/entity-manager/src/variant_visitors.hpp
meson.build
test_fru-utils.cpp
6f4c6b4e27-Jun-2025 Alexander Hansen <alexander.hansen@9elements.com>

meson: separate directory for entity-manager tests

Since entity-manager is now built with a static library, the sources do
not have to be compiled twice for testing. Link with the static library
ins

meson: separate directory for entity-manager tests

Since entity-manager is now built with a static library, the sources do
not have to be compiled twice for testing. Link with the static library
instead.

Move the test file for entity-manager into a separate directory to split
it in later patches.

Tested: Unit Tests Pass

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

show more ...


/openbmc/entity-manager/configurations/meta/catalina_scm.json
/openbmc/entity-manager/configurations/meta/clemente_pdb.json
/openbmc/entity-manager/configurations/meta/clemente_scm.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_misc_boards.json
/openbmc/entity-manager/configurations/meta/santabarbara_mb.json
/openbmc/entity-manager/configurations/meta/santabarbara_pcie_switch_board.json
/openbmc/entity-manager/configurations/meta/yosemite5_1kw_paddle_board.json
/openbmc/entity-manager/configurations/meta/yosemite5_mb.json
/openbmc/entity-manager/configurations/meta/yosemite5_medusa_board.json
/openbmc/entity-manager/configurations/meta/yosemite5_scm.json
/openbmc/entity-manager/configurations/nvidia_gb300_io_board.json
/openbmc/entity-manager/meson.build
/openbmc/entity-manager/src/entity_manager/configuration.cpp
/openbmc/entity-manager/src/entity_manager/configuration.hpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.hpp
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/entity_manager.hpp
/openbmc/entity-manager/src/entity_manager/log_device_inventory.cpp
/openbmc/entity-manager/src/entity_manager/log_device_inventory.hpp
/openbmc/entity-manager/src/entity_manager/main.cpp
/openbmc/entity-manager/src/entity_manager/meson.build
/openbmc/entity-manager/src/entity_manager/perform_scan.cpp
/openbmc/entity-manager/src/entity_manager/perform_scan.hpp
/openbmc/entity-manager/src/entity_manager/power_status_monitor.cpp
/openbmc/entity-manager/src/entity_manager/power_status_monitor.hpp
/openbmc/entity-manager/src/entity_manager/utils.cpp
/openbmc/entity-manager/src/entity_manager/utils.hpp
/openbmc/entity-manager/src/gpio-presence/config_provider.cpp
/openbmc/entity-manager/src/gpio-presence/gpio_presence_manager.cpp
entity_manager/meson.build
entity_manager/test_entity-manager.cpp
meson.build
a454b30709-Jul-2025 Chau Ly <chaul@amperecomputing.com>

topology: Attach power assoc to downstream port

When an upstream component (e.g. a Baseboard) changes (FRU data update)
but the downstream component (e.g. a PowerSupply board) remains
unchanged, the

topology: Attach power assoc to downstream port

When an upstream component (e.g. a Baseboard) changes (FRU data update)
but the downstream component (e.g. a PowerSupply board) remains
unchanged, the topology update may fail to refresh associations because
the downstream board is not reprocessed dues to this line check [1]
which only associates the upstream entity with the downstream ones that
are in the new board list.

This commit instead attaches the powering/powered_by association to the
downstream entity. As a result:

1. If an upstream entity changes and the downstream is removed, the
association will be removed with the downstream D-Bus object.
2. If an upstream entity changes and the downstream doesn't, the
association will stay with the upstream D-Bus object (the port
topology configurations don't change after FRU updates so there's
no chance that the connection needs to be removed).
3. If a downstream entity changes, the association will be re-attached
to the downstream object.

Unit test is updated accordingly.

Tested on Mt.Jefferson:

1. Configure an upstream port in Baseboard and a downstream power port
in a PowerSupply board which connects to the mentioned upstream port.
2. Update FRU data of the Baseboard, after rescaning, the
powered_by/powering association between the 2 entities still remains.

[1]: https://github.com/openbmc/entity-manager/blob/07fdadae76000e4056afac15c24bb8e80b3c8cd8/src/entity_manager/topology.cpp#L69

Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com>
Signed-off-by: Chau Ly <chaul@amperecomputing.com>
Change-Id: I7883ec0229a093db4a03a683baab24b176adfb7e

show more ...


/openbmc/entity-manager/OWNERS
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/bletchley15_baseboard.json
/openbmc/entity-manager/configurations/meta/bletchley15_chassis.json
/openbmc/entity-manager/configurations/meta/bletchley_baseboard.json
/openbmc/entity-manager/configurations/meta/bletchley_frontpanel.json
/openbmc/entity-manager/configurations/meta/harma_mb.json
/openbmc/entity-manager/configurations/meta/harma_mb_vr_infineon.json
/openbmc/entity-manager/configurations/meta/harma_scm.json
/openbmc/entity-manager/configurations/meta/minerva_aegis.json
/openbmc/entity-manager/configurations/meta/minerva_cmm.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_hsc_infineon.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_misc_boards.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_scm.json
/openbmc/entity-manager/configurations/meta/santabarbara_e1s_bp.json
/openbmc/entity-manager/configurations/meta/santabarbara_mb.json
/openbmc/entity-manager/configurations/meta/santabarbara_pcie_switch_board.json
/openbmc/entity-manager/configurations/meta/santabarbara_pdb1.json
/openbmc/entity-manager/configurations/meta/santabarbara_pdb2.json
/openbmc/entity-manager/configurations/meta/santabarbara_scm.json
/openbmc/entity-manager/configurations/meta/santabarbara_sitv_pcie.json
/openbmc/entity-manager/configurations/meta/ventura_cable.json
/openbmc/entity-manager/configurations/meta/ventura_rmc_hsc_ltc_fsc_max_p24vsen_ina_gndsen_ina_p12vbrick_delta.json
/openbmc/entity-manager/configurations/meta/ventura_rmc_hsc_xdp_fsc_nct_p24vsen_isl_gndsen_isl_p12vbrick_flex.json
/openbmc/entity-manager/configurations/meta/ventura_scm.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t1.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t1_retimer.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t2.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t2_retimer.json
/openbmc/entity-manager/configurations/meta/yosemite4_wailuafalls.json
/openbmc/entity-manager/configurations/meta/yosemite5_1kw_paddle_board.json
/openbmc/entity-manager/configurations/meta/yosemite5_mb.json
/openbmc/entity-manager/configurations/meta/yosemite5_medusa_board.json
/openbmc/entity-manager/configurations/meta/yosemite5_scm.json
/openbmc/entity-manager/configurations/nvidia_gb300.json
/openbmc/entity-manager/configurations/nvidia_gb300_io_board.json
/openbmc/entity-manager/meson.build
/openbmc/entity-manager/meson.options
/openbmc/entity-manager/schemas/cpld.json
/openbmc/entity-manager/schemas/exposes_record.json
/openbmc/entity-manager/schemas/legacy.json
/openbmc/entity-manager/schemas/meson.build
/openbmc/entity-manager/schemas/modbus.json
/openbmc/entity-manager/schemas/nvidia.json
/openbmc/entity-manager/schemas/topology.json
/openbmc/entity-manager/schemas/usb_port.json
/openbmc/entity-manager/src/entity_manager/configuration.cpp
/openbmc/entity-manager/src/entity_manager/configuration.hpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.hpp
/openbmc/entity-manager/src/entity_manager/entity_manager.cpp
/openbmc/entity-manager/src/entity_manager/entity_manager.hpp
/openbmc/entity-manager/src/entity_manager/meson.build
/openbmc/entity-manager/src/entity_manager/overlay.cpp
/openbmc/entity-manager/src/entity_manager/overlay.hpp
/openbmc/entity-manager/src/entity_manager/perform_scan.cpp
/openbmc/entity-manager/src/entity_manager/perform_scan.hpp
/openbmc/entity-manager/src/entity_manager/topology.cpp
/openbmc/entity-manager/src/entity_manager/utils.hpp
/openbmc/entity-manager/src/utils.cpp
/openbmc/entity-manager/subprojects/boost.wrap
test_topology.cpp
f440defa17-Jun-2025 Alexander Hansen <alexander.hansen@9elements.com>

meson: separate meson file for tests

Tested: Unit Tests Pass

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


/openbmc/entity-manager/.markdownlint.yaml
/openbmc/entity-manager/CONFIG_FORMAT.md
/openbmc/entity-manager/README.md
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_ltc_fsc_max_vr_delta_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_ltc_fsc_max_vr_raa_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_xdp_fsc_nct_vr_raa_gndsen_max_p12vsen_isl_p12vfan_rtt.json
/openbmc/entity-manager/configurations/meta/clemente_hdd.json
/openbmc/entity-manager/configurations/meta/clemente_hdd_nvme.json
/openbmc/entity-manager/configurations/meta/clemente_interposer.json
/openbmc/entity-manager/configurations/meta/clemente_pdb.json
/openbmc/entity-manager/configurations/meta/harma_fanboard.json
/openbmc/entity-manager/configurations/meta/harma_mb.json
/openbmc/entity-manager/configurations/meta/harma_mb_vr_infineon.json
/openbmc/entity-manager/configurations/meta/harma_scm.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_misc_boards.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_scm.json
/openbmc/entity-manager/configurations/meta/ventura_cable.json
/openbmc/entity-manager/configurations/meta/ventura_scm.json
/openbmc/entity-manager/configurations/meta/yosemite4.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t1.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t1_retimer.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t2.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t2_retimer.json
/openbmc/entity-manager/configurations/meta/yosemite4_wailuafalls.json
/openbmc/entity-manager/configurations/nvidia_gb200.json
/openbmc/entity-manager/meson.build
/openbmc/entity-manager/schemas/cpld.json
/openbmc/entity-manager/schemas/exposes_record.json
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/meson.build
/openbmc/entity-manager/scripts/generate_config_list.sh
/openbmc/entity-manager/scripts/generate_meson_array.sh
/openbmc/entity-manager/scripts/generate_schema_list.sh
/openbmc/entity-manager/scripts/run-ci.sh
/openbmc/entity-manager/service_files/xyz.openbmc_project.FruDevice.service
/openbmc/entity-manager/src/entity_manager/dbus_interface.cpp
/openbmc/entity-manager/src/entity_manager/dbus_interface.hpp
/openbmc/entity-manager/src/entity_manager/overlay.cpp
/openbmc/entity-manager/src/gpio-presence/README.md
/openbmc/entity-manager/src/gpio-presence/device_presence.cpp
meson.build
8c4b1d9904-Nov-2024 Alexander Hansen <alexander.hansen@9elements.com>

Add gpio-presence-sensor

This is to implement the gpio based hw inventory design [1].

There is a new meson option 'gpio-presence' to enable/disable the
daemon.

Summary of the functionality:

- fet

Add gpio-presence-sensor

This is to implement the gpio based hw inventory design [1].

There is a new meson option 'gpio-presence' to enable/disable the
daemon.

Summary of the functionality:

- fetch configuration from EM, according to the configuration interface
- the D-Bus interface is
xyz.openbmc_project.Configuration.GPIODeviceDetect
- the configuration represents devices for which presence can be
detected based on gpio values.
- watch gpios for changes
- add/remove the xyz.openbmc_project.Inventory.Source.DevicePresence
interface on the object path based on gpio values.

References:
[1] https://github.com/openbmc/docs/blob/master/designs/inventory/gpio-based-hardware-inventory.md
[2] https://www.kernel.org/doc/html/latest/admin-guide/gpio/gpio-sim.html

Tested: using linux gpio-sim facility, see below

1. create a fake gpio via [2]
2. configure gpio-presence-sensor as per [1]
3. run the gpio-presence-sensor
4. change the value of the gpio previously configured
5. there should be log output (at debug level)
6. the dbus interfaces exposed should appear/disappear as per [1]

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

show more ...


/openbmc/entity-manager/.clang-tidy
/openbmc/entity-manager/OWNERS
/openbmc/entity-manager/configurations/meson.build
/openbmc/entity-manager/configurations/meta/bmc_storage_module.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_ltc_fsc_max_vr_delta_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_ltc_fsc_max_vr_raa_gndsen_ina_p12vsen_ina_p12vfan_mps.json
/openbmc/entity-manager/configurations/meta/catalina_pdb_hsc_xdp_fsc_nct_vr_raa_gndsen_max_p12vsen_isl_p12vfan_rtt.json
/openbmc/entity-manager/configurations/meta/clemente_fio.json
/openbmc/entity-manager/configurations/meta/clemente_hdd.json
/openbmc/entity-manager/configurations/meta/clemente_hdd_nvme.json
/openbmc/entity-manager/configurations/meta/clemente_interposer.json
/openbmc/entity-manager/configurations/meta/clemente_osfp.json
/openbmc/entity-manager/configurations/meta/clemente_pdb.json
/openbmc/entity-manager/configurations/meta/clemente_scm.json
/openbmc/entity-manager/configurations/meta/harma_mb.json
/openbmc/entity-manager/configurations/meta/harma_mb_vr_infineon.json
/openbmc/entity-manager/configurations/meta/harma_scm.json
/openbmc/entity-manager/configurations/meta/minerva_aegis.json
/openbmc/entity-manager/configurations/meta/minerva_cmm_scm.json
/openbmc/entity-manager/configurations/meta/minerva_fanboard_adc_silergy.json
/openbmc/entity-manager/configurations/meta/minerva_fanboard_adc_ti.json
/openbmc/entity-manager/configurations/meta/ventura_fanboard_adc_max.json
/openbmc/entity-manager/configurations/meta/ventura_fanboard_adc_tic.json
/openbmc/entity-manager/configurations/meta/ventura_rmc_hsc_ltc_fsc_max_p24vsen_ina_gndsen_ina_p12vbrick_delta.json
/openbmc/entity-manager/configurations/meta/ventura_rmc_hsc_xdp_fsc_nct_p24vsen_isl_gndsen_isl_p12vbrick_flex.json
/openbmc/entity-manager/configurations/meta/ventura_scm.json
/openbmc/entity-manager/configurations/meta/yosemite4.json
/openbmc/entity-manager/configurations/meta/yosemite4_fanboard_fsc_max_adc_ti_led_nxp_ons_efuse_max.json
/openbmc/entity-manager/configurations/meta/yosemite4_fanboard_fsc_max_adc_ti_led_nxp_ons_efuse_mps.json
/openbmc/entity-manager/configurations/meta/yosemite4_fanboard_fsc_nct_adc_max_led_nxp_ons_efuse_max.json
/openbmc/entity-manager/configurations/meta/yosemite4_fanboard_fsc_nct_adc_max_led_nxp_ons_efuse_mps.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_isl_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_isl_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_isl_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_rns_isl_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_ti_12vhsc_adi_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_ti_12vhsc_mps_48vhsc_adi.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_ti_12vhsc_mps_48vhsc_inf.json
/openbmc/entity-manager/configurations/meta/yosemite4_medusaboard_adc_ti_hsc_adi.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t1.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t1_retimer.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t2.json
/openbmc/entity-manager/configurations/meta/yosemite4_sentineldome_t2_retimer.json
/openbmc/entity-manager/configurations/meta/yosemite4_spiderboard_adc_max_pwr_silergy.json
/openbmc/entity-manager/configurations/meta/yosemite4_spiderboard_adc_max_pwr_ti.json
/openbmc/entity-manager/configurations/meta/yosemite4_spiderboard_adc_ti_pwr_silergy.json
/openbmc/entity-manager/configurations/meta/yosemite4_spiderboard_adc_ti_pwr_ti.json
/openbmc/entity-manager/configurations/meta/yosemite4_wailuafalls.json
/openbmc/entity-manager/configurations/mtjefferson_mb.json
/openbmc/entity-manager/configurations/system1_baseboard.json
/openbmc/entity-manager/meson.build
/openbmc/entity-manager/meson.options
/openbmc/entity-manager/schemas/cpld.json
/openbmc/entity-manager/schemas/exposes_record.json
/openbmc/entity-manager/schemas/firmware.json
/openbmc/entity-manager/schemas/gpio_presence.json
/openbmc/entity-manager/schemas/leak_detector.json
/openbmc/entity-manager/schemas/legacy.json
/openbmc/entity-manager/schemas/pid.json
/openbmc/entity-manager/schemas/pid_zone.json
/openbmc/entity-manager/schemas/stepwise.json
/openbmc/entity-manager/schemas/virtual_sensor.json
/openbmc/entity-manager/scripts/validate_configs.py
/openbmc/entity-manager/service_files/meson.build
/openbmc/entity-manager/service_files/xyz.openbmc_project.gpiopresence.service
/openbmc/entity-manager/src/entity_manager/perform_probe.cpp
/openbmc/entity-manager/src/entity_manager/perform_probe.hpp
/openbmc/entity-manager/src/entity_manager/perform_scan.cpp
/openbmc/entity-manager/src/entity_manager/topology.cpp
/openbmc/entity-manager/src/fru_device/fru_device.cpp
/openbmc/entity-manager/src/gpio-presence/README.md
/openbmc/entity-manager/src/gpio-presence/config_provider.cpp
/openbmc/entity-manager/src/gpio-presence/config_provider.hpp
/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/src/gpio-presence/main.cpp
/openbmc/entity-manager/src/gpio-presence/meson.build
/openbmc/entity-manager/src/meson.build
/openbmc/entity-manager/subprojects/libgpiod.wrap
test_gpio_presence.cpp

123