4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
33 /* error packet definitions */
35 /* Block Definitions */
36 #define BLOCK_RSVD 0x0
37 #define BLOCK_HOSTBUS 0x1
39 #define BLOCK_INTR 0x3
40 #define BLOCK_PCIE 0x4
41 #define BLOCK_PORT 0x5
42 #define BLOCK_UNKNOWN 0xe
44 /* Op definitions for HOSTBUS */
45 #define OP_RESERVED 0x0
48 #define OP_UNKNOWN 0xe
50 /* Op definitions for MMU */
51 #define OP_RESERVED 0x0
55 #define OP_UNKNOWN 0xe
57 /* Op definitions for INTR */
58 #define OP_RESERVED 0x0
62 #define OP_PCIEMSG 0x4
64 #define OP_UNKNOWN 0xe
66 /* Op definitions for PORT */
67 #define OP_RESERVED 0x0
71 #define OP_UNKNOWN 0xe
73 /* Phase definitons */
74 #define PH_RESERVED 0x0
77 #define PH_UNKNOWN 0xe
80 /* Phase definitions for PORT/Link */
84 /* Condition definitions for any major Block/Op/Phase */
85 #define CND_RESERVED 0x0
91 #define CND_UNKNOWN 0xe
94 /* Additional condition definitions for INTR Block MSIQ phase */
97 /* Additional condition definitions for MMU|INTR Block ADDR phase */
100 /* Additional condition definitions for DATA phase */
103 /* Additional condition definitions for Port Link phase */
108 /* Dir definitions for HOSTBUS & MMU */
109 #define DIR_RESERVED 0x0
111 #define DIR_WRITE 0x2
113 #define DIR_INGRESS 0x4
114 #define DIR_EGRESS 0x5
116 #define DIR_UNKNOWN 0xe
119 #define PX_FM_RC_UNRECOG "fire.epkt"
120 #define EPKT_SYSINO "sysino"
121 #define EPKT_EHDL "ehdl"
122 #define EPKT_STICK "stick"
123 #define EPKT_DW0 "dw0"
124 #define EPKT_DW1 "dw1"
125 #define EPKT_DW2 "dw2"
126 #define EPKT_DW3 "dw3"
127 #define EPKT_DW4 "dw4"
128 #define EPKT_RC_DESCR "rc_descr"
129 #define EPKT_PEC_DESCR "pec_descr"
132 typedef struct root_complex
{
137 #if defined(_BIT_FIELDS_LTOH)
138 uint32_t S
: 1, /* Also the "Q" flag */
153 #elif defined(_BIT_FIELDS_HTOL)
168 S
: 1; /* Also the "Q" flag */
170 #error "bit field not defined"
173 uint32_t size
; /* Also the EQ Num */
176 uint64_t reserved
; /* Contains Port */
179 typedef struct pec_block_err
{
198 uint16_t pci_err_status
;
199 uint16_t pcie_err_status
;
200 uint32_t ce_reg_status
;
201 uint32_t ue_reg_status
;
203 uint32_t err_src_reg
;
204 uint32_t root_err_status
;
212 #endif /* _SYS_PX_ERR_H */