diff --git a/include/cpuinfo.hpp b/include/cpuinfo.hpp
index f7dd21b..ac26c60 100644
--- a/include/cpuinfo.hpp
+++ b/include/cpuinfo.hpp
@@ -17,7 +17,9 @@
 #pragma once
 
 #include <sdbusplus/asio/object_server.hpp>
+#include <sdbusplus/server/object.hpp>
 #include <xyz/openbmc_project/Inventory/Decorator/Asset/server.hpp>
+#include <xyz/openbmc_project/Inventory/Decorator/UniqueIdentifier/server.hpp>
 
 namespace cpu_info
 {
@@ -35,13 +37,21 @@
     sdbusplus::xyz::openbmc_project::Inventory::Item::server::Cpu;
 */
 
-// This will be expanded to CPUInfo object_server in a future patch
-struct CPUInfo
+using UniqueIdentifierBase =
+    sdbusplus::server::object_t<sdbusplus::xyz::openbmc_project::Inventory::
+                                    Decorator::server::UniqueIdentifier>;
+
+struct CPUInfo : public UniqueIdentifierBase
 {
-    CPUInfo(const size_t cpuId, const uint8_t peciAddress,
-            const uint8_t i2cBusNum, const uint8_t i2cSlaveAddress) :
-        id(cpuId),
-        peciAddr(peciAddress), i2cBus(i2cBusNum), i2cDevice(i2cSlaveAddress)
+    CPUInfo(sdbusplus::bus::bus& bus, const size_t cpuId,
+            const uint8_t peciAddress, const uint8_t i2cBusNum,
+            const uint8_t i2cSlaveAddress) :
+        // use defer_emit for UniqueIdentifier iface so that ObjectMapper
+        // doesn't find it until we have a valid PPIN
+        UniqueIdentifierBase(bus, (cpuPath + std::to_string(cpuId - 1)).c_str(),
+                             action::defer_emit),
+        id(cpuId), peciAddr(peciAddress), i2cBus(i2cBusNum),
+        i2cDevice(i2cSlaveAddress)
     {}
 
     uint8_t id;
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);
             }
