diff options
Diffstat (limited to 'src/include/usr/spd/spdenums.H')
-rw-r--r-- | src/include/usr/spd/spdenums.H | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/include/usr/spd/spdenums.H b/src/include/usr/spd/spdenums.H index 2c2d6582a..09178c96f 100644 --- a/src/include/usr/spd/spdenums.H +++ b/src/include/usr/spd/spdenums.H @@ -30,6 +30,8 @@ #ifndef __SPDENUMS_H #define __SPDENUMS_H +#include <mbox/mbox_queues.H> + namespace SPD { @@ -258,6 +260,45 @@ enum INVALID_SPD_KEYWORD = 0xFFFF, }; +/** + * @brief VPD Message Types + */ +enum VPD_MSG_TYPE +{ + VPD_WRITE_DIMM = 0x00C1, //< DIMM SPD + VPD_WRITE_PROC = 0x00C2, //< Processor MVPD + VPD_WRITE_MEMBUF = 0x00C3, //< Centaur FRU VPD +}; + +/** + * @brief Message definition for VPD Write Request + * + * - data0 : + * - [16] VPD Record Number + * - [32] 4-byte ASCII String for record name + * 'XXXX'=Entire VPD section from PNOR + * - [16] 2-byte ASCII String for keyword or offset into SPD + * 'XX'=Entire VPD record + * - data1 : + * - [64] Size of binary data in bytes + * - extra data : Binary VPD Data + */ +union VpdWriteMsg_t +{ + uint64_t data0; + struct + { + uint16_t rec_num; //< VPD_REC_NUM + char record[4]; //< ASCII Record Name + union + { + char keyword[2]; //< ASCII Keyword (for IBM VPD) + uint16_t offset; //< Offset into record in bytes (for DIMM SPD) + }; + } PACKED; +}; + + }; // end SPD #endif |