1 #pragma once
2 
3 namespace openpower
4 {
5 namespace pels
6 {
7 
8 /**
9  * @brief Useful component IDs
10  */
11 enum class ComponentID
12 {
13     phosphorLogging = 0x2000
14 };
15 
16 /**
17  * @brief PEL section IDs
18  */
19 enum class SectionID
20 {
21     privateHeader = 0x5048,      // 'PH'
22     userHeader = 0x5548,         // 'UH'
23     primarySRC = 0x5053,         // 'PS'
24     secondarySRC = 0x5353,       // 'SS'
25     extendedUserHeader = 0x4548, // 'EH'
26     failingMTMS = 0x4D54,        // 'MT'
27     dumpLocation = 0x4448,       // 'DH'
28     firmwareError = 0x5357,      // 'SW'
29     impactedPart = 0x4C50,       // 'LP'
30     logicalResource = 0x4C52,    // 'LR'
31     hmcID = 0x484D,              // 'HM'
32     epow = 0x4550,               // 'EP'
33     ioEvent = 0x4945,            // 'IE'
34     mfgInfo = 0x4D49,            // 'MI'
35     callhome = 0x4348,           // 'CH'
36     userData = 0x5544,           // 'UD'
37     envInfo = 0x4549,            // 'EI'
38     extUserData = 0x4544         // 'ED'
39 };
40 
41 /**
42  * @brief Useful SRC types
43  */
44 enum class SRCType
45 {
46     bmcError = 0xBD,
47     powerError = 0x11
48 };
49 
50 /**
51  * @brief Creator IDs
52  */
53 enum class CreatorID
54 {
55     fsp = 'E',
56     hmc = 'C',
57     hostboot = 'B',
58     ioDrawer = 'M',
59     occ = 'T',
60     openBMC = 'O',
61     partFW = 'L',
62     phyp = 'H',
63     powerControl = 'W',
64     powerNV = 'P',
65     sapphire = 'K',
66     slic = 'S',
67 };
68 
69 /**
70  * @brief Useful event scope values
71  */
72 enum class EventScope
73 {
74     entirePlatform = 0x03
75 };
76 
77 /**
78  * @brief Useful event type values
79  */
80 enum class EventType
81 {
82     notApplicable = 0x00,
83     miscInformational = 0x01,
84     tracing = 0x02
85 };
86 
87 /**
88  * @brief The major types of severity values, based on the
89  *        the left nibble of the severity value.
90  */
91 enum class SeverityType
92 {
93     nonError = 0x00,
94     recovered = 0x10,
95     predictive = 0x20,
96     unrecoverable = 0x40,
97     critical = 0x50,
98     diagnostic = 0x60,
99     symptom = 0x70
100 };
101 
102 /**
103  * @brief The Action Flags values with the bit
104  *        numbering needed by std::bitset.
105  *
106  * Not an enum class so that casting isn't needed
107  * by the bitset operations.
108  */
109 enum ActionFlagsBits
110 {
111     serviceActionFlagBit = 15,       // 0x8000
112     hiddenFlagBit = 14,              // 0x4000
113     reportFlagBit = 13,              // 0x2000
114     dontReportToHostFlagBit = 12,    // 0x1000
115     callHomeFlagBit = 11,            // 0x0800
116     isolationIncompleteFlagBit = 10, // 0x0400
117     spCallHomeFlagBit = 8,           // 0x0100
118     osSWErrorBit = 7,                // 0x0080
119     osHWErrorBit = 6                 // 0x0040
120 };
121 
122 /**
123  * @brief The PEL transmission states
124  */
125 enum class TransmissionState
126 {
127     newPEL = 0,
128     badPEL = 1,
129     sent = 2,
130     acked = 3
131 };
132 
133 /**
134  * @brief Callout priority values
135  */
136 enum class CalloutPriority
137 {
138     high = 'H',
139     medium = 'M',
140     mediumGroupA = 'A',
141     mediumGroupB = 'B',
142     mediumGroupC = 'C',
143     low = 'L'
144 };
145 
146 } // namespace pels
147 } // namespace openpower
148