History log of /openbmc/smbios-mdr/include/smbios_mdrv2.hpp (Results 1 – 12 of 12)
Revision Date Author Comments
# 06eb6300 15-Feb-2024 Josh Lehan <krellan@google.com>

Enable support for SMBIOS version 3.4

As the currently supported 3.5 standard is a superset of 3.4, according
to a glance at the https://www.dmtf.org/standards/smbios spec, enabling
support for 3.4

Enable support for SMBIOS version 3.4

As the currently supported 3.5 standard is a superset of 3.4, according
to a glance at the https://www.dmtf.org/standards/smbios spec, enabling
support for 3.4 should be as straightforward as simply adding it to
this allowlist of supported versions.

This change is inspired by the proposed
https://github.com/openbmc/smbios-mdr/issues/6 which suggests a similar
change for 3.1 version. The only reason I am not adding 3.1 at the same
time here, is that I only have a 3.4 SMBIOS in the machine I am testing
now.

Tested: The SMBIOS from my host is no longer needlessly rejected for
being of 3.4 version.

Change-Id: I29bcb872377c87088b2ed4fc0ec90a03d89c15d8
Signed-off-by: Josh Lehan <krellan@google.com>

show more ...


# d8dd1208 08-Aug-2023 Yaswanth Reddy M <yaswanthx.reddy.munukuru@intel.com>

Increase timeout to 2-sec for syncing SMBIOS data

MDRv2 (Send Data Set Done) command, sent from bios to BMC
is taking more time in some cases.
The timeout should be 2 sec instead of 0.02 sec.

Teste

Increase timeout to 2-sec for syncing SMBIOS data

MDRv2 (Send Data Set Done) command, sent from bios to BMC
is taking more time in some cases.
The timeout should be 2 sec instead of 0.02 sec.

Tested:
While sending mdr2 command from bios to BMC timeout is not seen.

Change-Id: I6f8a6109ea20f1ca1a1b00d497bd362934f14290
Signed-off-by: Yaswanth Reddy M <yaswanthx.reddy.munukuru@intel.com>

show more ...


# 027277a4 11-Sep-2023 Josh Lehan <krellan@google.com>

Refactor MDRV2 class to allow more than one

Refactored the main MDRV2 class to allow more than one object of this
class to exist at the same time. All hardcoded paths have been made
parameters to th

Refactor MDRV2 class to allow more than one

Refactored the main MDRV2 class to allow more than one object of this
class to exist at the same time. All hardcoded paths have been made
parameters to the constructor, so that they can be varied at runtime as
needed, to avoid overlap.

Also did some necessary internal cleanups to facilitate this.

Tested: Created multiple copies of the MDRV2 object at the same time,
it worked, all appeared on D-Bus, under distinct object paths and
inventory paths. Destructed the MDRV2 object, it disappeared from
D-Bus, constructed it again, it came back.

https://gist.github.com/Krellan/6930bc2ed1ac16b93afcc3a12c02e545

Change-Id: Icd1ebf50086b526cf0cff149eb8ddc59da78f0a9
Signed-off-by: Josh Lehan <krellan@google.com>

show more ...


# f079e836 19-Sep-2023 Josh Lehan <krellan@google.com>

Initialize first byte in IPMI cache file

In the IPMI cache file, the first byte of this file was always
essentially random, because it was in a structure that had this field
uninitialized. Fixing it

Initialize first byte in IPMI cache file

In the IPMI cache file, the first byte of this file was always
essentially random, because it was in a structure that had this field
uninitialized. Fixing it, by arbitrarily choosing the value 0x01.

Added a new constant "mdrDirVersion" for this, and also added a similar
constant for "smbiosDirVersion" (which was being initialized, but to a
magic number directly in the code, not a constant).

Tested: Cache files now appear consistently.

Change-Id: I1f13ae973965b1a7105e2ac054ae30c52f45e2a9
Signed-off-by: Josh Lehan <krellan@google.com>

show more ...


# c39d3dfc 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

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

show more ...


# b492838a 26-Aug-2022 shamim-ali <shamima@ami.com>

Add Support for SMBIOS VERSION - 3.5

As per SMBIOS specification(DSP0134) conformance guidelines,Before
parsing the SMBIOS data the system will check for SMBIOS Version.
Added 3.5 to the supported v

Add Support for SMBIOS VERSION - 3.5

As per SMBIOS specification(DSP0134) conformance guidelines,Before
parsing the SMBIOS data the system will check for SMBIOS Version.
Added 3.5 to the supported version.Now BMC will be able to validate the
SMBIOS version.

Tested:

Verified BMC is able to validate SMBIOS Version 3.5

Signed-off-by: shamim-ali <shamima@ami.com>
Change-Id: Ic886ab78395733b8e8a52b5219caf7e4b9502c3c

show more ...


# e4ea3771 23-Feb-2022 Brandon Kim <brandonkim@google.com>

Add SMBIOS 3.0 compatibility to version check

As per SMBIOS specification (DSP0134 Section 5.2.2) SMBIOS 3.0 requires
a different Entry Point Structure, including a different Anchor String
check.

T

Add SMBIOS 3.0 compatibility to version check

As per SMBIOS specification (DSP0134 Section 5.2.2) SMBIOS 3.0 requires
a different Entry Point Structure, including a different Anchor String
check.

Tested:
After appending the Entry Point Structure to the end of the SMBIOS
table, this code started working. We will most likely want to document
this somewhere as it's not industry standard to have the entry point
structure appended to the back like this.

Jan 01 00:01:03 smbiosmdrv2app[902]: SMBIOS 2.1 Anchor String not found. Looking for SMBIOS 3.0
Jan 01 00:03:05 smbiosmdrv2app[1680]: SMBIOS VERSION - 3.2
Jan 01 00:03:06 smbiosmdrv2app[1680]: VERSION INFO - BIOS - 99.99.99.99

Resolves: openbmc/smbios-mdr#3
Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Ied5e0df545ec046cc1e0823d9f48317881493325

show more ...


# 473d890e 17-Feb-2022 Gokul Sanker V G <gokul.sanker.v.g@intel.com>

Added correction for empty text strings

As per SMBIOS specification Text strings
associated with a given SMBIOS structure
are appended directly after the formatted
portion of the structure.
(https:/

Added correction for empty text strings

As per SMBIOS specification Text strings
associated with a given SMBIOS structure
are appended directly after the formatted
portion of the structure.
(https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.4.0.pdf , sec 6.1.3)

If the formatted portion of the structure
contains string-reference fields and all
the string fields are set to 0
(no string references), the formatted section
of the structure is followed by two null
(00h) BYTES.

Signed-off-by: Gokul Sanker V G <gokul.sanker.v.g@intel.com>
Change-Id: Ib8d0004384bad67168cb367442ba41528a376ae2

show more ...


# 0435a483 01-Feb-2022 Arun P. Mohanan <arun.p.m@linux.intel.com>

SMBIOS version check

As per SMBIOS specification(DSP0134) conformance guidelines, before
parsing the SMBIOS data the system needs to check for anchor string
and SMBIOS version information.

Define E

SMBIOS version check

As per SMBIOS specification(DSP0134) conformance guidelines, before
parsing the SMBIOS data the system needs to check for anchor string
and SMBIOS version information.

Define Entry Point structure and implement SMBIOS version check
support.

Tested:
Verified BMC is able to validate the version information from the
SMBIOS table data which BIOS sends.

Jan 01 00:00:20 intel-obmc smbiosmdrv2app[429]: SMBIOS VERSION - 3.2

Signed-off-by: Arun P. Mohanan <arun.p.m@linux.intel.com>
Change-Id: I6dfa9eb23f02343a47937747e8e9070b8f0cb227

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


# 59bb9d94 27-Oct-2020 Kuiying Wang <kuiying.wang@intel.com>

Fix issue on null ptr in funciton positionToString

Error message is as below:
smbiosmdrv2app[5607]: terminate called after throwing an instance of 'std::logic_error'
smbiosmdrv2app[5607]: what():

Fix issue on null ptr in funciton positionToString

Error message is as below:
smbiosmdrv2app[5607]: terminate called after throwing an instance of 'std::logic_error'
smbiosmdrv2app[5607]: what(): basic_string::_M_construct null not valid
systemd[1]: smbios-mdrv2.service: Main process exited, code=dumped, status=6/ABRT
systemd[1]: smbios-mdrv2.service: Failed with result 'core-dump'.

Have to check ptr is not null before using.

Tested:
When target prt is null return empty string, not crash app.

Change-Id: I5bc4c2681150fd1a7aeb0a2dc7b5d19e5b54dab0
Signed-off-by: Kuiying Wang <kuiying.wang@intel.com>

show more ...


# 18a5ab91 01-Sep-2020 Zhikui Ren <zhikui.ren@intel.com>

Move downstream package to upstream

Use upstream cpu interface

Signed-off-by: Zhikui Ren <zhikui.ren@intel.com>
Change-Id: I490482b212df4b73cbdedaba0bc5fefa229a5489