summaryrefslogtreecommitdiffstats
path: root/src/include/usr/diag/prdf/common/prdf_service_codes.H
blob: 95dc720a5e4a2f8ae2126f6dad72432e590f0371 (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
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: src/include/usr/diag/prdf/common/prdf_service_codes.H $       */
/*                                                                        */
/* IBM CONFIDENTIAL                                                       */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 2003,2013              */
/*                                                                        */
/* p1                                                                     */
/*                                                                        */
/* Object Code Only (OCO) source materials                                */
/* Licensed Internal Code Source Materials                                */
/* IBM HostBoot Licensed Internal Code                                    */
/*                                                                        */
/* The source code for this program is not published or otherwise         */
/* divested of its trade secrets, irrespective of what has been           */
/* deposited with the U.S. Copyright Office.                              */
/*                                                                        */
/* Origin: 30                                                             */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */

#ifndef prdf_services_codes_H
#define prdf_services_codes_H

/**
 * @file prdf_service_codes.H
 * @brief File contains file IDs and reason codes
 */

#ifdef __HOSTBOOT_MODULE

#include <hbotcompid.H>

#else

#include <fips_comp_id.H>

#endif

namespace PRDF
{

/**
 *  @brief Enum specifying "Module ids" for PRDF_CODE_FAIL SRCs.
 *         Each module Id corresponds to a particular
 *         method in a class or an individual function.
 */
enum ModuleId
{
    PRDF_MAIN                     = 0x01,
    PRDF_HOM_SCOM                 = 0x03,
    PRDF_HOM_SCAN                 = 0x04,
    PRDF_SDBUG_INIT               = 0x05,
    PRDF_LOADCHIP                 = 0x06,
    PRDF_RULECHIP                 = 0x07,
    PRDF_EXTENSIBLEDOMAIN         = 0x08,
    PRDF_ERRLSMARTPTR             = 0x09,
    PRDF_ASSERT                   = 0x0A,
    PRDF_RAS_SERVICES             = 0x0B,
    PRDF_RESTORE_DRAM_REPAIR      = 0x0C,
};

/******************************************************************************/
// NOTE!!! PLEASE READ THIS IF YOU ADD A NEW REASON CODE:
//  Each new Reason code must have Service Tags (for the Serviceablity tools).
//  The tags need to be in a .C file - the tools won't pick up if in a .H file.
//  In theory the tags should be right in with the code that generates the
//  Reason Code. For prdf this is not possible in most instances.
//  prdfRasServices.C is the default place holder for the Service tags.
//  So the Service tags should be either added to a prdf .C file for a unique
//  instance, or in ras services.
/******************************************************************************/

/**
 *  @brief Enum specifying Reason Codes (Refcodes), range 0xE501 to 0xE5FF
 */
enum ReasonCode
{
    PRDF_FIRST_REASONCODE                   = PRDF_COMP_ID | 0x01,

    // PRD thermal error log FIXME: may be depricated in P8
    PRDF_THERMAL_FAIL                       = PRDF_COMP_ID | 0x03,

    // Note: Ranges from 0x04 through 0x3f are reserved for when callouts are
    //       all hardware only.

    PRDF_DETECTED_FAIL_HARDWARE             = PRDF_COMP_ID | 0x04,

    // Note: Ranges from 0x40 through 0x4f are reserved for when callouts are
    //       hardware, but also include software or second level support.

    PRDF_DETECTED_FAIL_HARDWARE_PROBABLE    = PRDF_COMP_ID | 0x40,

    // Note: Ranges from 0x50 through 0x5f are reserved for when at least one
    //       callout is software High, and also include some hardware callouts.

    PRDF_DETECTED_FAIL_SOFTWARE_PROBABLE    = PRDF_COMP_ID | 0x50,

    // Note: Ranges from 0x60 through 0x6f are reserved for when callouts are
    //       all software and second level support only.

    PRDF_DETECTED_FAIL_SOFTWARE             = PRDF_COMP_ID | 0x60,
    PRDF_UNSUPPORTED_SCAN_WRITE             = PRDF_COMP_ID | 0x61,

    // Note: Ranges from 0x70 through 0x7f are currently reserved (unused).

    // Note: Ranges from 0x80 through 0xff are reserved for PRD software
    //       callouts. When PRD detects a code problem in PRD itself or as a
    //       result of interaction with another FSP component.

    // Generic PRD analysis internal code error. Usually acompanied with a
    // module ID.
    PRDF_CODE_FAIL                          = PRDF_COMP_ID | 0x80,
    // Error from an ecmdDataBuffer
    PRDF_ECMD_DATA_BUFFER_FAIL              = PRDF_COMP_ID | 0x81,

    // general code for user error or unsupported configuration
    PRDF_INVALID_CONFIG                     = PRDF_COMP_ID | 0x82,

    PRDF_LAST_REASONCODE                    = PRDF_COMP_ID | 0xFF,
};

} // end namespace PRDF

#endif // prdf_services_codes_H
OpenPOWER on IntegriCloud