History log of /openbmc/smbios-mdr/src/pcieslot.cpp (Results 1 – 5 of 5)
Revision Date Author Comments
# ce89a37c 05-Feb-2025 Manojkiran Eda <manojkiran.eda@gmail.com>

smbios-mdr:Add support to toggle pcieslot presence

In the current state, the PCIeslot presence is always hardcoded to
`true`, since the PCIeSlots are always embedded on the board. But the
slot prese

smbios-mdr:Add support to toggle pcieslot presence

In the current state, the PCIeslot presence is always hardcoded to
`true`, since the PCIeSlots are always embedded on the board. But the
slot presence is not really useful. Since we are already getting the
current usage of the slot in the SMBIOS Type 9 structure we could use
the "Available"/"Occupied" status in the current usage field to
indicate the drive presence.

Modify the slot presence code to only mark "true" if the current usage
of the slot is "Occupied" & make it "false" if it is anything other
than that.

Tested By:
1. Enabled the meson option via the meta-ibm layer by adding
PACKAGECONFIG:append = "slot-drive-presence"
2. Post the SMBIOS transfer, could see the presence of the slot being
toggled with respect to the current occupancy of the slot.

Change-Id: I57e6f48dc501e7e1625a5389ea1e989c5e585824
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# f3b25e55 07-Feb-2025 Manojkiran Eda <manojkiran.eda@gmail.com>

pcieslot: Add slottype by length support

Add necessary support needed to display the fulllength & halflength
slottypes on dbus.

Tested By:
1. Once coreboot/u-root transfers the smbios tables, I cou

pcieslot: Add slottype by length support

Add necessary support needed to display the fulllength & halflength
slottypes on dbus.

Tested By:
1. Once coreboot/u-root transfers the smbios tables, I could see that
the PCIeSlot types also show the fulllength & halflength slots on
dbus & also confirmed the same on the openbmc webUI.

Change-Id: Iaf47f3525c86a82f5b57ac8cf05b9cb12b44f5cc
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>

show more ...


# 5a122a6e 03-May-2023 Brandon Kim <brandonkim@google.com>

mdrv2: Attempt to update D-Bus objects in place

When systemInfoUpdate() is called multiple times, there's a potential
race condition of a user polling for the objects while the array of
D-Bus object

mdrv2: Attempt to update D-Bus objects in place

When systemInfoUpdate() is called multiple times, there's a potential
race condition of a user polling for the objects while the array of
D-Bus objects are erased and being repopulated. This results in
incomplete set of memory or CPU counts, which can lead to unforseen
consequences.

Tested: Verified that a corner case that was hitting this case
consistently (when SMBIOS was transferred using ipmi-blob repeatedly)
goes away with this implementation.

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I312aa91cd11b1dd06502d04272889922108d39a2

show more ...


# e7cf3195 20-Aug-2021 Jie Yang <jjy@google.com>

smbios-mdr: Associate with the motherboard

The change associates the objects such as processor, memory and PCIe
slots published by smbios-mdr with the motherboard inventory object.
Presently objects

smbios-mdr: Associate with the motherboard

The change associates the objects such as processor, memory and PCIe
slots published by smbios-mdr with the motherboard inventory object.
Presently objects paths created by smbios-mdr have the motherboard path
as the prefix -- "/xyz/openbmc_project/inventory/chassis/motherboard".
For machine with entity-manager dynamic stack, that hardcoded
motherboard path would probably not be the object path of the
motherboard.

We have implemented a DBus method in EM that can return the inventory
object path of the root board in the system. Such associations can be
assembled in Redfish resources can indicate the machine topology.

Tested:
DBus call on the Association interface of a CPU object.

busctl get-property xyz.openbmc_project.Smbios.MDR_V2 \
/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0 \
xyz.openbmc_project.Association.Definitions Associations
a(sss) 1 "chassis" "processors" \
"/xyz/openbmc_project/inventory/system/board/GSZ"

Signed-off-by: Jie Yang <jjy@google.com>
Change-Id: Ia95159a87c2ce5e69e90e622cf341a68e7db13d4

show more ...


# 08e4a6df 23-Aug-2021 Jie Yang <jjy@google.com>

smbios-mdr: Parse PCIE slot tables

System slot tables have SMBIOS table type 9. Parse system slot tables
and select all PCIE slots. PCIE slot inventory DBus objects will have
the xyz.openbmc_project

smbios-mdr: Parse PCIE slot tables

System slot tables have SMBIOS table type 9. Parse system slot tables
and select all PCIE slots. PCIE slot inventory DBus objects will have
the xyz.openbmc_project.Inventory.Item.PCIeSlot interface defined in
phosphor-dbus-interfaces.

Tested:
Tests on a Intel platform. Some DBus command outputs as follows:

busctl introspect xyz.openbmc_project.Smbios.MDR_V2 \
/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3

NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -herboard/p
.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.Inventory.Decorator.LocationCode interface - - -
.LocationCode property s "PE3" emits-change writable
xyz.openbmc_project.Inventory.Item interface - - -
.Present property b true emits-change writable
.PrettyName property s "" emits-change writable
xyz.openbmc_project.Inventory.Item.PCIeSlot interface - - -
.Generation property s "xyz.openbmc_project.Inventory.Item.P... emits-change writable
.HotPluggable property b false emits-change writable
.Lanes property u 16 emits-change writable
.SlotType property s "xyz.openbmc_project.Inventory.Item.P... emits-change writable

busctl get-property xyz.openbmc_project.Smbios.MDR_V2 \
/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3 \
xyz.openbmc_project.Inventory.Item.PCIeSlot Generation

s "xyz.openbmc_project.Inventory.Item.PCIeSlot.Generations.Gen5"

busctl get-property xyz.openbmc_project.Smbios.MDR_V2 \
/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3 \
xyz.openbmc_project.Inventory.Item.PCIeSlot SlotType

s "xyz.openbmc_project.Inventory.Item.PCIeSlot.SlotTypes.Unknown"

Note that it shows unknown PCIE slot types, as SMBIOS system slot record
does not have the information that a PCIE slot is full-length,
half-length or low-profile.

Signed-off-by: Jie Yang <jjy@google.com>
Change-Id: Ie9179ceb57dea3f659c15939611e873411de7320

show more ...