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 #ifndef __SCU_EVENT_CODES_HEADER__
  57 #define __SCU_EVENT_CODES_HEADER__
  58 
  59 
  60 
  61 
  62 
  63 
  64 
  65 #define SCU_EVENT_TYPE_CODE_SHIFT      24
  66 #define SCU_EVENT_TYPE_CODE_MASK       0x0F000000
  67 
  68 #define SCU_EVENT_SPECIFIC_CODE_SHIFT  18
  69 #define SCU_EVENT_SPECIFIC_CODE_MASK   0x00FC0000
  70 
  71 #define SCU_EVENT_CODE_MASK \
  72         (SCU_EVENT_TYPE_CODE_MASK | SCU_EVENT_SPECIFIC_CODE_MASK)
  73 
  74 
  75 
  76 
  77 
  78 
  79 #define SCU_EVENT_TYPE(type) \
  80         ((u32)(type) << SCU_EVENT_TYPE_CODE_SHIFT)
  81 
  82 
  83 
  84 
  85 
  86 
  87 #define SCU_EVENT_SPECIFIC(code) \
  88         ((u32)(code) << SCU_EVENT_SPECIFIC_CODE_SHIFT)
  89 
  90 
  91 
  92 
  93 
  94 
  95 
  96 #define SCU_EVENT_MESSAGE(type, code) \
  97         ((type) | SCU_EVENT_SPECIFIC(code))
  98 
  99 
 100 
 101 
 102 
 103 
 104 #define SCU_EVENT_TYPE_SMU_COMMAND_ERROR  SCU_EVENT_TYPE(0x08)
 105 #define SCU_EVENT_TYPE_SMU_PCQ_ERROR      SCU_EVENT_TYPE(0x09)
 106 #define SCU_EVENT_TYPE_SMU_ERROR          SCU_EVENT_TYPE(0x00)
 107 #define SCU_EVENT_TYPE_TRANSPORT_ERROR    SCU_EVENT_TYPE(0x01)
 108 #define SCU_EVENT_TYPE_BROADCAST_CHANGE   SCU_EVENT_TYPE(0x02)
 109 #define SCU_EVENT_TYPE_OSSP_EVENT         SCU_EVENT_TYPE(0x03)
 110 #define SCU_EVENT_TYPE_FATAL_MEMORY_ERROR SCU_EVENT_TYPE(0x0F)
 111 #define SCU_EVENT_TYPE_RNC_SUSPEND_TX     SCU_EVENT_TYPE(0x04)
 112 #define SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX  SCU_EVENT_TYPE(0x05)
 113 #define SCU_EVENT_TYPE_RNC_OPS_MISC       SCU_EVENT_TYPE(0x06)
 114 #define SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT SCU_EVENT_TYPE(0x07)
 115 #define SCU_EVENT_TYPE_ERR_CNT_EVENT      SCU_EVENT_TYPE(0x0A)
 116 
 117 
 118 
 119 
 120 
 121 
 122 #define SCU_EVENT_SPECIFIER_DRIVER_SUSPEND 0x20
 123 #define SCU_EVENT_SPECIFIER_RNC_RELEASE    0x00
 124 
 125 
 126 
 127 
 128 
 129 
 130 #define SCU_EVENT_INVALID_CONTEXT_COMMAND \
 131         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_COMMAND_ERROR, 0x00)
 132 
 133 
 134 
 135 
 136 
 137 
 138 #define SCU_EVENT_UNCORRECTABLE_PCQ_ERROR \
 139         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_PCQ_ERROR, 0x00)
 140 
 141 
 142 
 143 
 144 
 145 
 146 #define SCU_EVENT_UNCORRECTABLE_REGISTER_WRITE \
 147         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x02)
 148 #define SCU_EVENT_UNCORRECTABLE_REGISTER_READ \
 149         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x03)
 150 #define SCU_EVENT_PCIE_INTERFACE_ERROR \
 151         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x04)
 152 #define SCU_EVENT_FUNCTION_LEVEL_RESET \
 153         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x05)
 154 
 155 
 156 
 157 
 158 
 159 
 160 #define SCU_EVENT_ACK_NAK_TIMEOUT_ERROR \
 161         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_TRANSPORT_ERROR, 0x00)
 162 
 163 
 164 
 165 
 166 
 167 
 168 #define SCU_EVENT_BROADCAST_CHANGE \
 169         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x01)
 170 #define SCU_EVENT_BROADCAST_RESERVED0 \
 171         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x02)
 172 #define SCU_EVENT_BROADCAST_RESERVED1 \
 173         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x03)
 174 #define SCU_EVENT_BROADCAST_SES \
 175         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x04)
 176 #define SCU_EVENT_BROADCAST_EXPANDER \
 177         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x05)
 178 #define SCU_EVENT_BROADCAST_AEN \
 179         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x06)
 180 #define SCU_EVENT_BROADCAST_RESERVED3 \
 181         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x07)
 182 #define SCU_EVENT_BROADCAST_RESERVED4 \
 183         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x08)
 184 #define SCU_EVENT_PE_SUSPENDED \
 185         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x09)
 186 
 187 
 188 
 189 
 190 
 191 
 192 #define SCU_EVENT_PORT_SELECTOR_DETECTED \
 193         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x10)
 194 #define SCU_EVENT_SENT_PORT_SELECTION \
 195         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x11)
 196 #define SCU_EVENT_HARD_RESET_TRANSMITTED \
 197         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x12)
 198 #define SCU_EVENT_HARD_RESET_RECEIVED \
 199         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x13)
 200 #define SCU_EVENT_RECEIVED_IDENTIFY_TIMEOUT \
 201         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x15)
 202 #define SCU_EVENT_LINK_FAILURE \
 203         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x16)
 204 #define SCU_EVENT_SATA_SPINUP_HOLD \
 205         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x17)
 206 #define SCU_EVENT_SAS_15_SSC \
 207         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x18)
 208 #define SCU_EVENT_SAS_15 \
 209         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x19)
 210 #define SCU_EVENT_SAS_30_SSC \
 211         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1A)
 212 #define SCU_EVENT_SAS_30 \
 213         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1B)
 214 #define SCU_EVENT_SAS_60_SSC \
 215         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1C)
 216 #define SCU_EVENT_SAS_60 \
 217         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1D)
 218 #define SCU_EVENT_SATA_15_SSC \
 219         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1E)
 220 #define SCU_EVENT_SATA_15 \
 221         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1F)
 222 #define SCU_EVENT_SATA_30_SSC \
 223         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x20)
 224 #define SCU_EVENT_SATA_30 \
 225         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x21)
 226 #define SCU_EVENT_SATA_60_SSC \
 227         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x22)
 228 #define SCU_EVENT_SATA_60 \
 229         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x23)
 230 #define SCU_EVENT_SAS_PHY_DETECTED \
 231         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x24)
 232 #define SCU_EVENT_SATA_PHY_DETECTED \
 233         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x25)
 234 
 235 
 236 
 237 
 238 
 239 
 240 #define SCU_EVENT_TSC_RNSC_UNCORRECTABLE_ERROR \
 241         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR,  0x00)
 242 #define SCU_EVENT_TC_RNC_UNCORRECTABLE_ERROR \
 243         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR,  0x01)
 244 #define SCU_EVENT_ZPT_UNCORRECTABLE_ERROR \
 245         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR,  0x02)
 246 
 247 
 248 
 249 
 250 
 251 
 252 #define SCU_EVENT_TL_RNC_SUSPEND_TX \
 253         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x00)
 254 #define SCU_EVENT_TL_RNC_SUSPEND_TX_RX \
 255         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x00)
 256 #define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX \
 257         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x20)
 258 #define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX_RX \
 259         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x20)
 260 
 261 
 262 
 263 
 264 
 265 
 266 #define SCU_EVENT_POST_RCN_RELEASE \
 267         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, SCU_EVENT_SPECIFIER_RNC_RELEASE)
 268 #define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_ENABLE \
 269         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x01)
 270 #define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_DISABLE \
 271         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x02)
 272 #define SCU_EVENT_POST_RNC_COMPLETE \
 273         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x03)
 274 #define SCU_EVENT_POST_RNC_INVALIDATE_COMPLETE \
 275         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x04)
 276 
 277 
 278 
 279 
 280 
 281 
 282 #define SCU_EVENT_RX_CREDIT_BLOCKED_RECEIVED \
 283         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x00)
 284 #define SCU_EVENT_TX_DONE_CREDIT_TIMEOUT \
 285         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x01)
 286 #define SCU_EVENT_RX_DONE_CREDIT_TIMEOUT \
 287         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x02)
 288 
 289 
 290 
 291 
 292 
 293 
 294 #define scu_get_event_type(event_code) \
 295         ((event_code) & SCU_EVENT_TYPE_CODE_MASK)
 296 
 297 
 298 
 299 
 300 
 301 
 302 #define scu_get_event_specifier(event_code) \
 303         ((event_code) & SCU_EVENT_SPECIFIC_CODE_MASK)
 304 
 305 
 306 
 307 
 308 
 309 
 310 
 311 #define scu_get_event_code(event_code) \
 312         ((event_code) & SCU_EVENT_CODE_MASK)
 313 
 314 
 315 
 316 
 317 
 318 
 319 
 320 #define SCU_EVENT_SMP_RESPONSE_NO_PE \
 321         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x00)
 322 #define SCU_EVENT_SPECIFIC_SMP_RESPONSE_NO_PE \
 323         scu_get_event_specifier(SCU_EVENT_SMP_RESPONSE_NO_PE)
 324 
 325 #define SCU_EVENT_TASK_TIMEOUT \
 326         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x01)
 327 #define SCU_EVENT_SPECIFIC_TASK_TIMEOUT \
 328         scu_get_event_specifier(SCU_EVENT_TASK_TIMEOUT)
 329 
 330 #define SCU_EVENT_IT_NEXUS_TIMEOUT \
 331         SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x02)
 332 #define SCU_EVENT_SPECIFIC_IT_NEXUS_TIMEOUT \
 333         scu_get_event_specifier(SCU_EVENT_IT_NEXUS_TIMEOUT)
 334 
 335 
 336 #endif