History log of /openbmc/smbios-mdr/src/cpuinfo_main.cpp (Results 1 – 25 of 26)
Revision Date Author Comments
# 550437d4 26-Feb-2025 Jason M. Bills <jason.m.bills@linux.intel.com>

Fix build issues with boost 1.87

Update deprecated terminology that was removed in boost 1.87.

Change-Id: I175189edad0a9b6ea350d879771b7ec42b95a6d6
Signed-off-by: Jason M. Bills <jason.m.bills@linu

Fix build issues with boost 1.87

Update deprecated terminology that was removed in boost 1.87.

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

show more ...


# 07a2c9aa 01-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I1ece44942d482015c870eb78f9f386e5487a963f
Signed-off-by: Patrick Williams <p

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

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

show more ...


# 1d73dccc 16-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 ...


# 0fe13aba 17-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 ...


# b86e4f19 01-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 ...


# 4e1cf099 08-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 ...


# badedf10 20-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 ...


# f2d8bb48 26-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 ...


# 226357e8 20-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>


# 132d037e 19-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 ...


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


# ca2b38a6 08-May-2023 Jonathan Doman <jonathan.doman@intel.com>

Add GNR and SRF to cpuinfoapp support

They do support same PCS and PIROM interfaces as previous generations.

Change-Id: Ib30df04dff9cd9506a193589234f1d52c76a022a
Signed-off-by: Jonathan Doman <jona

Add GNR and SRF to cpuinfoapp support

They do support same PCS and PIROM interfaces as previous generations.

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

show more ...


# 949f634d 20-Apr-2023 Jonathan Doman <jonathan.doman@intel.com>

Add EMR support

EMR was not accounted for in the main cpuinfoapp check, nor in the check
for SST control support.

Tested: Verified Model and ProtectedIdentificationNumber were populated
under /redf

Add EMR support

EMR was not accounted for in the main cpuinfoapp check, nor in the check
for SST control support.

Tested: Verified Model and ProtectedIdentificationNumber were populated
under /redfish/v1/Systems/system/Processors/cpu0 for an EMR CPU.

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

show more ...


# 1e1ca736 21-Sep-2022 Jason M. Bills <jason.m.bills@intel.com>

Add missing include for boost::flat_map

A recent update to sdbusplus exposed a missing include. This adds the
include to fix the build.

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

Add missing include for boost::flat_map

A recent update to sdbusplus exposed a missing include. This adds the
include to fix the build.

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

show more ...


# 77b9c478 22-Jul-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

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

show more ...


# 49ea830e 26-May-2022 Jonathan Doman <jonathan.doman@intel.com>

sst: Rediscover profiles after host reboot

In some cases, host processor reboot may change the static SST-PP
profile information. This commit adds ability to register callbacks to
run upon hostState

sst: Rediscover profiles after host reboot

In some cases, host processor reboot may change the static SST-PP
profile information. This commit adds ability to register callbacks to
run upon hostState changes, and reruns SST discovery whenever the host
exits the power-off state.

Tested:
- Ran tools/sst-compare-redfish-os.py tool on platform with SPR host
CPU, and observed no mismatches before and after a host reboot.
- Confirmed Redfish OperatingConfig properties still populated when host
is off.

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

show more ...


# 16a2ced3 01-Nov-2021 Jonathan Doman <jonathan.doman@intel.com>

Refactor SST host processor interface

In order to support future host processors that use a different
interface to SST, separate the SST logic into 1) high-level discovery
logic + D-Bus interfaces,

Refactor SST host processor interface

In order to support future host processors that use a different
interface to SST, separate the SST logic into 1) high-level discovery
logic + D-Bus interfaces, and 2) low-level backend processor interface.

This is a pure refactor with no functional change.

Tested:
Ran sst-compare-redfish-os.py tool on platform with SPR host CPU, and
verified no mismatches reported.
Used sst-info.sh to change configs and verify new config was reflected
in Redfish.

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

show more ...


# 631388e6 04-Nov-2021 Jonathan Doman <jonathan.doman@intel.com>

cpuinfoapp: Add support for ICX-D and SPR

These CPUs definitions were added into libpeci, so now we can support
them in cpuinfoapp.

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

cpuinfoapp: Add support for ICX-D and SPR

These CPUs definitions were added into libpeci, so now we can support
them in cpuinfoapp.

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

show more ...


# 5b285892 03-Mar-2021 Jonathan Doman <jonathan.doman@intel.com>

Move PPIN to UniqueIdentifier

The PPIN should be published in Redfish as the
ProtectedIdentificationNumber property rather than SerialNumber. So we
will publish the new UniqueIdentifier D-Bus interf

Move PPIN to UniqueIdentifier

The PPIN should be published in Redfish as the
ProtectedIdentificationNumber property rather than SerialNumber. So we
will publish the new UniqueIdentifier D-Bus interface from cpuinfoapp,
rather than modifying the Asset interface served by smbios-mdrv2.

Tested:
Wait for BIOS to finish and check D-Bus property:
$ busctl get-property xyz.openbmc_project.CPUInfo \
/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0 \
xyz.openbmc_project.Inventory.Decorator.UniqueIdentifier \
UniqueIdentifier
s "8a8b34a8abcd76a"

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

show more ...


# 2285be4f 08-Mar-2021 Jonathan Doman <jonathan.doman@intel.com>

Retry PIROM reads to workaround possible failures

PIROM is supposed to be reliable and available in all power states, but
some CPUs have bugs which can cause reads to return invalid data in some
sma

Retry PIROM reads to workaround possible failures

PIROM is supposed to be reliable and available in all power states, but
some CPUs have bugs which can cause reads to return invalid data in some
small time windows. The root causes are complicated, so although the BMC
could technically detect these windows it would take a lot of work.
Instead, this commit just adds logic to read the SSpec from PIROM
multiple times and consider it a success when two reads return the same
data. This relies on the reasonable assumption that the corrupted data
will most likely not look like a valid SSpec, and that it's very
unlikely to hit the invalid window multiple times.

This code still only modifies two D-Bus properties, but now those values
are determined at (potentially) different times, so the property setting
functions are rewritten to work with a global property list. As the
property values are determined, they are added to the list, and are
re-processed as needed (e.g. object/interface gets readded).

Tested: (On 1-CPU platform without working PIROM interface)
- Modified readSSpec to return spoofed value, AC cycled and verified
it was set on target object/interface. Also warm reset host (which
reinitializes D-Bus objects due to SMBIOS tables being resent), and
verified properties are set again.
- Restarted target service (smbios-mdrv2) and verified this service
restarts and re-sets all target properties.

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

show more ...


# 0a385373 08-Mar-2021 Jonathan Doman <jonathan.doman@intel.com>

Defer PPIN read until BIOS enables it

On platforms with AST2600 BMC, we now boot fast enough to read the PPIN
over PECI before the BIOS has a chance to enable it (by default it is
not readable). Thi

Defer PPIN read until BIOS enables it

On platforms with AST2600 BMC, we now boot fast enough to read the PPIN
over PECI before the BIOS has a chance to enable it (by default it is
not readable). This commit delays the RdPkgConfig until BIOS is done
with POST.

Without this change, a value of 0 is read (and 0x90 CC - but that's
ignored), which causes us to drop it.

This also removes some unnecessary phosphor namespacing.

Tested:
- Booted from AC cycle, confirmed from journal logs that cpuinfoapp
delays an extra minute before running through getProcessorInfo. PPIN
is now set into SerialNumber D-Bus property and shown on Redfish.

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

show more ...


# 703a1856 11-Nov-2020 Jonathan Doman <jonathan.doman@intel.com>

Add support for dynamic SST configuration change

- Implement the CurrentOperatingConfig getters to dynamically read
configuration via PECI. The approach is to read the value from
PECI for each D

Add support for dynamic SST configuration change

- Implement the CurrentOperatingConfig getters to dynamically read
configuration via PECI. The approach is to read the value from
PECI for each D-Bus read. When the host is off, return "default"
values, and when the host is on but the read fails, return the last
read (cached) values.
- Implement the CurrentOperatingConfig setters to modify configuration
via PECI.

Tested:
- Change SST-PP profile and SST-BF flag via D-Bus properties, and
confirmed that host-side Linux tool shows changes.
- Change while host off and confirm it's rejected.
- Change while host booting and confirm it's rejected.
- Read configuration while host off and confirm last known values are
returned.
- Read configuration while host booting and confirm actual values are
returned.
- Change on ICX after host booted and confirm it's rejected.

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

show more ...


# 6d3ad586 11-Sep-2020 Zhikui Ren <zhikui.ren@intel.com>

Get i2c addresses from configuration files.

Different platforms have different bus topology.
Use the peci address and i2c address specified in
json file to read data from cpu.

Tested:
Update basebo

Get i2c addresses from configuration files.

Different platforms have different bus topology.
Use the peci address and i2c address specified in
json file to read data from cpu.

Tested:
Update baseboard json file:
{
"Address": "0x30",
"Bus": 0,
"CpuID": 1,
"Name": "CPU 1",
"PresenceGpio": [
{
"Name": "CPU1_PRESENCE",
"Polarity": "Low"
}
],
"PiromI2cBus": 13,
"PiromI2cAddress": "0x50",
"Type": "XeonCPU"
}
Verified that correct bus addresses are used.

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

show more ...


# 94c94bfb 06-Oct-2020 Jonathan Doman <jonathan.doman@intel.com>

cpuinfoapp: Add SST discovery feature

Retrieve Intel Speed Select Technology (SST) configuration values for
all CPUs via PECI (OS-PCode mailbox). Each CPU may have up to three
Performance Profiles (

cpuinfoapp: Add SST discovery feature

Retrieve Intel Speed Select Technology (SST) configuration values for
all CPUs via PECI (OS-PCode mailbox). Each CPU may have up to three
Performance Profiles (PP), each with accompanying Base Frequency (BF)
information.

Discovery is started immediately, but if no CPUs are found or any
unexpected PECI error is encountered, discovery is aborted and scheduled
for periodic retries until complete.

The profile data is published on D-Bus using two predefined interfaces:
- xyz.openbmc_project.Control.Processor.CurrentOperationConfig, which
is implemented on each "cpu" object in the inventory, and contains
mutable properties for OOB configuration (modifiying properties not
supported yet).
- xyz.openbmc_project.Inventory.Item.Cpu.OperationConfig, which is
implemented on separate "config" objects and contains the readonly
properties for each performance profile.

Tested:
- Profiled performance of PECI operations via code instrumentation
(takes ~2 min per CPU on ast2500 during BMC boot, ~2 sec during BMC idle).
- Validated Redfish output against Linux driver using included python
tool.
- Injected PECI failures in code to test error handling, and tested
with Linux OS idling on host to make sure WOP is working.

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

show more ...


# a43eec82 06-Oct-2020 Jonathan Doman <jonathan.doman@intel.com>

cpuinfoapp: Fix SdBusError exception in match rule

In the match rule looking for new interfaces on cpu objects, the first
thing pulled out of the message is an object_path, not a string. Trying
to r

cpuinfoapp: Fix SdBusError exception in match rule

In the match rule looking for new interfaces on cpu objects, the first
thing pulled out of the message is an object_path, not a string. Trying
to read a string first throws an exception caused by
"sd_bus_message_read_basic string: System.Error.ENXIO"

Tested: Added my own interface to the cpu object from within cpuinfoapp
and confirmed that the exception is no longer thrown.

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

show more ...


12