diff --git a/host-bmc/dbus/board.hpp b/host-bmc/dbus/board.hpp
new file mode 100644
index 0000000..a9cfde5
--- /dev/null
+++ b/host-bmc/dbus/board.hpp
@@ -0,0 +1,36 @@
+#pragma once
+
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server.hpp>
+#include <sdbusplus/server/object.hpp>
+#include <xyz/openbmc_project/Inventory/Item/Board/server.hpp>
+
+#include <string>
+
+namespace pldm
+{
+namespace dbus
+{
+using ItemBoard = sdbusplus::server::object_t<
+    sdbusplus::xyz::openbmc_project::Inventory::Item::server::Board>;
+
+class Board : public ItemBoard
+{
+  public:
+    Board() = delete;
+    ~Board() = default;
+    Board(const Board&) = delete;
+    Board& operator=(const Board&) = delete;
+    Board(Board&&) = delete;
+    Board& operator=(Board&&) = delete;
+
+    Board(sdbusplus::bus_t& bus, const std::string& objPath) :
+        ItemBoard(bus, objPath.c_str()), path(objPath)
+    {}
+
+  private:
+    std::string path;
+};
+
+} // namespace dbus
+} // namespace pldm
diff --git a/host-bmc/dbus/custom_dbus.cpp b/host-bmc/dbus/custom_dbus.cpp
index 42acc59..1108b4a 100644
--- a/host-bmc/dbus/custom_dbus.cpp
+++ b/host-bmc/dbus/custom_dbus.cpp
@@ -137,6 +137,16 @@
     }
 }
 
+void CustomDBus::implementBoard(const std::string& path)
+{
+    if (!board.contains(path))
+    {
+        board.emplace(path,
+                      std::make_unique<Board>(
+                          pldm::utils::DBusHandler::getBus(), path.c_str()));
+    }
+}
+
 void CustomDBus::implementPowerSupplyInterface(const std::string& path)
 {
     if (!powersupply.contains(path))
diff --git a/host-bmc/dbus/custom_dbus.hpp b/host-bmc/dbus/custom_dbus.hpp
index d8d9375..e83c955 100644
--- a/host-bmc/dbus/custom_dbus.hpp
+++ b/host-bmc/dbus/custom_dbus.hpp
@@ -2,6 +2,7 @@
 
 #include "asset.hpp"
 #include "availability.hpp"
+#include "board.hpp"
 #include "cable.hpp"
 #include "chassis.hpp"
 #include "common/utils.hpp"
@@ -178,6 +179,13 @@
      */
     void implementFabricAdapter(const std::string& path);
 
+    /** @brief Implement Board Interface
+     *
+     *  @param[in] path - The object path
+     *
+     */
+    void implementBoard(const std::string& path);
+
     /** @brief Implement Asset Interface
      *
      *  @param[in] path - The object path
@@ -225,6 +233,7 @@
     std::unordered_map<ObjectPath, std::unique_ptr<PCIeDevice>> pcieDevice;
     std::unordered_map<ObjectPath, std::unique_ptr<PCIeSlot>> pcieSlot;
     std::unordered_map<ObjectPath, std::unique_ptr<PowerSupply>> powersupply;
+    std::unordered_map<ObjectPath, std::unique_ptr<Board>> board;
     std::unordered_map<ObjectPath, std::unique_ptr<FabricAdapter>>
         fabricAdapter;
     std::unordered_map<ObjectPath, std::unique_ptr<Cable>> cable;
diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index f29591e..8da01a7 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -1186,6 +1186,9 @@
                 CustomDBus::getCustomDBus().implementConnecterInterface(
                     entity.first);
                 break;
+            case PLDM_ENTITY_BOARD:
+                CustomDBus::getCustomDBus().implementBoard(entity.first);
+                break;
             case PLDM_ENTITY_CARD:
                 CustomDBus::getCustomDBus().implementPCIeDeviceInterface(
                     entity.first);
