History log of /openbmc/smbios-mdr/src/ (Results 1 – 25 of 88)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
1d73dccc16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

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

show more ...

0fe13aba17-Jun-2024 Manojkiran Eda <manojkiran.eda@gmail.com>

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://githu

Fix spelling mistakes using codespell

This commit corrects various spelling mistakes throughout the
repository. The corrections were made automatically using `codespell`[1]
tool.

[1]: https://github.com/codespell-project/codespell

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

show more ...

7190f3a326-Feb-2024 Potin Lai <potin.lai@quantatw.com>

cpuinfo_utils: Change OS state busname and objpath

Change the busname and object path of OS state interface.

This commit relies on the patch below:
[1] https://gerrit.openbmc.org/c/openbmc/x86-powe

cpuinfo_utils: Change OS state busname and objpath

Change the busname and object path of OS state interface.

This commit relies on the patch below:
[1] https://gerrit.openbmc.org/c/openbmc/x86-power-control/+/69589

Change-Id: Ia22fd05bf37364146e323c35c6fdcedf777b4461
Signed-off-by: Potin Lai <potin.lai@quantatw.com>

show more ...

b86e4f1901-Apr-2024 Jason M. Bills <jason.m.bills@intel.com>

Use the new CPUModel enum names from libpeci

libpeci was updated with new CPUModel names, so update uses here to
match.

Change-Id: I60db4ea624bdb8defe3d937cc48fb798e5f49207
Signed-off-by: Jason M.

Use the new CPUModel enum names from libpeci

libpeci was updated with new CPUModel names, so update uses here to
match.

Change-Id: I60db4ea624bdb8defe3d937cc48fb798e5f49207
Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>

show more ...

4e1cf09908-Mar-2024 Jonathan Doman <jonathan.doman@intel.com>

cpuinfoapp: Make PECI features optional

Add a feature flag `cpuinfo-peci` to optionally disable the features in
cpuinfoapp that rely on PECI (PPIN, SST), to support configurations that
want I2C-base

cpuinfoapp: Make PECI features optional

Add a feature flag `cpuinfo-peci` to optionally disable the features in
cpuinfoapp that rely on PECI (PPIN, SST), to support configurations that
want I2C-based SSPEC detection but don't want to use libpeci.

Tested: Disabled `cpuinfo-peci` and verified SSPEC was still written
into the Model property.

Change-Id: Ie3ab9214d9d6ab238a61933de3e3856eca298fa8
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>

show more ...

abdccd3a26-Jan-2024 Josh Lehan <krellan@google.com>

Add assoc-trim-path option and Board match

When a custom object path is being used (not the default object path
that comes from IPMI), allow the Board interface to be a valid
interface for associati

Add assoc-trim-path option and Board match

When a custom object path is being used (not the default object path
that comes from IPMI), allow the Board interface to be a valid
interface for associating the Inventory object with, not just the
System interface.

The purpose is to support large systems of the blade server style,
which have CPU and DIMM attached to a Board that is itself attached to
a System, not attached to the System directly.

Adding the assoc-trim-path option, disabled by default, to drop the
rightmost path component when setting up this association. This
bypasses the Board and associates the CPU and DIMM directly with the
underlying System.

Cleaning up the systemInfoUpdate() function, to correct a logic error
in which the match rule would not be set up for later if an exception
happened the first time. Also sleeping, to work around a race condition
with Object Mapper.

Tested: I tested it both with and without the assoc-trim-path option,
and it seemed to have the desired effect. With this option enabled, I
was able to attach CPU and DIMM to the proper System, even though there
was a Board object in the hierarchy between them.

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

show more ...

0f7704a320-Feb-2024 Konda Reddy Kachana <kkachana@google.com>

Add effectiveFamily, effectiveModel and Step to AMD Zen family

Reference:
https://kib.kiev.ua/x86docs/AMD/AMD-CPUID-Spec/25481-r2.28.pdf

Change-Id: Ic4df2ab047a561e565ea3c72321d3e0dc42067e4
Signed-

Add effectiveFamily, effectiveModel and Step to AMD Zen family

Reference:
https://kib.kiev.ua/x86docs/AMD/AMD-CPUID-Spec/25481-r2.28.pdf

Change-Id: Ic4df2ab047a561e565ea3c72321d3e0dc42067e4
Signed-off-by: Konda Reddy Kachana <kkachana@google.com>

show more ...

c6d87a5c08-Feb-2024 Josh Lehan <krellan@google.com>

Clean up some buffer allocations

While investigating some memory corruption, I found two bugs: the
backing store the SMBIOS data gets loaded into was left uninitialized,
and the buffer used for the

Clean up some buffer allocations

While investigating some memory corruption, I found two bugs: the
backing store the SMBIOS data gets loaded into was left uninitialized,
and the buffer used for the version check was allocated using a pointer
where a size should have been used instead.

Tested: While I can not say for sure this solves the corruption, it
seems to make it much less frequent, during my testing. I am not saying
it is gone, but I can no longer reproduce it.

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

show more ...

b5d7222f11-Jan-2024 Jonathan Doman <jonathan.doman@intel.com>

sst: Don't always wake idle CPU

Some parts of SST are important (initial discovery, appliedConfig
change) and should use wake-on-PECI to ensure success even if the CPU is
in an idle PkgC state. Othe

sst: Don't always wake idle CPU

Some parts of SST are important (initial discovery, appliedConfig
change) and should use wake-on-PECI to ensure success even if the CPU is
in an idle PkgC state. Other parts are not important enough to justify
increasing the CPU power draw. Add a WakePolicy parameter to the
SSTInterface infrastructure to use a different policy in different
contexts.

Change-Id: I91435cc0357ab60ca4656e1bc51286e046ae3809
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>

show more ...

117671ed07-Dec-2023 Jonathan Doman <jonathan.doman@intel.com>

Catch PECIErrors from supportsControl()

In future backend where supportsControl() requires a PECI call, make
sure any calls are inside a try/catch so potential errors are handled.

Change-Id: Ib3503

Catch PECIErrors from supportsControl()

In future backend where supportsControl() requires a PECI call, make
sure any calls are inside a try/catch so potential errors are handled.

Change-Id: Ib35030fa4df764a3cccd922099cd76c77823b7c4
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>

show more ...

badedf1020-Oct-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-17 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-17 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: Ib52f953657f0c75fcf0ea191a7eadfbd8b94c917
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...

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

e05a542323-Aug-2023 David Wang <davidwang@quantatw.com>

Add CPU functional property

ProcessorSummary in bmcweb always shows disable. Because bmcweb depends
on `xyz.openbmc_project.State.Decorator.OperationalStatus` interface
and `Functional` property to

Add CPU functional property

ProcessorSummary in bmcweb always shows disable. Because bmcweb depends
on `xyz.openbmc_project.State.Decorator.OperationalStatus` interface
and `Functional` property to return CPU functional state.
In this change, include the interface into smbios-mdr and re-add the
property `Functional` removed by smbios-mdr/+/36177

Tested:
```
GET /redfish/v1/Systems/system/
"ProcessorSummary": {
"CoreCount": 112,
"Count": 2,
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
}

busctl introspect xyz.openbmc_project.Smbios.MDR_V2 /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0
xyz.openbmc_project.State.Decorator.OperationalStatus interface - - -
.Functional property b true emits-change writable
```

Change-Id: I1b4d239ce02d2634a54afb98e4b5e72923fda4fb
Signed-off-by: David Wang <davidwang@quantatw.com>

show more ...

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

e513c9c314-Sep-2023 Jonathan Doman <jonathan.doman@intel.com>

sst: Initialize OsMailboxCommand status

Static analyzer raised an issue on this unitialized member. It's not an
issue in current usage of the struct, but in theory the success()
function would have

sst: Initialize OsMailboxCommand status

Static analyzer raised an issue on this unitialized member. It's not an
issue in current usage of the struct, but in theory the success()
function would have UB for OsMailboxCommands created with a Throw error
policy.

Change-Id: I16650173add98efecc96535f30c90132481cf231
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>

show more ...

366546cf24-Jul-2023 Jonathan Doman <jonathan.doman@intel.com>

Add meson build support

Tested:
1. Project builds with each meson option turned on or off.
2. Unit tests build and pass.
3. On platform FW built with updated recipe
(I23fabdf57b8d6ac35c3aea0ece66

Add meson build support

Tested:
1. Project builds with each meson option turned on or off.
2. Unit tests build and pass.
3. On platform FW built with updated recipe
(I23fabdf57b8d6ac35c3aea0ece667be118de4b61):
a. SMBIOS blob store library is properly picked up by IPMI blob
store manager and handles OEM IPMI commands.
b. smbiosmdrv2app is running and populates objects on D-Bus.
c. cpuinfoapp is running and populates objects on D-Bus.

Change-Id: Ie65b281900cc07e7d0145445bcc65bbab1979214
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>

show more ...

f2d8bb4826-Jul-2023 Jonathan Doman <jonathan.doman@intel.com>

Fix compilation warnings

Various small issues:
* Member initialization order
* Comparison of different signedness
* Unused parameters
* Unused variable

Change-Id: Ie59db239b4216ad089f7cf0f289e6ed3d

Fix compilation warnings

Various small issues:
* Member initialization order
* Comparison of different signedness
* Unused parameters
* Unused variable

Change-Id: Ie59db239b4216ad089f7cf0f289e6ed3d6ac8e18
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>

show more ...

410bbc2712-Jul-2023 Joseph Fu <joseph.fu@quantatw.com>

Populate MemoryTotalWidth property

The "MemoryTotalWidth" property did not display correct information
from the smbios file. Add function to transfer "totalWidth" type and
return data in sdbusplus f

Populate MemoryTotalWidth property

The "MemoryTotalWidth" property did not display correct information
from the smbios file. Add function to transfer "totalWidth" type and
return data in sdbusplus format.

Tested:
Before
```
root@qbmc:root@qbmc:~# busctl introspect xyz.openbmc_project.Smbios.MDR_V2 /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0 xyz.openbmc_project.Inventory.Item.Dimm
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.AllowedSpeedsMT property aq 0 emits-change writable
.CASLatencies property q 0 emits-change writable
.ECC property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.FormFactor property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MaxMemorySpeedInMhz property q 4800 emits-change writable
.MemoryAttributes property y 2 emits-change writable
.MemoryConfiguredSpeedInMhz property q 4800 emits-change writable
.MemoryDataWidth property q 64 emits-change writable
.MemoryDeviceLocator property s "DIMM0" emits-change writable
.MemoryMedia property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MemorySizeInKB property t 33554432 emits-change writable
.MemoryTotalWidth property q 0 emits-change writable
.MemoryType property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MemoryTypeDetail property s "SynchronousUnbuffered" emits-change writable
.RevisionCode property q 0 emits-change writable
```
After patching, MemoryTotalWidth property get correct value.
```
root@qbmc:~# busctl introspect xyz.openbmc_project.Smbios.MDR_V2 /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0 xyz.openbmc_project.Inventory.Item.Dimm
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
.AllowedSpeedsMT property aq 0 emits-change writable
.CASLatencies property q 0 emits-change writable
.ECC property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.FormFactor property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MaxMemorySpeedInMhz property q 4800 emits-change writable
.MemoryAttributes property y 2 emits-change writable
.MemoryConfiguredSpeedInMhz property q 4800 emits-change writable
.MemoryDataWidth property q 64 emits-change writable
.MemoryDeviceLocator property s "DIMM0" emits-change writable
.MemoryMedia property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MemorySizeInKB property t 33554432 emits-change writable
.MemoryTotalWidth property q 72 emits-change writable
.MemoryType property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MemoryTypeDetail property s "SynchronousUnbuffered" emits-change writable
.RevisionCode property q 0 emits-change writable
```

Change-Id: I355ef057d7d28e4507d7c91eb45ab2453ed1923e
Signed-off-by: Joseph Fu <joseph.fu@quantatw.com>

show more ...

a1ff244515-Jun-2023 Jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>

Populate Memory attributes

Add support to populate MemoryMedia, Slot and Socket attribute values
to dbus attributes.

Tested:
Memory attributes MemoryMedia,Slot and Socket are populated in dbus
thro

Populate Memory attributes

Add support to populate MemoryMedia, Slot and Socket attribute values
to dbus attributes.

Tested:
Memory attributes MemoryMedia,Slot and Socket are populated in dbus
through busctl command
Command:
busctl introspect xyz.openbmc_project.Smbios.MDR_V2
/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0
Response:
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
....

xyz.openbmc_project.Inventory.Decorator.LocationCode interface - - -
.LocationCode property s "BANK 0 CPU0_DIMM_A" 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.Dimm interface - - -

.MemoryAttributes property u 8388610 emits-change writable
.MemoryConfiguredSpeedInMhz property q 19460 emits-change writable
.MemoryDataWidth property q 64 emits-change writable
.MemoryDeviceLocator property s "BANK 0 CPU0_DIMM_A" emits-change writable
.MemoryMedia property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MemorySizeInKB property u 1468006400 emits-change writable
.MemoryTotalWidth property q 0 emits-change writable
.MemoryType property s "xyz.openbmc_project.Inventory.Item.D... emits-change writable
.MemoryTypeDetail property s "SynchronousRegistered" emits-change writable
.RevisionCode property q 0 emits-change writable
xyz.openbmc_project.Inventory.Item.Dimm.MemoryLocation interface - - -
.Channel property y 0 emits-change writable
.MemoryController property y 0 emits-change writable
.Slot property y 65 emits-change writable
.Socket property y 1 emits-change writable
.....

Signed-off-by: poram srinivasa rao <poramx.srinivasa.rao@intel.com>
Signed-off-by: Jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
Change-Id: Iabc2a58642167344711550b669ed4f207fb39d45

show more ...

226357e820-Jul-2023 Saitwal, Meghan <meghan.saitwal@intel.com>

Add GNR-D to cpuinfoapp support

Change-Id: Ia9ee31ef4a5cb7d6677a0ec726345a57205c1108
Signed-off-by: Saitwal, Meghan <meghan.saitwal@intel.com>

6106d54a29-Jun-2023 Konstantin Aladyshev <aladyshev22@gmail.com>

blobs: Close file before calling 'AgentSynchronizeData'

The IPMI BLOB handler fills smbios2 file with content and calls
'AgentSynchronizeData' method for synchronization.
Because currently the file

blobs: Close file before calling 'AgentSynchronizeData'

The IPMI BLOB handler fills smbios2 file with content and calls
'AgentSynchronizeData' method for synchronization.
Because currently the file is not closed before the call to
'AgentSynchronizeData', this can lead to errors that smbios-mdr tries
to parse file that was not yet flushed to the disk.
Add file close operation to fix the issue.

Tested: tested on the AMD EthanolX CRB.
Before the change on the blob commit operation the file was created
in the BMC filesystem, but the call to 'AgentSynchronizeData' failed
with the error message:
"MDR V2 file size is smaller than mdr header".
After the change the file is correctly created in the BMC filesystem
and the sync operation finishes without any errors.

Change-Id: I7140f24a68e9e27665fe69bb4dd64495aa24c1aa
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>

show more ...

036374a214-Jun-2023 George Liu <liuxiwei@inspur.com>

Change the byte of the MemoryAttributes attribute to the size type

We prefer to use size_t type instead of byte type in PDI[1]

[1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/63

Change the byte of the MemoryAttributes attribute to the size type

We prefer to use size_t type instead of byte type in PDI[1]

[1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/63799

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I211a7cd553338995170407fa583d8926a6c98f53

show more ...

132d037e19-Jun-2023 Ankita Vilas Gawade <ankita.gawade@intel.com>

Clear cpuInfoMap on platform config discovery

UniqueIdentifier D-Bus interface from cpuInfo (struct) was not
getting removed from dbus on platform configuration discovery.

Later as CPUInfo object g

Clear cpuInfoMap on platform config discovery

UniqueIdentifier D-Bus interface from cpuInfo (struct) was not
getting removed from dbus on platform configuration discovery.

Later as CPUInfo object gets reconstructed for same UniqueIdentifier interface throws exception since interface is still there followed shortly by a crash:

terminate called after throwing an instance of 'sdbusplus::exception::SdBusError'
what(): sd_bus_add_object_vtable: org.freedesktop.DBus.Error.FileExists: File exists

With this change in place, cpuinfoapp runs smoothly across a host reboot/entity-manager restart.

Change-Id: I470afd3d7cba4285470e7bdf66b617a18c8bfbf1
Signed-off-by: Ankita Vilas Gawade <ankita.gawade@intel.com>

show more ...

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

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

1234