blob: 5de0c8318545d0c0d104f0e80373d9e4f0d87214 [file] [log] [blame]
Brad Bishop869b7762021-12-03 13:56:23 -05001#include <libpldm/entity.h>
Andrew Jeffery21f128d2024-01-15 15:34:26 +10302#include <libpldm/oem/ibm/entity.h>
3#include <libpldm/oem/ibm/state_set.h>
Pavithra Barithaya51cc5bd2024-07-31 13:54:48 +05304
Pavithra Barithayab3b84b42024-08-23 11:43:57 +05305#include <cstdint>
Pavithra Barithaya51cc5bd2024-07-31 13:54:48 +05306#include <map>
7#include <string>
Brad Bishop869b7762021-12-03 13:56:23 -05008
Sridevi Rameshdcdcd3b2021-06-15 04:06:49 -05009/** @brief PLDM OEM IBM Code Update possible state set values
10 */
11enum pldm_oem_ibm_cu_state_set_values
12{
13 OEM_IBM_STATE_SET_CU_START = 1,
14 OEM_IBM_STATE_SET_CU_END = 2,
15 OEM_IBM_STATE_SET_CU_FAIL = 3,
16 OEM_IBM_STATE_SET_CU_ABORT = 4,
17 OEM_IBM_STATE_SET_CU_ACCEPT = 5,
18 OEM_IBM_STATE_SET_CU_REJECT = 6,
19};
20
21/** @brief PLDM OEM IBM Verification possible state set values
22 */
23enum pldm_oem_ibm_verification_state_set_values
24{
25 OEM_IBM_STATE_SET_VERFICATION_VALID = 0,
26 OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL = 1,
27 OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL = 2,
28 OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL = 4,
29};
30
31/** @brief PLDM OEM IBM system power state possible state set values
32 */
33enum pldm_oem_ibm_sys_power_state_set_values
34{
35 OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD = 1,
36};
37
38/** @brief PLDM OEM IBM boot state possible state set values
39 */
40enum pldm_oem_ibm_boot_state_set_values
41{
42 OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE = 1,
43 OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE = 2,
44};
45
46/** @brief Map for PLDM OEM IBM Entity Types
47 */
48extern const std::map<uint8_t, std::string> OemIBMEntityType{
Brad Bishop27403f42021-12-01 21:37:44 -050049 {PLDM_OEM_IBM_ENTITY_FIRMWARE_UPDATE, "OEM IBM Firmware Update"},
Jayashankar Padathfdf6da72025-04-14 10:54:58 -050050 {PLDM_OEM_IBM_ENTITY_TPM, "OEM IBM Trusted Platform Module"},
51 {PLDM_OEM_IBM_ENTITY_REAL_SAI, "OEM IBM Real SAI"},
52};
Sridevi Rameshdcdcd3b2021-06-15 04:06:49 -050053
54/** @brief Map for PLDM OEM IBM State Sets
55 */
56extern const std::map<uint16_t, std::string> OemIBMstateSet{
57 {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, "OEM IBM Firmware Update State"},
58 {PLDM_OEM_IBM_BOOT_STATE, "OEM IBM Boot State"},
Pavithra Barithayaa2b964f2021-10-06 07:46:19 -050059 {PLDM_OEM_IBM_VERIFICATION_STATE, "OEM IBM Verification State"},
Sridevi Rameshdcdcd3b2021-06-15 04:06:49 -050060 {PLDM_OEM_IBM_SYSTEM_POWER_STATE, "OEM IBM System Power State"}};
61
62/** @brief Map for PLDM OEM IBM firmware update possible state values
63 */
64extern const std::map<uint8_t, std::string> SetOemIBMFWUpdateStateValues{
65 {OEM_IBM_STATE_SET_CU_START, "Start"},
66 {OEM_IBM_STATE_SET_CU_END, "End"},
67 {OEM_IBM_STATE_SET_CU_FAIL, "Fail"},
68 {OEM_IBM_STATE_SET_CU_ABORT, "Abort"},
69 {OEM_IBM_STATE_SET_CU_ACCEPT, "Accept"},
70 {OEM_IBM_STATE_SET_CU_REJECT, "Reject"}};
71
72/** @brief Map for PLDM OEM IBM verification state possible state values
73 */
74extern const std::map<uint8_t, std::string> SetOemIBMVerStateValues{
75 {OEM_IBM_STATE_SET_VERFICATION_VALID, "Valid"},
76 {OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL, "Entitlement Fail"},
77 {OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL,
78 "Banned Platform Fail"},
79 {OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL, "Minimum MIF Fail"}};
80
81/** @brief Map for PLDM OEM IBM systerm power state possible state values
82 */
83extern const std::map<uint8_t, std::string> SetOemIBMSysPowerStatesValues{
84 {OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD, "Power Cycle Hard"}};
85
86/** @brief Map for PLDM OEM IBM boot state possible state values
87 */
88extern const std::map<uint8_t, std::string> SetOemIBMBootStateValues{
89 {OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE, "P Side"},
90 {OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE, "T side"}};
91
92/** @brief Map for populating PLDM OEM IBM state sets with possible state values
93 */
94extern const std::map<uint16_t, const std::map<uint8_t, std::string>>
95 populateOemIBMStateMaps{
Pavithra Barithayaa2b964f2021-10-06 07:46:19 -050096 {PLDM_OEM_IBM_VERIFICATION_STATE, SetOemIBMVerStateValues},
Sridevi Rameshdcdcd3b2021-06-15 04:06:49 -050097 {PLDM_OEM_IBM_SYSTEM_POWER_STATE, SetOemIBMSysPowerStatesValues},
98 {PLDM_OEM_IBM_BOOT_STATE, SetOemIBMBootStateValues},
99 {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, SetOemIBMFWUpdateStateValues},
100 };