1 /* 2 * CDDL HEADER START 3 * 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. 7 * 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. 12 * 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] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _SYS_FM_CPU_AMD_H 28 #define _SYS_FM_CPU_AMD_H 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 /* 35 * AMD model-specific ereports. These supplement the generic ereport 36 * members specified in GMCA.h. 37 */ 38 39 /* Ereport class subcategory for AMD processors */ 40 #define FM_EREPORT_CPU_AMD "amd" 41 42 /* 43 * Ereport payload definitions 44 */ 45 #define FM_EREPORT_PAYLOAD_NAME_SYND "syndrome" 46 #define FM_EREPORT_PAYLOAD_NAME_SYND_TYPE "syndrome-type" 47 #define FM_EREPORT_PAYLOAD_NAME_RESOURCE "resource" 48 49 #define FM_EREPORT_PAYLOAD_FLAG_SYND 0x0000000000000001 50 #define FM_EREPORT_PAYLOAD_FLAG_SYND_TYPE 0x0000000000000002 51 #define FM_EREPORT_PAYLOAD_FLAG_RESOURCE 0x0000000000000004 52 #define FM_EREPORT_PAYLOAD_FLAG_STACK 0x0000000000000008 53 54 /* 55 * Model specific payload for each ereport type is specified using the 56 * following groupings of the individual flag values above. 57 */ 58 #define FM_EREPORT_PAYLOAD_FLAGS_COMMON 0x0ULL /* empty */ 59 60 #define FM_EREPORT_PAYLOAD_FLAGS_SYND \ 61 (FM_EREPORT_PAYLOAD_FLAG_SYND | FM_EREPORT_PAYLOAD_FLAG_SYND_TYPE) 62 #define FM_EREPORT_PAYLOAD_FLAGS_RESOURCE \ 63 (FM_EREPORT_PAYLOAD_FLAG_RESOURCE) 64 #define FM_EREPORT_PAYLOAD_FLAGS_NB \ 65 FM_EREPORT_PAYLOAD_FLAG_STACK 66 67 #define FM_EREPORT_PAYLOAD_FLAGS_1(f1) \ 68 (FM_EREPORT_PAYLOAD_FLAGS_COMMON | FM_EREPORT_PAYLOAD_FLAGS_##f1) 69 #define FM_EREPORT_PAYLOAD_FLAGS_2(f1, f2) \ 70 (FM_EREPORT_PAYLOAD_FLAGS_COMMON | FM_EREPORT_PAYLOAD_FLAGS_##f1 | \ 71 FM_EREPORT_PAYLOAD_FLAGS_##f2) 72 73 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_INF_SYS_ECC1 \ 74 FM_EREPORT_PAYLOAD_FLAGS_2(SYND, RESOURCE) 75 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_INF_L2_ECC1 \ 76 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 77 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_INF_SYS_ECCM \ 78 FM_EREPORT_PAYLOAD_FLAGS_2(SYND, RESOURCE) 79 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_INF_L2_ECCM \ 80 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 81 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_DATA_ECC1 \ 82 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 83 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_DATA_ECC1_UC \ 84 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 85 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_DATA_ECCM \ 86 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 87 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_TAG_PAR \ 88 FM_EREPORT_PAYLOAD_FLAGS_COMMON 89 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_STAG_PAR \ 90 FM_EREPORT_PAYLOAD_FLAGS_COMMON 91 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_L1TLB_PAR \ 92 FM_EREPORT_PAYLOAD_FLAGS_COMMON 93 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_DC_L2TLB_PAR \ 94 FM_EREPORT_PAYLOAD_FLAGS_COMMON 95 96 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_INF_SYS_ECC1 \ 97 FM_EREPORT_PAYLOAD_FLAGS_COMMON 98 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_INF_L2_ECC1 \ 99 FM_EREPORT_PAYLOAD_FLAGS_COMMON 100 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_INF_SYS_ECCM \ 101 FM_EREPORT_PAYLOAD_FLAGS_COMMON 102 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_INF_L2_ECCM \ 103 FM_EREPORT_PAYLOAD_FLAGS_COMMON 104 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_DATA_PAR \ 105 FM_EREPORT_PAYLOAD_FLAGS_COMMON 106 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_TAG_PAR \ 107 FM_EREPORT_PAYLOAD_FLAGS_COMMON 108 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_STAG_PAR \ 109 FM_EREPORT_PAYLOAD_FLAGS_COMMON 110 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_L1TLB_PAR \ 111 FM_EREPORT_PAYLOAD_FLAGS_COMMON 112 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_L2TLB_PAR \ 113 FM_EREPORT_PAYLOAD_FLAGS_COMMON 114 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_IC_RDDE \ 115 FM_EREPORT_PAYLOAD_FLAGS_COMMON 116 117 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_L2D_ECC1 \ 118 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 119 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_L2D_ECCM \ 120 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 121 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_L2T_PAR \ 122 FM_EREPORT_PAYLOAD_FLAGS_COMMON 123 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_L2T_ECC1 \ 124 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 125 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_L2T_ECCM \ 126 FM_EREPORT_PAYLOAD_FLAGS_1(SYND) 127 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_S_RDE \ 128 FM_EREPORT_PAYLOAD_FLAGS_COMMON 129 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_S_ECC1 \ 130 FM_EREPORT_PAYLOAD_FLAGS_2(SYND, RESOURCE) 131 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_BU_S_ECCM \ 132 FM_EREPORT_PAYLOAD_FLAGS_2(SYND, RESOURCE) 133 134 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_LS_S_RDE \ 135 FM_EREPORT_PAYLOAD_FLAGS_COMMON 136 137 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_MEM_CE \ 138 FM_EREPORT_PAYLOAD_FLAGS_2(SYND, RESOURCE) 139 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_MEM_UE \ 140 FM_EREPORT_PAYLOAD_FLAGS_2(SYND, RESOURCE) 141 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_HT_CRC \ 142 FM_EREPORT_PAYLOAD_FLAGS_COMMON 143 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_HT_SYNC \ 144 FM_EREPORT_PAYLOAD_FLAGS_COMMON 145 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_MA \ 146 FM_EREPORT_PAYLOAD_FLAGS_1(NB) 147 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_TA \ 148 FM_EREPORT_PAYLOAD_FLAGS_1(NB) 149 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_GART_WALK \ 150 FM_EREPORT_PAYLOAD_FLAGS_COMMON 151 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_RMW \ 152 FM_EREPORT_PAYLOAD_FLAGS_COMMON 153 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_WDOG \ 154 FM_EREPORT_PAYLOAD_FLAGS_COMMON 155 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_NB_DRAMADDR_PAR \ 156 FM_EREPORT_PAYLOAD_FLAGS_COMMON 157 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_MC_TESTFAIL \ 158 FM_EREPORT_PAYLOAD_FLAG_RESOURCE 159 160 #define FM_EREPORT_PAYLOAD_FLAGS_CPU_AMD_UNKNOWN \ 161 FM_EREPORT_PAYLOAD_FLAGS_COMMON 162 163 #define FM_EREPORT_CPU_AMD_DC_INF_SYS_ECC1 "dc.inf_sys_ecc1" 164 #define FM_EREPORT_CPU_AMD_DC_INF_SYS_ECCM "dc.inf_sys_eccm" 165 #define FM_EREPORT_CPU_AMD_DC_INF_L2_ECC1 "dc.inf_l2_ecc1" 166 #define FM_EREPORT_CPU_AMD_DC_INF_L2_ECCM "dc.inf_l2_eccm" 167 #define FM_EREPORT_CPU_AMD_DC_DATA_ECC1 "dc.data_ecc1" 168 #define FM_EREPORT_CPU_AMD_DC_DATA_ECC1_UC "dc.data_ecc1_uc" 169 #define FM_EREPORT_CPU_AMD_DC_DATA_ECCM "dc.data_eccm" 170 #define FM_EREPORT_CPU_AMD_DC_TAG_PAR "dc.tag_par" 171 #define FM_EREPORT_CPU_AMD_DC_STAG_PAR "dc.stag_par" 172 #define FM_EREPORT_CPU_AMD_DC_L1TLB_PAR "dc.l1tlb_par" 173 #define FM_EREPORT_CPU_AMD_DC_L2TLB_PAR "dc.l2tlb_par" 174 175 #define FM_EREPORT_CPU_AMD_IC_INF_SYS_ECC1 "ic.inf_sys_ecc1" 176 #define FM_EREPORT_CPU_AMD_IC_INF_SYS_ECCM "ic.inf_sys_eccm" 177 #define FM_EREPORT_CPU_AMD_IC_INF_L2_ECC1 "ic.inf_l2_ecc1" 178 #define FM_EREPORT_CPU_AMD_IC_INF_L2_ECCM "ic.inf_l2_eccm" 179 #define FM_EREPORT_CPU_AMD_IC_DATA_PAR "ic.data_par" 180 #define FM_EREPORT_CPU_AMD_IC_TAG_PAR "ic.tag_par" 181 #define FM_EREPORT_CPU_AMD_IC_STAG_PAR "ic.stag_par" 182 #define FM_EREPORT_CPU_AMD_IC_L1TLB_PAR "ic.l1tlb_par" 183 #define FM_EREPORT_CPU_AMD_IC_L2TLB_PAR "ic.l2tlb_par" 184 #define FM_EREPORT_CPU_AMD_IC_RDDE "ic.rdde" 185 186 #define FM_EREPORT_CPU_AMD_BU_L2D_ECC1 "bu.l2d_ecc1" 187 #define FM_EREPORT_CPU_AMD_BU_L2D_ECCM "bu.l2d_eccm" 188 #define FM_EREPORT_CPU_AMD_BU_L2T_PAR "bu.l2t_par" 189 #define FM_EREPORT_CPU_AMD_BU_L2T_ECC1 "bu.l2t_ecc1" 190 #define FM_EREPORT_CPU_AMD_BU_L2T_ECCM "bu.l2t_eccm" 191 #define FM_EREPORT_CPU_AMD_BU_S_RDE "bu.s_rde" 192 #define FM_EREPORT_CPU_AMD_BU_S_ECC1 "bu.s_ecc1" 193 #define FM_EREPORT_CPU_AMD_BU_S_ECCM "bu.s_eccm" 194 195 #define FM_EREPORT_CPU_AMD_LS_S_RDE "ls.s_rde" 196 197 #define FM_EREPORT_CPU_AMD_NB_MEM_CE "nb.mem_ce" 198 #define FM_EREPORT_CPU_AMD_NB_MEM_UE "nb.mem_ue" 199 #define FM_EREPORT_CPU_AMD_NB_HT_CRC "nb.ht_crc" 200 #define FM_EREPORT_CPU_AMD_NB_HT_SYNC "nb.ht_sync" 201 #define FM_EREPORT_CPU_AMD_NB_MA "nb.ma" 202 #define FM_EREPORT_CPU_AMD_NB_TA "nb.ta" 203 #define FM_EREPORT_CPU_AMD_NB_GART_WALK "nb.gart_walk" 204 #define FM_EREPORT_CPU_AMD_NB_RMW "nb.rmw" 205 #define FM_EREPORT_CPU_AMD_NB_WDOG "nb.wdog" 206 #define FM_EREPORT_CPU_AMD_NB_DRAMADDR_PAR "nb.dramaddr_par" 207 208 #define FM_EREPORT_CPU_AMD_MC_TESTFAIL "mc.cs_testfail" 209 210 #define FM_EREPORT_CPU_AMD_UNKNOWN "unknown" 211 212 #ifdef __cplusplus 213 } 214 #endif 215 216 #endif /* _SYS_FM_CPU_AMD_H */ 217