diff --git a/vpd-manager/src/ddimm_parser.cpp b/vpd-manager/src/ddimm_parser.cpp
index b4144aa..a480000 100644
--- a/vpd-manager/src/ddimm_parser.cpp
+++ b/vpd-manager/src/ddimm_parser.cpp
@@ -20,6 +20,8 @@
 
 static constexpr auto PRIMARY_BUS_WIDTH_32_BITS = 32;
 static constexpr auto PRIMARY_BUS_WIDTH_UNUSED = 0;
+static constexpr auto DRAM_MANUFACTURER_ID_OFFSET = 0x228;
+static constexpr auto DRAM_MANUFACTURER_ID_LENGTH = 0x02;
 
 bool DdimmVpdParser::checkValidValue(uint8_t i_ByteValue, uint8_t i_shift,
                                      uint8_t i_minValue, uint8_t i_maxValue)
@@ -368,10 +370,15 @@
     advance(i_iterator, constants::SERIAL_NUM_LEN);
     types::BinaryVector l_ccin(i_iterator, i_iterator + constants::CCIN_LEN);
 
+    types::BinaryVector l_mfgId(DRAM_MANUFACTURER_ID_LENGTH);
+    std::copy_n((m_vpdVector.cbegin() + DRAM_MANUFACTURER_ID_OFFSET),
+                DRAM_MANUFACTURER_ID_LENGTH, l_mfgId.begin());
+
     m_parsedVpdMap.emplace("FN", l_partNumber);
     m_parsedVpdMap.emplace("PN", move(l_partNumber));
     m_parsedVpdMap.emplace("SN", move(l_serialNumber));
     m_parsedVpdMap.emplace("CC", move(l_ccin));
+    m_parsedVpdMap.emplace("DI", move(l_mfgId));
 }
 
 types::VPDMapVariant DdimmVpdParser::parse()
diff --git a/vpd-manager/src/isdimm_parser.cpp b/vpd-manager/src/isdimm_parser.cpp
index 76e1dea..72e2657 100644
--- a/vpd-manager/src/isdimm_parser.cpp
+++ b/vpd-manager/src/isdimm_parser.cpp
@@ -40,6 +40,8 @@
 constexpr auto SPD_JEDEC_DDR4_SDRAM_ADDR_OFFSET = 5;
 constexpr auto SPD_JEDEC_DDR4_DRAM_PRI_PACKAGE_OFFSET = 6;
 constexpr auto SPD_JEDEC_DDR4_DRAM_MODULE_ORG_OFFSET = 12;
+static constexpr auto SPD_JEDEC_DDR4_DRAM_MANUFACTURER_ID_OFFSET = 320;
+static constexpr auto SPD_JEDEC_DRAM_MANUFACTURER_ID_LENGTH = 2;
 
 // Lookup tables
 const std::map<std::tuple<std::string, uint8_t>, std::string> pnFreqFnMap = {
@@ -204,6 +206,24 @@
     return "XXXX"; // Return default value as XXXX
 }
 
+types::BinaryVector JedecSpdParser::getDDR4ManufacturerId()
+{
+    types::BinaryVector l_mfgId(SPD_JEDEC_DRAM_MANUFACTURER_ID_LENGTH);
+
+    if (m_memSpd.size() < (SPD_JEDEC_DDR4_DRAM_MANUFACTURER_ID_OFFSET +
+                           SPD_JEDEC_DRAM_MANUFACTURER_ID_LENGTH))
+    {
+        logging::logMessage(
+            "VPD length is less than the offset of Manufacturer ID. Can't fetch it");
+        return l_mfgId;
+    }
+
+    std::copy_n((m_memSpd.cbegin() +
+                 SPD_JEDEC_DDR4_DRAM_MANUFACTURER_ID_OFFSET),
+                SPD_JEDEC_DRAM_MANUFACTURER_ID_LENGTH, l_mfgId.begin());
+    return l_mfgId;
+}
+
 auto JedecSpdParser::getDDR5DimmCapacity(
     types::BinaryVector::const_iterator& i_iterator)
 {
@@ -290,6 +310,8 @@
         getDDR4CCIN(std::string(l_fruNumber.begin(), l_fruNumber.end()));
     // PN value is made same as FN value
     auto l_displayPartNumber = l_fruNumber;
+    auto l_mfgId = getDDR4ManufacturerId();
+
     l_keywordValueMap.emplace("PN",
                               move(std::string(l_displayPartNumber.begin(),
                                                l_displayPartNumber.end())));
@@ -298,6 +320,7 @@
     l_keywordValueMap.emplace("SN", move(l_serialNumber));
     l_keywordValueMap.emplace("CC",
                               move(std::string(ccin.begin(), ccin.end())));
+    l_keywordValueMap.emplace("DI", move(l_mfgId));
 
     return l_keywordValueMap;
 }
