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
diff --git a/src/cpuinfo_main.cpp b/src/cpuinfo_main.cpp
index cc5e772..6e44d71 100644
--- a/src/cpuinfo_main.cpp
+++ b/src/cpuinfo_main.cpp
@@ -448,9 +448,10 @@
std::stringstream stream;
stream << std::hex << cpuPPIN;
std::string serialNumber(stream.str());
- // cpuInfo->serialNumber(serialNumber);
- setCpuProperty(conn, cpu, assetInterfaceName, "SerialNumber",
- serialNumber);
+ cpuInfo->uniqueIdentifier(serialNumber);
+ // Signal that the iface is added now so that ObjectMapper and
+ // others can find it.
+ cpuInfo->emit_added();
}
tryReadSSpec(conn, cpuInfo);
@@ -538,8 +539,8 @@
i2cDevice = defaultI2cSlaveAddr0 + cpu - 1;
}
cpuInfoMap.insert_or_assign(
- cpu, std::make_shared<CPUInfo>(cpu, peciAddress, i2cBus,
- i2cDevice));
+ cpu, std::make_shared<CPUInfo>(*conn, cpu, peciAddress,
+ i2cBus, i2cDevice));
getProcessorInfo(io, conn, cpu);
}