0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 #ifndef __SCU_EVENT_CODES_HEADER__
0057 #define __SCU_EVENT_CODES_HEADER__
0058
0059
0060
0061
0062
0063
0064
0065 #define SCU_EVENT_TYPE_CODE_SHIFT 24
0066 #define SCU_EVENT_TYPE_CODE_MASK 0x0F000000
0067
0068 #define SCU_EVENT_SPECIFIC_CODE_SHIFT 18
0069 #define SCU_EVENT_SPECIFIC_CODE_MASK 0x00FC0000
0070
0071 #define SCU_EVENT_CODE_MASK \
0072 (SCU_EVENT_TYPE_CODE_MASK | SCU_EVENT_SPECIFIC_CODE_MASK)
0073
0074
0075
0076
0077
0078
0079 #define SCU_EVENT_TYPE(type) \
0080 ((u32)(type) << SCU_EVENT_TYPE_CODE_SHIFT)
0081
0082
0083
0084
0085
0086
0087 #define SCU_EVENT_SPECIFIC(code) \
0088 ((u32)(code) << SCU_EVENT_SPECIFIC_CODE_SHIFT)
0089
0090
0091
0092
0093
0094
0095
0096 #define SCU_EVENT_MESSAGE(type, code) \
0097 ((type) | SCU_EVENT_SPECIFIC(code))
0098
0099
0100
0101
0102
0103
0104 #define SCU_EVENT_TYPE_SMU_COMMAND_ERROR SCU_EVENT_TYPE(0x08)
0105 #define SCU_EVENT_TYPE_SMU_PCQ_ERROR SCU_EVENT_TYPE(0x09)
0106 #define SCU_EVENT_TYPE_SMU_ERROR SCU_EVENT_TYPE(0x00)
0107 #define SCU_EVENT_TYPE_TRANSPORT_ERROR SCU_EVENT_TYPE(0x01)
0108 #define SCU_EVENT_TYPE_BROADCAST_CHANGE SCU_EVENT_TYPE(0x02)
0109 #define SCU_EVENT_TYPE_OSSP_EVENT SCU_EVENT_TYPE(0x03)
0110 #define SCU_EVENT_TYPE_FATAL_MEMORY_ERROR SCU_EVENT_TYPE(0x0F)
0111 #define SCU_EVENT_TYPE_RNC_SUSPEND_TX SCU_EVENT_TYPE(0x04)
0112 #define SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX SCU_EVENT_TYPE(0x05)
0113 #define SCU_EVENT_TYPE_RNC_OPS_MISC SCU_EVENT_TYPE(0x06)
0114 #define SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT SCU_EVENT_TYPE(0x07)
0115 #define SCU_EVENT_TYPE_ERR_CNT_EVENT SCU_EVENT_TYPE(0x0A)
0116
0117
0118
0119
0120
0121
0122 #define SCU_EVENT_SPECIFIER_DRIVER_SUSPEND 0x20
0123 #define SCU_EVENT_SPECIFIER_RNC_RELEASE 0x00
0124
0125
0126
0127
0128
0129
0130 #define SCU_EVENT_INVALID_CONTEXT_COMMAND \
0131 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_COMMAND_ERROR, 0x00)
0132
0133
0134
0135
0136
0137
0138 #define SCU_EVENT_UNCORRECTABLE_PCQ_ERROR \
0139 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_PCQ_ERROR, 0x00)
0140
0141
0142
0143
0144
0145
0146 #define SCU_EVENT_UNCORRECTABLE_REGISTER_WRITE \
0147 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x02)
0148 #define SCU_EVENT_UNCORRECTABLE_REGISTER_READ \
0149 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x03)
0150 #define SCU_EVENT_PCIE_INTERFACE_ERROR \
0151 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x04)
0152 #define SCU_EVENT_FUNCTION_LEVEL_RESET \
0153 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x05)
0154
0155
0156
0157
0158
0159
0160 #define SCU_EVENT_ACK_NAK_TIMEOUT_ERROR \
0161 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_TRANSPORT_ERROR, 0x00)
0162
0163
0164
0165
0166
0167
0168 #define SCU_EVENT_BROADCAST_CHANGE \
0169 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x01)
0170 #define SCU_EVENT_BROADCAST_RESERVED0 \
0171 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x02)
0172 #define SCU_EVENT_BROADCAST_RESERVED1 \
0173 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x03)
0174 #define SCU_EVENT_BROADCAST_SES \
0175 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x04)
0176 #define SCU_EVENT_BROADCAST_EXPANDER \
0177 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x05)
0178 #define SCU_EVENT_BROADCAST_AEN \
0179 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x06)
0180 #define SCU_EVENT_BROADCAST_RESERVED3 \
0181 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x07)
0182 #define SCU_EVENT_BROADCAST_RESERVED4 \
0183 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x08)
0184 #define SCU_EVENT_PE_SUSPENDED \
0185 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x09)
0186
0187
0188
0189
0190
0191
0192 #define SCU_EVENT_PORT_SELECTOR_DETECTED \
0193 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x10)
0194 #define SCU_EVENT_SENT_PORT_SELECTION \
0195 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x11)
0196 #define SCU_EVENT_HARD_RESET_TRANSMITTED \
0197 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x12)
0198 #define SCU_EVENT_HARD_RESET_RECEIVED \
0199 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x13)
0200 #define SCU_EVENT_RECEIVED_IDENTIFY_TIMEOUT \
0201 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x15)
0202 #define SCU_EVENT_LINK_FAILURE \
0203 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x16)
0204 #define SCU_EVENT_SATA_SPINUP_HOLD \
0205 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x17)
0206 #define SCU_EVENT_SAS_15_SSC \
0207 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x18)
0208 #define SCU_EVENT_SAS_15 \
0209 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x19)
0210 #define SCU_EVENT_SAS_30_SSC \
0211 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1A)
0212 #define SCU_EVENT_SAS_30 \
0213 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1B)
0214 #define SCU_EVENT_SAS_60_SSC \
0215 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1C)
0216 #define SCU_EVENT_SAS_60 \
0217 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1D)
0218 #define SCU_EVENT_SATA_15_SSC \
0219 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1E)
0220 #define SCU_EVENT_SATA_15 \
0221 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1F)
0222 #define SCU_EVENT_SATA_30_SSC \
0223 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x20)
0224 #define SCU_EVENT_SATA_30 \
0225 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x21)
0226 #define SCU_EVENT_SATA_60_SSC \
0227 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x22)
0228 #define SCU_EVENT_SATA_60 \
0229 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x23)
0230 #define SCU_EVENT_SAS_PHY_DETECTED \
0231 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x24)
0232 #define SCU_EVENT_SATA_PHY_DETECTED \
0233 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x25)
0234
0235
0236
0237
0238
0239
0240 #define SCU_EVENT_TSC_RNSC_UNCORRECTABLE_ERROR \
0241 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR, 0x00)
0242 #define SCU_EVENT_TC_RNC_UNCORRECTABLE_ERROR \
0243 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR, 0x01)
0244 #define SCU_EVENT_ZPT_UNCORRECTABLE_ERROR \
0245 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR, 0x02)
0246
0247
0248
0249
0250
0251
0252 #define SCU_EVENT_TL_RNC_SUSPEND_TX \
0253 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x00)
0254 #define SCU_EVENT_TL_RNC_SUSPEND_TX_RX \
0255 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x00)
0256 #define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX \
0257 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x20)
0258 #define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX_RX \
0259 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x20)
0260
0261
0262
0263
0264
0265
0266 #define SCU_EVENT_POST_RCN_RELEASE \
0267 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, SCU_EVENT_SPECIFIER_RNC_RELEASE)
0268 #define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_ENABLE \
0269 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x01)
0270 #define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_DISABLE \
0271 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x02)
0272 #define SCU_EVENT_POST_RNC_COMPLETE \
0273 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x03)
0274 #define SCU_EVENT_POST_RNC_INVALIDATE_COMPLETE \
0275 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x04)
0276
0277
0278
0279
0280
0281
0282 #define SCU_EVENT_RX_CREDIT_BLOCKED_RECEIVED \
0283 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x00)
0284 #define SCU_EVENT_TX_DONE_CREDIT_TIMEOUT \
0285 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x01)
0286 #define SCU_EVENT_RX_DONE_CREDIT_TIMEOUT \
0287 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, 0x02)
0288
0289
0290
0291
0292
0293
0294 #define scu_get_event_type(event_code) \
0295 ((event_code) & SCU_EVENT_TYPE_CODE_MASK)
0296
0297
0298
0299
0300
0301
0302 #define scu_get_event_specifier(event_code) \
0303 ((event_code) & SCU_EVENT_SPECIFIC_CODE_MASK)
0304
0305
0306
0307
0308
0309
0310
0311 #define scu_get_event_code(event_code) \
0312 ((event_code) & SCU_EVENT_CODE_MASK)
0313
0314
0315
0316
0317
0318
0319
0320 #define SCU_EVENT_SMP_RESPONSE_NO_PE \
0321 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x00)
0322 #define SCU_EVENT_SPECIFIC_SMP_RESPONSE_NO_PE \
0323 scu_get_event_specifier(SCU_EVENT_SMP_RESPONSE_NO_PE)
0324
0325 #define SCU_EVENT_TASK_TIMEOUT \
0326 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x01)
0327 #define SCU_EVENT_SPECIFIC_TASK_TIMEOUT \
0328 scu_get_event_specifier(SCU_EVENT_TASK_TIMEOUT)
0329
0330 #define SCU_EVENT_IT_NEXUS_TIMEOUT \
0331 SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x02)
0332 #define SCU_EVENT_SPECIFIC_IT_NEXUS_TIMEOUT \
0333 scu_get_event_specifier(SCU_EVENT_IT_NEXUS_TIMEOUT)
0334
0335
0336 #endif