summaryrefslogtreecommitdiffstats
path: root/openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch
diff options
context:
space:
mode:
Diffstat (limited to 'openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch')
-rw-r--r--openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch99
1 files changed, 99 insertions, 0 deletions
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch
new file mode 100644
index 00000000..41c24b37
--- /dev/null
+++ b/openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch
@@ -0,0 +1,99 @@
+From ed60d5736559c4e100e5db20de942a584b58b6f0 Mon Sep 17 00:00:00 2001
+From: Jim Yuan <jim.yuan@supermicro.com>
+Date: Wed, 25 May 2016 15:24:40 -0700
+Subject: [PATCH 08/14] Fill board mfg time and date in FRU3. It is read from
+ PVPD:VNDR:IN.
+
+Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
+---
+ src/usr/ipmiext/ipmifruinv.C | 65 +++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 49 insertions(+), 16 deletions(-)
+
+diff --git a/src/usr/ipmiext/ipmifruinv.C b/src/usr/ipmiext/ipmifruinv.C
+index 23aaf9b97..11fbd7677 100644
+--- a/src/usr/ipmiext/ipmifruinv.C
++++ b/src/usr/ipmiext/ipmifruinv.C
+@@ -1279,31 +1279,64 @@ errlHndl_t backplaneIpmiFruInv::buildChassisInfoArea(
+ return l_errl;
+ }
+
++// Quick hexdigit to binary converter.
++// Hopefull someday to replaced by strtoul
++uint8_t aschex2bin(char c)
++{
++ if(c >= 'a' && c <= 'f')
++ {
++ c = c + 10 - 'a';
++ }
++ else if (c >= 'A' && c <= 'F')
++ {
++ c = c + 10 - 'A';
++ }
++ else if (c >= '0' && c <= '9')
++ {
++ c -= '0';
++ }
++ else return 0;// else it's not a hex digit, return 0
++
++ return c;
++}
++
++
+ errlHndl_t backplaneIpmiFruInv::buildBoardInfoArea(
+ std::vector<uint8_t> &io_data)
+ {
+ errlHndl_t l_errl = NULL;
++ std::vector<uint8_t> oem_data; //jim052316
++ uint8_t i, data1, data2, data3;//jim052316
+
+ do {
+ //Set formatting data that goes at the beginning of the record
+ preFormatProcessing(io_data, true);
+
+- // Set Mfg Build date
+- // Grab VPD data into seperate data vector
+- std::vector<uint8_t> mfgDateData;
+- l_errl = addVpdData(mfgDateData, PVPD::OPFR, PVPD::MB, false, false);
+- if (l_errl)
+- {
+- // The MB keyword was optional on older cards so just ignore
+- // any errors
+- delete l_errl;
+- l_errl = NULL;
+- }
+- else
+- {
+- // Pass that to the function that sets the Build date
+- setMfgData(io_data, mfgDateData);
+- }
++ l_errl = addVpdData(oem_data, PVPD::VNDR, PVPD::IN, true);
++ if (l_errl) { break; }
++
++ for (i=0; i < oem_data.size(); i++)
++ TRACFCOMP(g_trac_ipmi,"Jimdebug board VNDR:IN data is 0x%x", oem_data[i]);
++
++ data1 = (aschex2bin(oem_data[5]) << 4) | aschex2bin(oem_data[6]);//jim052416
++ data2 = (aschex2bin(oem_data[3]) << 4) | aschex2bin(oem_data[4]);
++ data3 = (aschex2bin(oem_data[1]) << 4) | aschex2bin(oem_data[2]);
++
++
++ TRACFCOMP(g_trac_ipmi,"Jimdebug push data1 is 0x%x", data1);
++ TRACFCOMP(g_trac_ipmi,"Jimdebug push data2 is 0x%x", data2);
++ TRACFCOMP(g_trac_ipmi,"Jimdebug push data3 is 0x%x", data3);
++
++
++ io_data.push_back(data1);
++ io_data.push_back(data2);
++ io_data.push_back(data3);
++
++
++ //Set MFG Date/Time - Blank
++ //io_data.push_back(0x5E); //jim52016
++ //io_data.push_back(0x9A);
++ //io_data.push_back(0xA3);
+
+ //Set Vendor Name - ascii formatted data
+ l_errl = addVpdData(io_data, PVPD::OPFR, PVPD::VN, true);
+--
+2.16.2.windows.1
+
OpenPOWER on IntegriCloud