DDIMM & ISDIMM:Method to get manufacturer ID

This commit implements the logic to get manufacturer ID for ISDIMMs
and DDIMMs and add it to the Parsed vpd map

Change-Id: If8b707448f9c2485c8cf837bb63fc6df23531355
Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
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()