1 #include "oem/ibm/libpldm/state_set_oem_ibm.h"
2 
3 #include <libpldm/entity.h>
4 #include <libpldm/entity_oem_ibm.h>
5 
6 /** @brief PLDM OEM State Set range as per DSP0249_1.1.0 specification
7  */
8 enum pldm_oem_state_set_id_codes
9 {
10     PLDM_OEM_STATE_SET_START = 32768,
11     PLDM_OEM_STATE_SET_END = 65535,
12 
13 };
14 
15 /** @brief PLDM OEM IBM Code Update possible state set values
16  */
17 enum pldm_oem_ibm_cu_state_set_values
18 {
19     OEM_IBM_STATE_SET_CU_START = 1,
20     OEM_IBM_STATE_SET_CU_END = 2,
21     OEM_IBM_STATE_SET_CU_FAIL = 3,
22     OEM_IBM_STATE_SET_CU_ABORT = 4,
23     OEM_IBM_STATE_SET_CU_ACCEPT = 5,
24     OEM_IBM_STATE_SET_CU_REJECT = 6,
25 };
26 
27 /** @brief PLDM OEM IBM Verification possible state set values
28  */
29 enum pldm_oem_ibm_verification_state_set_values
30 {
31     OEM_IBM_STATE_SET_VERFICATION_VALID = 0,
32     OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL = 1,
33     OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL = 2,
34     OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL = 4,
35 };
36 
37 /** @brief PLDM OEM IBM system power state possible state set values
38  */
39 enum pldm_oem_ibm_sys_power_state_set_values
40 {
41     OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD = 1,
42 };
43 
44 /** @brief PLDM OEM IBM boot state possible state set values
45  */
46 enum pldm_oem_ibm_boot_state_set_values
47 {
48     OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE = 1,
49     OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE = 2,
50 };
51 
52 /** @brief Map for PLDM OEM IBM Entity Types
53  */
54 extern const std::map<uint8_t, std::string> OemIBMEntityType{
55     {PLDM_OEM_IBM_ENTITY_FIRMWARE_UPDATE, "OEM IBM Firmware Update"},
56     {PLDM_OEM_ENTITY_TYPE_START, "OEM IBM Entity Type Start"},
57     {PLDM_OEM_ENTITY_TYPE_END, "OEM IBM Entity Type End"},
58 };
59 
60 /** @brief Map for PLDM OEM IBM State Sets
61  */
62 extern const std::map<uint16_t, std::string> OemIBMstateSet{
63     {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, "OEM IBM Firmware Update State"},
64     {PLDM_OEM_IBM_BOOT_STATE, "OEM IBM Boot State"},
65     {PLDM_OEM_IBM_VERIFICATION_STATE, "OEM IBM Verification State"},
66     {PLDM_OEM_IBM_SYSTEM_POWER_STATE, "OEM IBM System Power State"}};
67 
68 /** @brief Map for PLDM OEM IBM firmware update possible state values
69  */
70 extern const std::map<uint8_t, std::string> SetOemIBMFWUpdateStateValues{
71     {OEM_IBM_STATE_SET_CU_START, "Start"},
72     {OEM_IBM_STATE_SET_CU_END, "End"},
73     {OEM_IBM_STATE_SET_CU_FAIL, "Fail"},
74     {OEM_IBM_STATE_SET_CU_ABORT, "Abort"},
75     {OEM_IBM_STATE_SET_CU_ACCEPT, "Accept"},
76     {OEM_IBM_STATE_SET_CU_REJECT, "Reject"}};
77 
78 /** @brief Map for PLDM OEM IBM verification state possible state values
79  */
80 extern const std::map<uint8_t, std::string> SetOemIBMVerStateValues{
81     {OEM_IBM_STATE_SET_VERFICATION_VALID, "Valid"},
82     {OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL, "Entitlement Fail"},
83     {OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL,
84      "Banned Platform Fail"},
85     {OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL, "Minimum MIF Fail"}};
86 
87 /** @brief Map for PLDM OEM IBM systerm power state possible state values
88  */
89 extern const std::map<uint8_t, std::string> SetOemIBMSysPowerStatesValues{
90     {OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD, "Power Cycle Hard"}};
91 
92 /** @brief Map for PLDM OEM IBM boot state possible state values
93  */
94 extern const std::map<uint8_t, std::string> SetOemIBMBootStateValues{
95     {OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE, "P Side"},
96     {OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE, "T side"}};
97 
98 /** @brief Map for populating PLDM OEM IBM state sets with possible state values
99  */
100 extern const std::map<uint16_t, const std::map<uint8_t, std::string>>
101     populateOemIBMStateMaps{
102         {PLDM_OEM_IBM_VERIFICATION_STATE, SetOemIBMVerStateValues},
103         {PLDM_OEM_IBM_SYSTEM_POWER_STATE, SetOemIBMSysPowerStatesValues},
104         {PLDM_OEM_IBM_BOOT_STATE, SetOemIBMBootStateValues},
105         {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, SetOemIBMFWUpdateStateValues},
106     };
107