summaryrefslogtreecommitdiffstats
path: root/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/pgpe_panic_codes.h
blob: 7703cd35a120c5a1f28afec4766b706a0e49b49c (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
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/pgpe_panic_codes.h $ */
/*                                                                        */
/* OpenPOWER HCODE Project                                                */
/*                                                                        */
/* COPYRIGHT 2016,2019                                                    */
/* [+] International Business Machines Corp.                              */
/*                                                                        */
/*                                                                        */
/* Licensed under the Apache License, Version 2.0 (the "License");        */
/* you may not use this file except in compliance with the License.       */
/* You may obtain a copy of the License at                                */
/*                                                                        */
/*     http://www.apache.org/licenses/LICENSE-2.0                         */
/*                                                                        */
/* Unless required by applicable law or agreed to in writing, software    */
/* distributed under the License is distributed on an "AS IS" BASIS,      */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        */
/* implied. See the License for the specific language governing           */
/* permissions and limitations under the License.                         */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
#ifndef __PGPE_PANIC_CODES_H__
#define __PGPE_PANIC_CODES_H__

// On PPE42, PANIC codes are stored as part of the trap word instruction.
// tw 31, RA, RB  Where RA and RB would used to encode the trap code.
// There are 16 valid gprs on PP42, so this gives 256 possible trap codes.
// The trap code is defined as a two byte code defined as 0xYYZZ where YY
// is encoded into the RA field and ZZ is incoded into the RB field
// YY and ZZ are limited to the values:
//   00,01,02,03,04,05,06,07,08,09,0a,0d,1c,1d,1e,1f (valid gpr ids)
//
// To add a new panic code, select an unused values and rename it.
// This file contains all the valid values that can be used. Using a
// panic code not in this list will result in a compiler/assembler error.

// Note:  this file is included in the pk_panic_codes.h within a typedef
// of a enum structure.

// The following are reserved for instance specific use.

// Setup, Common Error or AVS BUS
PGPE_UIH_EIMR_STACK_UNDERFLOW           = 0x1c00,
PGPE_UIH_EIMR_STACK_OVERFLOW            = 0x1c01,
PGPE_UIH_PHANTOM_INTERRUPT              = 0x1c02,
PGPE_AVS_READ_ONGOING_FLAG_TIMEOUT      = 0x1c03,
PGPE_AVS_WRITE_ONGOING_FLAG_TIMEOUT     = 0x1c04,
PGPE_AVS_INIT_DRIVE_IDLE_FRAME          = 0x1c05,
PGPE_AVS_INIT_DRIVE_READ                = 0x1c06,
PGPE_AVS_RESYNC_ERROR                   = 0x1c07,
//_UNUSED_1c08                          = 0x1c08,
PGPE_CME_FAULT                          = 0x1c09,
PGPE_PVREF_ERROR                        = 0x1c0a,
PGPE_OCC_FIR_IRQ                        = 0x1c0d,
PGPE_XSTOP_GPE2                         = 0x1c1c,
PGPE_GPE3_ERROR                         = 0x1c1d,
PGPE_BAD_DD_LEVEL                       = 0x1c1e,
PGPE_OCC_HB_LOSS                        = 0x1c1f,

PGPE_CME_UNEXPECTED_REGISTRATION        = 0x1d00, //Communication
PGPE_CME_UNEXPECTED_DB_ACK              = 0x1d01,
PGPE_OCC_IPC_ACK_BAD_RC                 = 0x1d02,
PGPE_SGPE_IPC_ACK_BAD_RC                = 0x1d03,
PGPE_SGPE_SUSPEND_STOP_BAD_ACK          = 0x1d04,
PGPE_SGPE_CTRL_STOP_UPDT_BAD_ACK        = 0x1d05,
PGPE_CME_DB_ERROR_ACK                   = 0x1d06,
PGPE_RESCLK_IDX_SEARCH_FAIL             = 0x1d07,
PGPE_SGPE_IPC_SEND_FAIL                 = 0x1d08,
//_UNUSED_1d09                          = 0x1d09,
//_UNUSED_1d0a                          = 0x1d0a,
//_UNUSED_1d0d                          = 0x1d0d,
//_UNUSED_1d1c                          = 0x1d1c,
//_UNUSED_1d1d                          = 0x1d1d,
//_UNUSED_1d1e                          = 0x1d1e,
//_UNUSED_1d1f                          = 0x1d1f,

PGPE_PM_SUSPEND_REQ_WHILE_STOPPED       = 0x1e00,
PGPE_SAFE_MODE_REQ_WHILE_STOPPED        = 0x1e01,
PGPE_NULL_VFRT_POINTER                  = 0x1e02,
PGPE_INVALID_PMCR_OWNER                 = 0x1e03,
PGPE_VOLTAGE_OUT_OF_BOUNDS              = 0x1e04,
PGPE_SET_PMCR_TRAP_INJECT               = 0x1e05,
PGPE_DROOP_AND_CORE_THROTTLE_ENABLED    = 0x1e06,
PGPE_INVALID_FREQ_UPDT                  = 0x1e07,
PGPE_PMAX_RCV_GREATER_THAN_PSAFE        = 0x1e08,
PGPE_UVOLT_FREQ_LOSS_GREATER_THAN_MAX_DROOP   = 0x1e09,
PGPE_UVOLT_AVG_FREQ_GREATER_THAN_TARGET = 0x1e0a,
//_UNUSED_1e0d                          = 0x1e0d,
//_UNUSED_1e1c                          = 0x1e1c,
//_UNUSED_1e1d                          = 0x1e1d,
//_UNUSED_1e1e                          = 0x1e1e,
//_UNUSED_1e1f                          = 0x1e1f,

//_UNUSED_1f00                          = 0x1f00,
//_UNUSED_1f01                          = 0x1f01,
//_UNUSED_1f02                          = 0x1f02,
//_UNUSED_1f03                          = 0x1f03,
//_UNUSED_1f04                          = 0x1f04,
//_UNUSED_1f05                          = 0x1f05,
//_UNUSED_1f06                          = 0x1f06,
//_UNUSED_1f07                          = 0x1f07,
//_UNUSED_1f08                          = 0x1f08,
//_UNUSED_1f09                          = 0x1f09,
//_UNUSED_1f0a                          = 0x1f0a,
//_UNUSED_1f0d                          = 0x1f0d,
//_UNUSED_1f1c                          = 0x1f1c,
//_UNUSED_1f1d                          = 0x1f1d,
//_UNUSED_1f1e                          = 0x1f1e,
//_UNUSED_1f1f                          = 0x1f1f


#endif
OpenPOWER on IntegriCloud