diff --git a/common/utils.cpp b/common/utils.cpp
index d3d5d5d..f7a0ae0 100644
--- a/common/utils.cpp
+++ b/common/utils.cpp
@@ -26,8 +26,6 @@
 namespace utils
 {
 
-using ObjectMapper = sdbusplus::client::xyz::openbmc_project::ObjectMapper<>;
-
 std::vector<std::vector<uint8_t>> findStateEffecterPDR(uint8_t /*tid*/,
                                                        uint16_t entityID,
                                                        uint16_t stateSetId,
diff --git a/common/utils.hpp b/common/utils.hpp
index 1f54d28..3e8e19e 100644
--- a/common/utils.hpp
+++ b/common/utils.hpp
@@ -40,16 +40,13 @@
 using Json = nlohmann::json;
 constexpr bool Tx = true;
 constexpr bool Rx = false;
-
 using ObjectMapper = sdbusplus::client::xyz::openbmc_project::ObjectMapper<>;
-
 using inventoryManager =
     sdbusplus::client::xyz::openbmc_project::inventory::Manager<>;
 
 constexpr auto dbusProperties = "org.freedesktop.DBus.Properties";
 constexpr auto mapperService = ObjectMapper::default_service;
 constexpr auto inventoryPath = "/xyz/openbmc_project/inventory";
-
 /** @struct CustomFD
  *
  *  RAII wrapper for file descriptor.
diff --git a/configurations/entityMap.json b/configurations/entityMap.json
new file mode 100644
index 0000000..0e8b441
--- /dev/null
+++ b/configurations/entityMap.json
@@ -0,0 +1,39 @@
+{
+    "Description": {
+        "_comment": [
+            "This JSON file defines the entity type and entity name required for generating D-Bus paths.",
+            "Upon parsing the file, a lookup table is created. This lookup table efficiently maps entity types to their respective names, forming a crucial reference for path generation.",
+            "When the PLDM daemon initializes, it retrieves Platform Descriptor Records (PDRs) from remote terminus. Utilizing the information gleaned from these PDRs alongside the data extracted from the lookup table and the PLDM constructs D-Bus paths.",
+            "These paths play a vital role in exposing the intricate system connection architecture to the Redfish client, facilitating streamlined communication and system interaction.",
+            "For Example:",
+            "PDRType : Entity Association PDR",
+            "containerEntityType    :  [Physical] System (Logical)",
+            "containedEntityType[1] :  [Physical] System chassis (main enclosure)",
+            "containedEntityType[1] :  [Physical] Socket",
+            "containedEntityType[1] :  [Physical] Memory Board",
+            "containedEntityType[1] :  [Physical] Processor Module",
+            "The PLDM will generate path '/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm0' for above Entity Association PDR."
+        ]
+    },
+    "EntityTypeToDbusStringMap": {
+        "5": "temp_sensor",
+        "45": "chassis",
+        "60": "io_board",
+        "61": "adapter",
+        "63": "system_management_module",
+        "64": "motherboard",
+        "67": "dcm",
+        "69": "panel",
+        "80": "io_module",
+        "90": "cooling_device",
+        "93": "fan",
+        "120": "powersupply",
+        "123": "power_converter",
+        "135": "cpu",
+        "185": "connector",
+        "186": "slot",
+        "190": "socket",
+        "32813": "system",
+        "32903": "core"
+    }
+}
diff --git a/configurations/meson.build b/configurations/meson.build
index 920d3c0..fcde362 100644
--- a/configurations/meson.build
+++ b/configurations/meson.build
@@ -8,6 +8,7 @@
 
 if get_option('oem-ibm').disabled()
 install_data('fru_master.json', install_dir: package_datadir)
+install_data('entityMap.json', install_dir: package_datadir)
 endif
 
 if get_option('oem-ibm').allowed()
@@ -15,6 +16,7 @@
     install_subdir('../oem/ibm/configurations/events', install_dir: package_datadir)
     install_subdir('../oem/ibm/configurations/bios', install_dir: package_datadir)
     install_data('../oem/ibm/configurations/fru_master.json',install_dir: package_datadir)
+    install_data('../oem/ibm/configurations/entityMap.json',install_dir: package_datadir)
     install_data('../oem/ibm/configurations/fileTable.json',
         install_dir: package_datadir)
     install_data('../oem/ibm/configurations/host_eid', install_dir: package_datadir)
diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index 71e3812..13d83a1 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -26,6 +26,7 @@
 using namespace pldm::utils;
 using namespace sdbusplus::bus::match::rules;
 using namespace pldm::responder::pdr_utils;
+using namespace pldm::hostbmc::utils;
 using Json = nlohmann::json;
 namespace fs = std::filesystem;
 using namespace pldm::dbus;
@@ -95,7 +96,8 @@
     mctp_eid(mctp_eid), event(event), repo(repo),
     stateSensorHandler(eventsJsonsDir), entityTree(entityTree),
     bmcEntityTree(bmcEntityTree), instanceIdDb(instanceIdDb), handler(handler),
-    oemPlatformHandler(oemPlatformHandler)
+    oemPlatformHandler(oemPlatformHandler),
+    entityMaps(parseEntityMap(ENTITY_MAP_JSON))
 {
     mergedHostParents = false;
     hostOffMatch = std::make_unique<sdbusplus::bus::match_t>(
@@ -628,8 +630,8 @@
     }
     if (!nextRecordHandle)
     {
-        pldm::hostbmc::utils::updateEntityAssociation(entityAssociations,
-                                                      entityTree, objPathMap);
+        updateEntityAssociation(entityAssociations, entityTree, objPathMap,
+                                entityMaps);
 
         /*received last record*/
         this->parseStateSensorPDRs(stateSensorPDRs);
diff --git a/host-bmc/host_pdr_handler.hpp b/host-bmc/host_pdr_handler.hpp
index 053cfef..0755a25 100644
--- a/host-bmc/host_pdr_handler.hpp
+++ b/host-bmc/host_pdr_handler.hpp
@@ -327,6 +327,10 @@
 
     /** @OEM platform handler */
     pldm::responder::oem_platform::Handler* oemPlatformHandler;
+
+    /** @brief entityID and entity name is only loaded once
+     */
+    EntityMaps entityMaps;
 };
 
 } // namespace pldm
diff --git a/host-bmc/test/entitymap_test.json b/host-bmc/test/entitymap_test.json
new file mode 100644
index 0000000..7dc08f2
--- /dev/null
+++ b/host-bmc/test/entitymap_test.json
@@ -0,0 +1,19 @@
+{
+    "Description": {
+        "_comment": [
+            "This file serves as a crucial tool for testing JSON parsing capabilities, facilitating the population of the Entitymap by harnessing its data."
+        ]
+    },
+    "EntityTypeToDbusStringMap": {
+        "45": "chassis",
+        "60": "io_board",
+        "63": "system_management_module",
+        "64": "motherboard",
+        "67": "dcm",
+        "80": "io_module",
+        "135": "cpu",
+        "190": "socket",
+        "32813": "system",
+        "32903": "core"
+    }
+}
diff --git a/host-bmc/test/meson.build b/host-bmc/test/meson.build
index 66d75b7..fd3e8c9 100644
--- a/host-bmc/test/meson.build
+++ b/host-bmc/test/meson.build
@@ -4,6 +4,7 @@
 
 test_sources = [
   '../../common/utils.cpp',
+  '../utils.cpp',
   '../custom_dbus.cpp',
   '../utils.cpp'
 ]
diff --git a/host-bmc/test/utils_test.cpp b/host-bmc/test/utils_test.cpp
index 701f4cb..373274f 100644
--- a/host-bmc/test/utils_test.cpp
+++ b/host-bmc/test/utils_test.cpp
@@ -1,4 +1,5 @@
 #include "../utils.hpp"
+#include "common/utils.hpp"
 
 #include <libpldm/pdr.h>
 
@@ -9,6 +10,13 @@
 namespace fs = std::filesystem;
 using namespace pldm;
 using namespace pldm::utils;
+using namespace pldm::hostbmc::utils;
+
+TEST(EntityAssociation, parseEntityMap)
+{
+    EntityMaps entityMaps = parseEntityMap("./entitymap_test.json");
+    EXPECT_EQ(entityMaps.size(), 10);
+}
 
 TEST(EntityAssociation, addObjectPathEntityAssociations1)
 {
@@ -80,8 +88,8 @@
          l5b}};
 
     ObjectPathMaps objPathMap;
-    pldm::hostbmc::utils::updateEntityAssociation(entityAssociations, tree,
-                                                  objPathMap);
+    EntityMaps entityMaps = parseEntityMap("./entitymap_test.json");
+    updateEntityAssociation(entityAssociations, tree, objPathMap, entityMaps);
 
     EXPECT_EQ(objPathMap.size(), retObjectMaps.size());
 
diff --git a/host-bmc/utils.cpp b/host-bmc/utils.cpp
index f025ada..a178d48 100644
--- a/host-bmc/utils.cpp
+++ b/host-bmc/utils.cpp
@@ -4,6 +4,7 @@
 
 #include "utils.hpp"
 
+#include <cstdlib>
 #include <iostream>
 
 namespace pldm
@@ -58,7 +59,8 @@
 void addObjectPathEntityAssociations(const EntityAssociations& entityAssoc,
                                      pldm_entity_node* entity,
                                      const fs::path& path,
-                                     ObjectPathMaps& objPathMap)
+                                     ObjectPathMaps& objPathMap,
+                                     EntityMaps entityMaps)
 {
     if (entity == nullptr)
     {
@@ -120,7 +122,7 @@
             for (size_t i = 1; i < ev.size(); i++)
             {
                 addObjectPathEntityAssociations(entityAssoc, ev[i], p,
-                                                objPathMap);
+                                                objPathMap, entityMaps);
             }
             found = true;
         }
@@ -131,7 +133,6 @@
         std::string dbusPath =
             path / fs::path{entityName +
                             std::to_string(node_entity.entity_instance_num)};
-
         try
         {
             pldm::utils::DBusHandler().getService(dbusPath.c_str(), nullptr);
@@ -145,7 +146,7 @@
 
 void updateEntityAssociation(const EntityAssociations& entityAssoc,
                              pldm_entity_association_tree* entityTree,
-                             ObjectPathMaps& objPathMap)
+                             ObjectPathMaps& objPathMap, EntityMaps entityMaps)
 {
     std::vector<pldm_entity_node*> parentsEntity =
         getParentEntites(entityAssoc);
@@ -200,9 +201,45 @@
             paths.pop_back();
         }
 
-        addObjectPathEntityAssociations(entityAssoc, entity, path, objPathMap);
+        addObjectPathEntityAssociations(entityAssoc, entity, path, objPathMap,
+                                        entityMaps);
     }
 }
+
+EntityMaps parseEntityMap(const fs::path& filePath)
+{
+    const Json emptyJson{};
+    EntityMaps entityMaps{};
+    std::ifstream jsonFile(filePath);
+    auto data = Json::parse(jsonFile);
+    if (data.is_discarded())
+    {
+        error("Failed parsing of EntityMap data from json file: '{JSON_PATH}'",
+              "JSON_PATH", filePath);
+        return entityMaps;
+    }
+    auto entities = data.value("EntityTypeToDbusStringMap", emptyJson);
+    char* err;
+    try
+    {
+        std::ranges::transform(entities.items(),
+                               std::inserter(entityMaps, entityMaps.begin()),
+                               [&err](const auto& element) {
+            std::string key = static_cast<EntityName>(element.key());
+            return std::make_pair(strtol(key.c_str(), &err, 10),
+                                  static_cast<EntityName>(element.value()));
+        });
+    }
+    catch (const std::exception& e)
+    {
+        error(
+            "Failed to create entity to DBus string mapping {ERROR} and Conversion failure is '{ERR}'",
+            "ERROR", e, "ERR", err);
+    }
+
+    return entityMaps;
+}
+
 } // namespace utils
 } // namespace hostbmc
 } // namespace pldm
diff --git a/host-bmc/utils.hpp b/host-bmc/utils.hpp
index 857d6c7..2b0e2a7 100644
--- a/host-bmc/utils.hpp
+++ b/host-bmc/utils.hpp
@@ -14,33 +14,20 @@
 PHOSPHOR_LOG2_USING;
 namespace pldm
 {
+using Json = nlohmann::json;
+namespace fs = std::filesystem;
+using ObjectPath = fs::path;
 using EntityName = std::string;
 using EntityType = uint16_t;
-
 using Entities = std::vector<pldm_entity_node*>;
 using EntityAssociations = std::vector<Entities>;
-using ObjectPathMaps = std::map<fs::path, pldm_entity_node*>;
+using ObjectPathMaps = std::map<ObjectPath, pldm_entity_node*>;
+using EntityMaps = std::map<EntityType, EntityName>;
 namespace hostbmc
 {
 namespace utils
 {
 
-const std::map<EntityType, EntityName> entityMaps = {
-    {PLDM_ENTITY_SYSTEM_CHASSIS, "chassis"},
-    {PLDM_ENTITY_BOARD, "io_board"},
-    {PLDM_ENTITY_SYS_BOARD, "motherboard"},
-    {PLDM_ENTITY_POWER_SUPPLY, "powersupply"},
-    {PLDM_ENTITY_PROC, "cpu"},
-    {PLDM_ENTITY_SYSTEM_CHASSIS | 0x8000, "system"},
-    {PLDM_ENTITY_PROC_MODULE, "dcm"},
-    {PLDM_ENTITY_PROC | 0x8000, "core"},
-    {PLDM_ENTITY_IO_MODULE, "io_module"},
-    {PLDM_ENTITY_FAN, "fan"},
-    {PLDM_ENTITY_SYS_MGMT_MODULE, "system_management_module"},
-    {PLDM_ENTITY_POWER_CONVERTER, "power_converter"},
-    {PLDM_ENTITY_SLOT, "slot"},
-    {PLDM_ENTITY_CONNECTOR, "connector"}};
-
 /** @brief Vector a entity name to pldm_entity from entity association tree
  *  @param[in]  entityAssoc    - Vector of associated pldm entities
  *  @param[in]  entityTree     - entity association tree
@@ -50,7 +37,15 @@
  */
 void updateEntityAssociation(const EntityAssociations& entityAssoc,
                              pldm_entity_association_tree* entityTree,
-                             ObjectPathMaps& objPathMap);
+                             ObjectPathMaps& objPathMap, EntityMaps entityMaps);
+
+/** @brief Parsing entity to DBus string mapping from json file
+ *
+ *  @param[in]  filePath - JSON file path for parsing
+ *
+ *  @return returns the entity to DBus string mapping object
+ */
+EntityMaps parseEntityMap(const fs::path& filePath);
 
 } // namespace utils
 } // namespace hostbmc
diff --git a/libpldmresponder/meson.build b/libpldmresponder/meson.build
index 9e3db15..151806b 100644
--- a/libpldmresponder/meson.build
+++ b/libpldmresponder/meson.build
@@ -24,6 +24,7 @@
   'fru_parser.cpp',
   'fru.cpp',
   '../host-bmc/host_pdr_handler.cpp',
+  '../host-bmc/utils.cpp',
   '../host-bmc/dbus_to_event_handler.cpp',
   '../host-bmc/dbus_to_host_effecters.cpp',
   '../host-bmc/host_condition.cpp',
diff --git a/meson.build b/meson.build
index 93b4728..827d1f0 100644
--- a/meson.build
+++ b/meson.build
@@ -38,6 +38,7 @@
 conf_data.set_quoted('PDR_JSONS_DIR', join_paths(package_datadir, 'pdr'))
 conf_data.set_quoted('FRU_JSONS_DIR', join_paths(package_datadir, 'fru'))
 conf_data.set_quoted('FRU_MASTER_JSON', join_paths(package_datadir, 'fru_master.json'))
+conf_data.set_quoted('ENTITY_MAP_JSON', join_paths(package_datadir, 'entityMap.json'))
 conf_data.set_quoted('HOST_JSONS_DIR', join_paths(package_datadir, 'host'))
 conf_data.set_quoted('EVENTS_JSONS_DIR', join_paths(package_datadir, 'events'))
 conf_data.set('HEARTBEAT_TIMEOUT', get_option('heartbeat-timeout-seconds'))
diff --git a/oem/ibm/configurations/entityMap.json b/oem/ibm/configurations/entityMap.json
new file mode 100644
index 0000000..2f8a288
--- /dev/null
+++ b/oem/ibm/configurations/entityMap.json
@@ -0,0 +1,39 @@
+{
+    "Description": {
+        "_comment": [
+            "This JSON file defines the entity type and entity name required for generating D-Bus paths.",
+            "Upon parsing the file, a lookup table is created. This lookup table efficiently maps entity types to their respective names, forming a crucial reference for path generation.",
+            "When the PLDM daemon initializes, it retrieves Platform Descriptor Records (PDRs) from remote terminus. Utilizing the information gleaned from these PDRs alongside the data extracted from the lookup table and the PLDM constructs D-Bus paths.",
+            "These paths play a vital role in exposing the intricate system connection architecture to the Redfish client, facilitating streamlined communication and system interaction.",
+            "For Example:",
+            "PDRType : Entity Association PDR",
+            "containerEntityType    :  [Physical] System (Logical)",
+            "containedEntityType[1] :  [Physical] System chassis (main enclosure)",
+            "containedEntityType[1] :  [Physical] Socket",
+            "containedEntityType[1] :  [Physical] Memory Board",
+            "containedEntityType[1] :  [Physical] Processor Module",
+            "The PLDM will generate path '/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm0' for above Entity Association PDR."
+        ]
+    },
+    "EntityTypeToDbusStringMap": {
+        "5": "temp_sensor",
+        "45": "chassis",
+        "60": "io_board",
+        "61": "adapter",
+        "63": "system_management_module",
+        "64": "motherboard",
+        "67": "dcm",
+        "69": "panel",
+        "80": "io_module",
+        "90": "cooling_device",
+        "93": "fan",
+        "120": "powersupply",
+        "123": "power_converter",
+        "135": "cpu",
+        "185": "connector",
+        "186": "slot",
+        "190": "socket",
+        "11521": "system",
+        "32903": "core"
+    }
+}
