brintos

brintos / linux-shallow public Read only

0
0
Text · 10.9 KiB · 36a945a Raw
337 lines · c
1/*2 * This file is provided under a dual BSD/GPLv2 license.  When using or3 * redistributing this file, you may do so under either license.4 *5 * GPL LICENSE SUMMARY6 *7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.8 *9 * This program is free software; you can redistribute it and/or modify10 * it under the terms of version 2 of the GNU General Public License as11 * published by the Free Software Foundation.12 *13 * This program is distributed in the hope that it will be useful, but14 * WITHOUT ANY WARRANTY; without even the implied warranty of15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU16 * General Public License for more details.17 *18 * You should have received a copy of the GNU General Public License19 * along with this program; if not, write to the Free Software20 * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.21 * The full GNU General Public License is included in this distribution22 * in the file called LICENSE.GPL.23 *24 * BSD LICENSE25 *26 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.27 * All rights reserved.28 *29 * Redistribution and use in source and binary forms, with or without30 * modification, are permitted provided that the following conditions31 * are met:32 *33 *   * Redistributions of source code must retain the above copyright34 *     notice, this list of conditions and the following disclaimer.35 *   * Redistributions in binary form must reproduce the above copyright36 *     notice, this list of conditions and the following disclaimer in37 *     the documentation and/or other materials provided with the38 *     distribution.39 *   * Neither the name of Intel Corporation nor the names of its40 *     contributors may be used to endorse or promote products derived41 *     from this software without specific prior written permission.42 *43 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS44 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT45 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR46 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT47 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,48 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT49 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,50 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY51 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT52 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE53 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.54 */55 56#ifndef __SCU_EVENT_CODES_HEADER__57#define __SCU_EVENT_CODES_HEADER__58 59/**60 * This file contains the constants and macros for the SCU event codes.61 *62 *63 */64 65#define SCU_EVENT_TYPE_CODE_SHIFT      2466#define SCU_EVENT_TYPE_CODE_MASK       0x0F00000067 68#define SCU_EVENT_SPECIFIC_CODE_SHIFT  1869#define SCU_EVENT_SPECIFIC_CODE_MASK   0x00FC000070 71#define SCU_EVENT_CODE_MASK \72	(SCU_EVENT_TYPE_CODE_MASK | SCU_EVENT_SPECIFIC_CODE_MASK)73 74/**75 * SCU_EVENT_TYPE() -76 *77 * This macro constructs an SCU event type from the type value.78 */79#define SCU_EVENT_TYPE(type) \80	((u32)(type) << SCU_EVENT_TYPE_CODE_SHIFT)81 82/**83 * SCU_EVENT_SPECIFIC() -84 *85 * This macro constructs an SCU event specifier from the code value.86 */87#define SCU_EVENT_SPECIFIC(code) \88	((u32)(code) << SCU_EVENT_SPECIFIC_CODE_SHIFT)89 90/**91 * SCU_EVENT_MESSAGE() -92 *93 * This macro constructs a combines an SCU event type and SCU event specifier94 * from the type and code values.95 */96#define SCU_EVENT_MESSAGE(type, code) \97	((type) | SCU_EVENT_SPECIFIC(code))98 99/**100 * SCU_EVENT_TYPE() -101 *102 * SCU_EVENT_TYPES103 */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 * SCU_EVENT_SPECIFIERS121 */122#define SCU_EVENT_SPECIFIER_DRIVER_SUSPEND 0x20123#define SCU_EVENT_SPECIFIER_RNC_RELEASE    0x00124 125/**126 *127 *128 * SMU_COMMAND_EVENTS129 */130#define SCU_EVENT_INVALID_CONTEXT_COMMAND \131	SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_COMMAND_ERROR, 0x00)132 133/**134 *135 *136 * SMU_PCQ_EVENTS137 */138#define SCU_EVENT_UNCORRECTABLE_PCQ_ERROR \139	SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_PCQ_ERROR, 0x00)140 141/**142 *143 *144 * SMU_EVENTS145 */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 * TRANSPORT_LEVEL_ERRORS159 */160#define SCU_EVENT_ACK_NAK_TIMEOUT_ERROR	\161	SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_TRANSPORT_ERROR, 0x00)162 163/**164 *165 *166 * BROADCAST_CHANGE_EVENTS167 */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 * OSSP_EVENTS191 */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 * FATAL_INTERNAL_MEMORY_ERROR_EVENTS239 */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 * REMOTE_NODE_SUSPEND_EVENTS251 */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 * REMOTE_NODE_MISC_EVENTS265 */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 * ERROR_COUNT_EVENT281 */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 * scu_get_event_type() -291 *292 * This macro returns the SCU event type from the event code.293 */294#define scu_get_event_type(event_code) \295	((event_code) & SCU_EVENT_TYPE_CODE_MASK)296 297/**298 * scu_get_event_specifier() -299 *300 * This macro returns the SCU event specifier from the event code.301 */302#define scu_get_event_specifier(event_code) \303	((event_code) & SCU_EVENT_SPECIFIC_CODE_MASK)304 305/**306 * scu_get_event_code() -307 *308 * This macro returns the combined SCU event type and SCU event specifier from309 * the event code.310 */311#define scu_get_event_code(event_code) \312	((event_code) & SCU_EVENT_CODE_MASK)313 314 315/**316 *317 *318 * PTS_SCHEDULE_EVENT319 */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 /* __SCU_EVENT_CODES_HEADER__ */337