OEM Type 193: Other ROM Info.

Signed-off-by: Jerry Hoemann <jerry.hoem...@hpe.com>
---
 dmioem.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/dmioem.c b/dmioem.c
index e86f863..b3d5bbd 100644
--- a/dmioem.c
+++ b/dmioem.c
@@ -1001,6 +1001,34 @@ static int dmi_decode_hp(const struct dmi_header *h)
 
        switch (h->type)
        {
+               case 193:
+                       /*
+                        * Vendor Specific: Other ROM Info
+                        *
+                        * Offset |  Name      | Width | Description
+                        * -------------------------------------
+                        *  0x00  | Type       | BYTE  | 0xC1, ROM Structure 
Indicator
+                        *  0x01  | Length     | BYTE  | Length of structure
+                        *  0x02  | Handle     | WORD  | Unique handle
+                        *  0x04  | ROM        | BYTE  | 01: Redundant ROM 
installed
+                        *  0x05  | ROM vers   | STRING| Version of the 
Rendundant ROM
+                        *  0x06  | Reserved   | BYTE  | Reserved in Gen9 
forward
+                        *  0x07  | OEM ROM    | STRING| If not blank, OEM ROM 
binary file name
+                        *  0x08  | OEM Date   | STRING| If not blank, OEM ROM 
binary build date
+                        */
+                       if (gen < G9) return 0;
+                       pr_handle_name("%s ProLiant Other ROM Info", company);
+                       if (h->length < 0x09) break;
+                       if (gen < G12)
+                               pr_attr("Redundant ROM Version", "%s", 
dmi_string(h, data[0x05]));
+                       char const *str = dmi_string(h, data[0x07]);
+                       char blank[] = "         ";  // 9 spaces
+                       if (str && strncmp(str, blank, strlen(blank)))
+                       {
+                               pr_attr("OEM ROM Version", "%s", dmi_string(h, 
data[0x07]));
+                               pr_attr("OEM ROM Date", "%s", dmi_string(h, 
data[0x08]));
+                       }
+                       break;
                case 194:
                        /*
                         * Vendor Specific: Super IO Enable/Disable Features
-- 
2.47.1


Reply via email to