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);
             }