summaryrefslogtreecommitdiffstats
path: root/extensions/openpower-pels/pel_types.hpp
blob: 9a33ccf49e1c46a531f3c981f8b28f3ef7d8a805 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#pragma once

namespace openpower
{
namespace pels
{

/**
 * @brief Useful component IDs
 */
enum class ComponentID
{
    phosphorLogging = 0x2000
};

/**
 * @brief PEL section IDs
 */
enum class SectionID
{
    privateHeader = 0x5048,      // 'PH'
    userHeader = 0x5548,         // 'UH'
    primarySRC = 0x5053,         // 'PS'
    secondarySRC = 0x5353,       // 'SS'
    extendedUserHeader = 0x4548, // 'EH'
    failingMTMS = 0x4D54,        // 'MT'
    dumpLocation = 0x4448,       // 'DH'
    firmwareError = 0x5357,      // 'SW'
    impactedPart = 0x4C50,       // 'LP'
    logicalResource = 0x4C52,    // 'LR'
    hmcID = 0x484D,              // 'HM'
    epow = 0x4550,               // 'EP'
    ioEvent = 0x4945,            // 'IE'
    mfgInfo = 0x4D49,            // 'MI'
    callhome = 0x4348,           // 'CH'
    userData = 0x5544,           // 'UD'
    envInfo = 0x4549,            // 'EI'
    extUserData = 0x4544         // 'ED'
};

/**
 * @brief Useful SRC types
 */
enum class SRCType
{
    bmcError = 0xBD,
    powerError = 0x11
};

/**
 * @brief Creator IDs
 */
enum class CreatorID
{
    fsp = 'E',
    hmc = 'C',
    hostboot = 'B',
    ioDrawer = 'M',
    occ = 'T',
    openBMC = 'O',
    partFW = 'L',
    phyp = 'H',
    powerControl = 'W',
    powerNV = 'P',
    sapphire = 'K',
    slic = 'S',
};

/**
 * @brief Useful event scope values
 */
enum class EventScope
{
    entirePlatform = 0x03
};

/**
 * @brief Useful event type values
 */
enum class EventType
{
    notApplicable = 0x00,
    miscInformational = 0x01,
    tracing = 0x02
};

/**
 * @brief The major types of severity values, based on the
 *        the left nibble of the severity value.
 */
enum class SeverityType
{
    nonError = 0x00,
    recovered = 0x10,
    predictive = 0x20,
    unrecoverable = 0x40,
    critical = 0x50,
    diagnostic = 0x60,
    symptom = 0x70
};

/**
 * @brief The Action Flags values with the bit
 *        numbering needed by std::bitset.
 *
 * Not an enum class so that casting isn't needed
 * by the bitset operations.
 */
enum ActionFlagsBits
{
    serviceActionFlagBit = 15,       // 0x8000
    hiddenFlagBit = 14,              // 0x4000
    reportFlagBit = 13,              // 0x2000
    dontReportToHostFlagBit = 12,    // 0x1000
    callHomeFlagBit = 11,            // 0x0800
    isolationIncompleteFlagBit = 10, // 0x0400
    spCallHomeFlagBit = 8,           // 0x0100
    osSWErrorBit = 7,                // 0x0080
    osHWErrorBit = 6                 // 0x0040
};

/**
 * @brief The PEL transmission states
 */
enum class TransmissionState
{
    newPEL = 0,
    badPEL = 1,
    sent = 2,
    acked = 3
};

} // namespace pels
} // namespace openpower
OpenPOWER on IntegriCloud