1*1370Sschwartz /* 2*1370Sschwartz * CDDL HEADER START 3*1370Sschwartz * 4*1370Sschwartz * The contents of this file are subject to the terms of the 5*1370Sschwartz * Common Development and Distribution License (the "License"). 6*1370Sschwartz * You may not use this file except in compliance with the License. 7*1370Sschwartz * 8*1370Sschwartz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*1370Sschwartz * or http://www.opensolaris.org/os/licensing. 10*1370Sschwartz * See the License for the specific language governing permissions 11*1370Sschwartz * and limitations under the License. 12*1370Sschwartz * 13*1370Sschwartz * When distributing Covered Code, include this CDDL HEADER in each 14*1370Sschwartz * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*1370Sschwartz * If applicable, add the following below this CDDL HEADER, with the 16*1370Sschwartz * fields enclosed by brackets "[]" replaced with your own identifying 17*1370Sschwartz * information: Portions Copyright [yyyy] [name of copyright owner] 18*1370Sschwartz * 19*1370Sschwartz * CDDL HEADER END 20*1370Sschwartz */ 21*1370Sschwartz 22*1370Sschwartz /* 23*1370Sschwartz * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24*1370Sschwartz * Use is subject to license terms. 25*1370Sschwartz */ 26*1370Sschwartz 27*1370Sschwartz #ifndef _FPC_H 28*1370Sschwartz #define _FPC_H 29*1370Sschwartz 30*1370Sschwartz #pragma ident "%Z%%M% %I% %E% SMI" 31*1370Sschwartz 32*1370Sschwartz #ifdef __cplusplus 33*1370Sschwartz extern "C" { 34*1370Sschwartz #endif 35*1370Sschwartz 36*1370Sschwartz #define SUCCESS 0 37*1370Sschwartz #define FAILURE -1 38*1370Sschwartz 39*1370Sschwartz #define NUM_LEAVES 2 40*1370Sschwartz 41*1370Sschwartz extern int fpc_debug; 42*1370Sschwartz #define FPC_DBG1 if (fpc_debug >= 1) printf 43*1370Sschwartz #define FPC_DBG2 if (fpc_debug >= 2) printf 44*1370Sschwartz 45*1370Sschwartz /* 46*1370Sschwartz * Defs for fpc-kstat.c. Put'em here for now even though they don't 47*1370Sschwartz * have to do with the lower-level implementation. 48*1370Sschwartz */ 49*1370Sschwartz extern int fpc_kstat_init(dev_info_t *dip); 50*1370Sschwartz extern void fpc_kstat_fini(dev_info_t *dip); 51*1370Sschwartz 52*1370Sschwartz typedef enum fire_perfcnt { 53*1370Sschwartz jbc = 0, 54*1370Sschwartz imu, 55*1370Sschwartz mmu, 56*1370Sschwartz tlu, 57*1370Sschwartz lpu 58*1370Sschwartz } fire_perfcnt_t; 59*1370Sschwartz 60*1370Sschwartz /* Set to the last entry in fire_perfcnt_t. */ 61*1370Sschwartz #define MAX_REG_TYPES ((int)lpu + 1) 62*1370Sschwartz 63*1370Sschwartz #define NUM_JBC_COUNTERS 2 64*1370Sschwartz #define NUM_IMU_COUNTERS 2 65*1370Sschwartz #define NUM_MMU_COUNTERS 2 66*1370Sschwartz #define NUM_TLU_COUNTERS 3 67*1370Sschwartz #define NUM_LPU_COUNTERS 2 68*1370Sschwartz 69*1370Sschwartz /* Sum of all NUM_xxx_COUNTERS above. */ 70*1370Sschwartz #define NUM_TOTAL_COUNTERS 11 71*1370Sschwartz 72*1370Sschwartz /* largest group of counters */ 73*1370Sschwartz #define NUM_MAX_COUNTERS NUM_TLU_COUNTERS 74*1370Sschwartz 75*1370Sschwartz /* Event mask related. */ 76*1370Sschwartz 77*1370Sschwartz /* How much an event for a given PIC is shifted within the event mask. */ 78*1370Sschwartz 79*1370Sschwartz #define PIC0_EVT_SEL_SHIFT 0 80*1370Sschwartz #define PIC1_EVT_SEL_SHIFT 8 81*1370Sschwartz #define PIC2_EVT_SEL_SHIFT 16 82*1370Sschwartz 83*1370Sschwartz /* Width or mask of a single event within an event mask. */ 84*1370Sschwartz 85*1370Sschwartz #define JBC01_EVT_MASK 0xFF 86*1370Sschwartz #define IMU01_EVT_MASK 0xFF 87*1370Sschwartz #define MMU01_EVT_MASK 0xFF 88*1370Sschwartz #define TLU01_EVT_MASK 0xFF 89*1370Sschwartz #define TLU2_EVT_MASK 0x3 90*1370Sschwartz #define LPU12_EVT_MASK 0xFFFF 91*1370Sschwartz 92*1370Sschwartz /* Positioned masks for different event fields within an event mask. */ 93*1370Sschwartz 94*1370Sschwartz #define JBC_PIC0_EVT_MASK ((uint64_t)JBC01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 95*1370Sschwartz #define JBC_PIC1_EVT_MASK ((uint64_t)JBC01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 96*1370Sschwartz #define IMU_PIC0_EVT_MASK ((uint64_t)IMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 97*1370Sschwartz #define IMU_PIC1_EVT_MASK ((uint64_t)IMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 98*1370Sschwartz #define MMU_PIC0_EVT_MASK ((uint64_t)MMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 99*1370Sschwartz #define MMU_PIC1_EVT_MASK ((uint64_t)MMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 100*1370Sschwartz #define TLU_PIC0_EVT_MASK ((uint64_t)TLU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 101*1370Sschwartz #define TLU_PIC1_EVT_MASK ((uint64_t)TLU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 102*1370Sschwartz #define TLU_PIC2_EVT_MASK ((uint64_t)TLU2_EVT_MASK << PIC2_EVT_SEL_SHIFT) 103*1370Sschwartz #define LPU_PIC0_EVT_MASK ((uint64_t)LPU12_EVT_MASK << PIC0_EVT_SEL_SHIFT) 104*1370Sschwartz #define LPU_PIC1_EVT_MASK ((uint64_t)LPU12_EVT_MASK << PIC2_EVT_SEL_SHIFT) 105*1370Sschwartz 106*1370Sschwartz /* 107*1370Sschwartz * Take a dip to define the device... 108*1370Sschwartz * sun4v: can convert dip to a dev_hdl needed for hyp. perf ctr interface. 109*1370Sschwartz * sun4u: can convert dip to an ldi_ident_t I can use for a layered PCItool 110*1370Sschwartz * ioctl. 111*1370Sschwartz * 112*1370Sschwartz * Define which of JBUS, PCIE_A and PCIE_B regs are available. HW partitioning 113*1370Sschwartz * may make some register sets unavailable to certain virtual nodes. 114*1370Sschwartz */ 115*1370Sschwartz 116*1370Sschwartz #define JBUS_REGS_AVAIL 0x1 /* JBUS regs avail */ 117*1370Sschwartz #define PCIE_A_REGS_AVAIL 0x2 118*1370Sschwartz #define PCIE_B_REGS_AVAIL 0x4 119*1370Sschwartz 120*1370Sschwartz extern int fpc_perfcnt_module_init(dev_info_t *dip, int *avail); 121*1370Sschwartz extern int fpc_perfcnt_module_fini(dev_info_t *dip); 122*1370Sschwartz 123*1370Sschwartz /* 124*1370Sschwartz * Program a performance counter. 125*1370Sschwartz * 126*1370Sschwartz * reggroup is which type of counter. 127*1370Sschwartz * counter is the counter number. 128*1370Sschwartz * event is the event to program for that counter. 129*1370Sschwartz */ 130*1370Sschwartz extern int fpc_perfcnt_program(int devnum, fire_perfcnt_t reggroup, 131*1370Sschwartz uint64_t event); 132*1370Sschwartz 133*1370Sschwartz /* 134*1370Sschwartz * Read a performance counter. 135*1370Sschwartz * 136*1370Sschwartz * reggroup is which type of counter. 137*1370Sschwartz * counter is the counter number. 138*1370Sschwartz * event_p returns the event programmed for that counter. 139*1370Sschwartz * value_p returns the counter value. 140*1370Sschwartz */ 141*1370Sschwartz extern int fpc_perfcnt_read(int devnum, fire_perfcnt_t reggroup, 142*1370Sschwartz uint64_t *event_p, uint64_t values[NUM_MAX_COUNTERS]); 143*1370Sschwartz 144*1370Sschwartz /* 145*1370Sschwartz * Definitions of the different types of events. 146*1370Sschwartz * 147*1370Sschwartz * The first part says which registers these events are for. 148*1370Sschwartz * For example, JBC01 means the JBC performance counters 0 and 1 149*1370Sschwartz */ 150*1370Sschwartz 151*1370Sschwartz #define JBC01_S_EVT_NONE "event_none" 152*1370Sschwartz #define JBC01_S_EVT_CLK "clock_cyc" 153*1370Sschwartz #define JBC01_S_EVT_IDLE "idle_cyc" 154*1370Sschwartz #define JBC01_S_EVT_FIRE "fire_jbus_cyc" 155*1370Sschwartz #define JBC01_S_EVT_READ_LATENCY "rd_latency_cyc" 156*1370Sschwartz #define JBC01_S_EVT_READ_SAMPLE "rd_sample" 157*1370Sschwartz #define JBC01_S_EVT_I2C_PIO "pios_i2c" 158*1370Sschwartz #define JBC01_S_EVT_EBUS_PIO "pios_ebus" 159*1370Sschwartz #define JBC01_S_EVT_RINGA_PIO "pios_ringA" 160*1370Sschwartz #define JBC01_S_EVT_RINGB_PIO "pios_ringB" 161*1370Sschwartz #define JBC01_S_EVT_PARTIAL_WR "partial_wr" 162*1370Sschwartz #define JBC01_S_EVT_TOTAL_WR "total_wr" 163*1370Sschwartz #define JBC01_S_EVT_TOTAL_RD "total_rd" 164*1370Sschwartz #define JBC01_S_EVT_AOKOFF "aokoff" 165*1370Sschwartz #define JBC01_S_EVT_DOKOFF "dokoff" 166*1370Sschwartz #define JBC01_S_EVT_DAOKOFF "daokoff" 167*1370Sschwartz #define JBC01_S_EVT_JBUS_COH_XACT "jbus_coh_tr" 168*1370Sschwartz #define JBC01_S_EVT_FIRE_COH_XACT "fire_coh_tr" 169*1370Sschwartz #define JBC01_S_EVT_JBUS_NCOH_XACT "jbus_ncoh_tr" 170*1370Sschwartz #define JBC01_S_EVT_FGN_IO_HIT "fgn_pio_hit" 171*1370Sschwartz #define JBC01_S_EVT_FIRE_WBS "fire_wb" 172*1370Sschwartz #define JBC01_S_EVT_PCIEA_PIO_WR "pio_wr_pcieA" 173*1370Sschwartz #define JBC01_S_EVT_PCIEA_PIO_RD "pio_rd_pcieA" 174*1370Sschwartz #define JBC01_S_EVT_PCIEB_PIO_WR "pio_wr_pcieB" 175*1370Sschwartz #define JBC01_S_EVT_PCIEB_PIO_RD "pio_rd_pcieB" 176*1370Sschwartz 177*1370Sschwartz #define JBC01_EVT_NONE 0x0 178*1370Sschwartz #define JBC01_EVT_CLK 0x1 179*1370Sschwartz #define JBC01_EVT_IDLE 0x2 180*1370Sschwartz #define JBC01_EVT_FIRE 0x3 181*1370Sschwartz #define JBC01_EVT_READ_LATENCY 0x4 182*1370Sschwartz #define JBC01_EVT_READ_SAMPLE 0x5 183*1370Sschwartz #define JBC01_EVT_I2C_PIO 0x6 184*1370Sschwartz #define JBC01_EVT_EBUS_PIO 0x7 185*1370Sschwartz #define JBC01_EVT_RINGA_PIO 0x8 186*1370Sschwartz #define JBC01_EVT_RINGB_PIO 0x9 187*1370Sschwartz #define JBC01_EVT_PARTIAL_WR 0xA 188*1370Sschwartz #define JBC01_EVT_TOTAL_WR 0xB 189*1370Sschwartz #define JBC01_EVT_TOTAL_RD 0xC 190*1370Sschwartz #define JBC01_EVT_AOKOFF 0xD 191*1370Sschwartz #define JBC01_EVT_DOKOFF 0xE 192*1370Sschwartz #define JBC01_EVT_DAOKOFF 0xF 193*1370Sschwartz #define JBC01_EVT_JBUS_COH_XACT 0x10 194*1370Sschwartz #define JBC01_EVT_FIRE_COH_XACT 0x11 195*1370Sschwartz #define JBC01_EVT_JBUS_NCOH_XACT 0x12 196*1370Sschwartz #define JBC01_EVT_FGN_IO_HIT 0x13 197*1370Sschwartz #define JBC01_EVT_FIRE_WBS 0x14 198*1370Sschwartz #define JBC01_EVT_PCIEA_PIO_WR 0x15 199*1370Sschwartz #define JBC01_EVT_PCIEA_PIO_RD 0x16 200*1370Sschwartz #define JBC01_EVT_PCIEB_PIO_WR 0x17 201*1370Sschwartz #define JBC01_EVT_PCIEB_PIO_RD 0x18 202*1370Sschwartz 203*1370Sschwartz #define IMU01_S_EVT_NONE "event_none" 204*1370Sschwartz #define IMU01_S_EVT_CLK "clock_cyc" 205*1370Sschwartz #define IMU01_S_EVT_MONDO "mondos_iss" 206*1370Sschwartz #define IMU01_S_EVT_MSI "msi_iss" 207*1370Sschwartz #define IMU01_S_EVT_MONDO_NAKS "mondos_nacks" 208*1370Sschwartz #define IMU01_S_EVT_EQ_WR "eq_wr" 209*1370Sschwartz #define IMU01_S_EVT_EQ_MONDO "eq_mondos" 210*1370Sschwartz 211*1370Sschwartz #define IMU01_EVT_NONE 0x0 212*1370Sschwartz #define IMU01_EVT_CLK 0x1 213*1370Sschwartz #define IMU01_EVT_MONDO 0x2 214*1370Sschwartz #define IMU01_EVT_MSI 0x3 215*1370Sschwartz #define IMU01_EVT_MONDO_NAKS 0x4 216*1370Sschwartz #define IMU01_EVT_EQ_WR 0x5 217*1370Sschwartz #define IMU01_EVT_EQ_MONDO 0x6 218*1370Sschwartz 219*1370Sschwartz #define MMU01_S_EVT_NONE "event_none" 220*1370Sschwartz #define MMU01_S_EVT_CLK "clock_cyc" 221*1370Sschwartz #define MMU01_S_EVT_TRANS "total_transl" 222*1370Sschwartz #define MMU01_S_EVT_STALL "total_stall_cyc" 223*1370Sschwartz #define MMU01_S_EVT_TRANSL_MISS "total_tranl_miss" 224*1370Sschwartz #define MMU01_S_EVT_TBLWLK_STALL "tblwlk_stall_cyc" 225*1370Sschwartz #define MMU01_S_EVT_BYPASS_TRANSL "bypass_transl" 226*1370Sschwartz #define MMU01_S_EVT_TRANSL_TRANSL "transl_transl" 227*1370Sschwartz #define MMU01_S_EVT_FLOW_CNTL_STALL "flow_stall_cyc" 228*1370Sschwartz #define MMU01_S_EVT_FLUSH_CACHE_ENT "cache_entr_flush" 229*1370Sschwartz 230*1370Sschwartz #define MMU01_EVT_NONE 0x0 231*1370Sschwartz #define MMU01_EVT_CLK 0x1 232*1370Sschwartz #define MMU01_EVT_TRANSL 0x2 233*1370Sschwartz #define MMU01_EVT_STALL 0x3 234*1370Sschwartz #define MMU01_EVT_TRANSL_MISS 0x4 235*1370Sschwartz #define MMU01_EVT_TBLWLK_STALL 0x5 236*1370Sschwartz #define MMU01_EVT_BYPASS_TRANSL 0x6 237*1370Sschwartz #define MMU01_EVT_TRANSL_TRANSL 0x7 238*1370Sschwartz #define MMU01_EVT_FLOW_CNTL_STALL 0x8 239*1370Sschwartz #define MMU01_EVT_FLUSH_CACHE_ENT 0x9 240*1370Sschwartz 241*1370Sschwartz #define TLU01_S_EVT_NONE "event_none" 242*1370Sschwartz #define TLU01_S_EVT_CLK "clock_cyc" 243*1370Sschwartz #define TLU01_S_EVT_COMPL "compl_recvd" 244*1370Sschwartz #define TLU01_S_EVT_XMT_POST_CR_UNAV "post_cr_unav_cyc" 245*1370Sschwartz #define TLU01_S_EVT_XMT_NPOST_CR_UNAV "npost_cr_unav_cyc" 246*1370Sschwartz #define TLU01_S_EVT_XMT_CMPL_CR_UNAV "compl_cr_unav_cyc" 247*1370Sschwartz #define TLU01_S_EVT_XMT_ANY_CR_UNAV "trans_cr_any_unav" 248*1370Sschwartz #define TLU01_S_EVT_RETRY_CR_UNAV "retry_cr_unav" 249*1370Sschwartz #define TLU01_S_EVT_MEMRD_PKT_RCVD "recvd_mem_rd_pkt" 250*1370Sschwartz #define TLU01_S_EVT_MEMWR_PKT_RCVD "recvd_mem_wr_pkt" 251*1370Sschwartz #define TLU01_S_EVT_RCV_CR_THRESH "recv_cr_thresh" 252*1370Sschwartz #define TLU01_S_EVT_RCV_PST_HDR_CR_EXH "recv_hdr_cr_exh_cyc" 253*1370Sschwartz #define TLU01_S_EVT_RCV_PST_DA_CR_MPS "recv_post_da_cr_mps" 254*1370Sschwartz #define TLU01_S_EVT_RCV_NPST_HDR_CR_EXH "recv_npost_hdr_cr_exh" 255*1370Sschwartz #define TLU01_S_EVT_RCVR_L0S "recvr_l0s_cyc" 256*1370Sschwartz #define TLU01_S_EVT_RCVR_L0S_TRANS "recvr_l0s_trans" 257*1370Sschwartz #define TLU01_S_EVT_XMTR_L0S "trans_l0s_cyc" 258*1370Sschwartz #define TLU01_S_EVT_XMTR_L0S_TRANS "trans_l0s_trans" 259*1370Sschwartz #define TLU01_S_EVT_RCVR_ERR "recvr_err" 260*1370Sschwartz #define TLU01_S_EVT_BAD_TLP "bad_tlp" 261*1370Sschwartz #define TLU01_S_EVT_BAD_DLLP "bad_dllp" 262*1370Sschwartz #define TLU01_S_EVT_REPLAY_ROLLOVER "replay_rollover" 263*1370Sschwartz #define TLU01_S_EVT_REPLAY_TMO "replay_to" 264*1370Sschwartz 265*1370Sschwartz #define TLU01_EVT_NONE 0x0 266*1370Sschwartz #define TLU01_EVT_CLK 0x1 267*1370Sschwartz #define TLU01_EVT_COMPL 0x2 268*1370Sschwartz #define TLU01_EVT_XMT_POST_CR_UNAV 0x10 269*1370Sschwartz #define TLU01_EVT_XMT_NPOST_CR_UNAV 0x11 270*1370Sschwartz #define TLU01_EVT_XMT_CMPL_CR_UNAV 0x12 271*1370Sschwartz #define TLU01_EVT_XMT_ANY_CR_UNAV 0x13 272*1370Sschwartz #define TLU01_EVT_RETRY_CR_UNAV 0x14 273*1370Sschwartz #define TLU01_EVT_MEMRD_PKT_RCVD 0x20 274*1370Sschwartz #define TLU01_EVT_MEMWR_PKT_RCVD 0x21 275*1370Sschwartz #define TLU01_EVT_RCV_CR_THRESH 0x22 276*1370Sschwartz #define TLU01_EVT_RCV_PST_HDR_CR_EXH 0x23 277*1370Sschwartz #define TLU01_EVT_RCV_PST_DA_CR_MPS 0x24 278*1370Sschwartz #define TLU01_EVT_RCV_NPST_HDR_CR_EXH 0x25 279*1370Sschwartz #define TLU01_EVT_RCVR_L0S 0x30 280*1370Sschwartz #define TLU01_EVT_RCVR_L0S_TRANS 0x31 281*1370Sschwartz #define TLU01_EVT_XMTR_L0S 0x32 282*1370Sschwartz #define TLU01_EVT_XMTR_L0S_TRANS 0x33 283*1370Sschwartz #define TLU01_EVT_RCVR_ERR 0x40 284*1370Sschwartz #define TLU01_EVT_BAD_TLP 0x42 285*1370Sschwartz #define TLU01_EVT_BAD_DLLP 0x43 286*1370Sschwartz #define TLU01_EVT_REPLAY_ROLLOVER 0x44 287*1370Sschwartz #define TLU01_EVT_REPLAY_TMO 0x47 288*1370Sschwartz 289*1370Sschwartz #define TLU2_S_EVT_NONE "event_none" 290*1370Sschwartz #define TLU2_S_EVT_NON_POST_COMPL_TIME "non_post_compl" 291*1370Sschwartz #define TLU2_S_EVT_XMT_DATA_WORD "trans_data_words" 292*1370Sschwartz #define TLU2_S_EVT_RCVD_DATA_WORD "recvd_data_words" 293*1370Sschwartz 294*1370Sschwartz #define TLU2_EVT_NONE 0x0 295*1370Sschwartz #define TLU2_EVT_NON_POST_COMPL_TIME 0x1 296*1370Sschwartz #define TLU2_EVT_XMT_DATA_WORD 0x2 297*1370Sschwartz #define TLU2_EVT_RCVD_DATA_WORD 0x3 298*1370Sschwartz 299*1370Sschwartz #define LPU12_S_EVT_RESET "event_reset" 300*1370Sschwartz #define LPU12_S_EVT_TLP_RCVD "tlp_recvd" 301*1370Sschwartz #define LPU12_S_EVT_DLLP_RCVD "dllp_recvd" 302*1370Sschwartz #define LPU12_S_EVT_ACK_DLLP_RCVD "ack_dllp_recvd" 303*1370Sschwartz #define LPU12_S_EVT_NAK_DLLP_RCVD "nak_dllp_recvd" 304*1370Sschwartz #define LPU12_S_EVT_RETRY_START "retries_started" 305*1370Sschwartz #define LPU12_S_EVT_REPLAY_TMO "replay_timer_to" 306*1370Sschwartz #define LPU12_S_EVT_ACK_NAK_LAT_TMO "ack_nak_lat_to" 307*1370Sschwartz #define LPU12_S_EVT_BAD_DLLP "bad_dllp" 308*1370Sschwartz #define LPU12_S_EVT_BAD_TLP "bad_tlp" 309*1370Sschwartz #define LPU12_S_EVT_NAK_DLLP_SENT "nak_dllp_sent" 310*1370Sschwartz #define LPU12_S_EVT_ACK_DLLP_SENT "ack_dllp_sent" 311*1370Sschwartz #define LPU12_S_EVT_RCVR_ERROR "recvr_err" 312*1370Sschwartz #define LPU12_S_EVT_LTSSM_RECOV_ENTRY "ltssm_recov_entr" 313*1370Sschwartz #define LPU12_S_EVT_REPLAY_IN_PROG "replay_prog_cyc" 314*1370Sschwartz #define LPU12_S_EVT_TLP_XMT_IN_PROG "tlp_trans_prog_cyc" 315*1370Sschwartz #define LPU12_S_EVT_CLK_CYC "clock_cyc" 316*1370Sschwartz #define LPU12_S_EVT_TLP_DLLP_XMT_PROG "tlp_dllp_trans_cyc" 317*1370Sschwartz #define LPU12_S_EVT_TLP_DLLP_RCV_PROG "tlp_dllp_recv_cyc" 318*1370Sschwartz 319*1370Sschwartz #define LPU12_EVT_RESET 0x0 320*1370Sschwartz #define LPU12_EVT_TLP_RCVD 0x1 321*1370Sschwartz #define LPU12_EVT_DLLP_RCVD 0x2 322*1370Sschwartz #define LPU12_EVT_ACK_DLLP_RCVD 0x3 323*1370Sschwartz #define LPU12_EVT_NAK_DLLP_RCVD 0x4 324*1370Sschwartz #define LPU12_EVT_RETRY_START 0x5 325*1370Sschwartz #define LPU12_EVT_REPLAY_TMO 0x6 326*1370Sschwartz #define LPU12_EVT_ACK_NAK_LAT_TMO 0x7 327*1370Sschwartz #define LPU12_EVT_BAD_DLLP 0x8 328*1370Sschwartz #define LPU12_EVT_BAD_TLP 0x9 329*1370Sschwartz #define LPU12_EVT_NAK_DLLP_SENT 0xA 330*1370Sschwartz #define LPU12_EVT_ACK_DLLP_SENT 0xB 331*1370Sschwartz #define LPU12_EVT_RCVR_ERROR 0xC 332*1370Sschwartz #define LPU12_EVT_LTSSM_RECOV_ENTRY 0xD 333*1370Sschwartz #define LPU12_EVT_REPLAY_IN_PROG 0xE 334*1370Sschwartz #define LPU12_EVT_TLP_XMT_IN_PROG 0xF 335*1370Sschwartz #define LPU12_EVT_CLK_CYC 0x10 336*1370Sschwartz #define LPU12_EVT_TLP_DLLP_XMT_PROG 0x11 337*1370Sschwartz #define LPU12_EVT_TLP_DLLP_RCV_PROG 0x12 338*1370Sschwartz 339*1370Sschwartz #define COMMON_S_CLEAR_PIC "clear_pic" 340*1370Sschwartz 341*1370Sschwartz #ifdef __cplusplus 342*1370Sschwartz } 343*1370Sschwartz #endif 344*1370Sschwartz 345*1370Sschwartz #endif /* _FPC_H */ 346