1110e73f9Sschwartz /* 2110e73f9Sschwartz * CDDL HEADER START 3110e73f9Sschwartz * 4110e73f9Sschwartz * The contents of this file are subject to the terms of the 5110e73f9Sschwartz * Common Development and Distribution License (the "License"). 6110e73f9Sschwartz * You may not use this file except in compliance with the License. 7110e73f9Sschwartz * 8110e73f9Sschwartz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9110e73f9Sschwartz * or http://www.opensolaris.org/os/licensing. 10110e73f9Sschwartz * See the License for the specific language governing permissions 11110e73f9Sschwartz * and limitations under the License. 12110e73f9Sschwartz * 13110e73f9Sschwartz * When distributing Covered Code, include this CDDL HEADER in each 14110e73f9Sschwartz * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15110e73f9Sschwartz * If applicable, add the following below this CDDL HEADER, with the 16110e73f9Sschwartz * fields enclosed by brackets "[]" replaced with your own identifying 17110e73f9Sschwartz * information: Portions Copyright [yyyy] [name of copyright owner] 18110e73f9Sschwartz * 19110e73f9Sschwartz * CDDL HEADER END 20110e73f9Sschwartz */ 21110e73f9Sschwartz 22110e73f9Sschwartz /* 23110e73f9Sschwartz * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24110e73f9Sschwartz * Use is subject to license terms. 25110e73f9Sschwartz */ 26110e73f9Sschwartz 27110e73f9Sschwartz #ifndef _FPC_H 28110e73f9Sschwartz #define _FPC_H 29110e73f9Sschwartz 30110e73f9Sschwartz #pragma ident "%Z%%M% %I% %E% SMI" 31110e73f9Sschwartz 32110e73f9Sschwartz #ifdef __cplusplus 33110e73f9Sschwartz extern "C" { 34110e73f9Sschwartz #endif 35110e73f9Sschwartz 36110e73f9Sschwartz #define SUCCESS 0 37110e73f9Sschwartz #define FAILURE -1 38110e73f9Sschwartz 39110e73f9Sschwartz #define NUM_LEAVES 2 40110e73f9Sschwartz 41110e73f9Sschwartz extern int fpc_debug; 42110e73f9Sschwartz #define FPC_DBG1 if (fpc_debug >= 1) printf 43110e73f9Sschwartz #define FPC_DBG2 if (fpc_debug >= 2) printf 44110e73f9Sschwartz 45110e73f9Sschwartz /* 46110e73f9Sschwartz * Defs for fpc-kstat.c. Put'em here for now even though they don't 47110e73f9Sschwartz * have to do with the lower-level implementation. 48110e73f9Sschwartz */ 49110e73f9Sschwartz extern int fpc_kstat_init(dev_info_t *dip); 50110e73f9Sschwartz extern void fpc_kstat_fini(dev_info_t *dip); 51110e73f9Sschwartz 52110e73f9Sschwartz typedef enum fire_perfcnt { 53110e73f9Sschwartz jbc = 0, 54110e73f9Sschwartz imu, 55110e73f9Sschwartz mmu, 56110e73f9Sschwartz tlu, 57110e73f9Sschwartz lpu 58110e73f9Sschwartz } fire_perfcnt_t; 59110e73f9Sschwartz 60110e73f9Sschwartz /* Set to the last entry in fire_perfcnt_t. */ 61110e73f9Sschwartz #define MAX_REG_TYPES ((int)lpu + 1) 62110e73f9Sschwartz 63110e73f9Sschwartz #define NUM_JBC_COUNTERS 2 64110e73f9Sschwartz #define NUM_IMU_COUNTERS 2 65110e73f9Sschwartz #define NUM_MMU_COUNTERS 2 66110e73f9Sschwartz #define NUM_TLU_COUNTERS 3 67110e73f9Sschwartz #define NUM_LPU_COUNTERS 2 68110e73f9Sschwartz 69110e73f9Sschwartz /* Sum of all NUM_xxx_COUNTERS above. */ 70110e73f9Sschwartz #define NUM_TOTAL_COUNTERS 11 71110e73f9Sschwartz 72110e73f9Sschwartz /* largest group of counters */ 73110e73f9Sschwartz #define NUM_MAX_COUNTERS NUM_TLU_COUNTERS 74110e73f9Sschwartz 75110e73f9Sschwartz /* Event mask related. */ 76110e73f9Sschwartz 77110e73f9Sschwartz /* How much an event for a given PIC is shifted within the event mask. */ 78110e73f9Sschwartz 79110e73f9Sschwartz #define PIC0_EVT_SEL_SHIFT 0 80110e73f9Sschwartz #define PIC1_EVT_SEL_SHIFT 8 81110e73f9Sschwartz #define PIC2_EVT_SEL_SHIFT 16 82110e73f9Sschwartz 83110e73f9Sschwartz /* Width or mask of a single event within an event mask. */ 84110e73f9Sschwartz 85110e73f9Sschwartz #define JBC01_EVT_MASK 0xFF 86110e73f9Sschwartz #define IMU01_EVT_MASK 0xFF 87110e73f9Sschwartz #define MMU01_EVT_MASK 0xFF 88110e73f9Sschwartz #define TLU01_EVT_MASK 0xFF 89110e73f9Sschwartz #define TLU2_EVT_MASK 0x3 90110e73f9Sschwartz #define LPU12_EVT_MASK 0xFFFF 91110e73f9Sschwartz 92110e73f9Sschwartz /* Positioned masks for different event fields within an event mask. */ 93110e73f9Sschwartz 94110e73f9Sschwartz #define JBC_PIC0_EVT_MASK ((uint64_t)JBC01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 95110e73f9Sschwartz #define JBC_PIC1_EVT_MASK ((uint64_t)JBC01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 96110e73f9Sschwartz #define IMU_PIC0_EVT_MASK ((uint64_t)IMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 97110e73f9Sschwartz #define IMU_PIC1_EVT_MASK ((uint64_t)IMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 98110e73f9Sschwartz #define MMU_PIC0_EVT_MASK ((uint64_t)MMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 99110e73f9Sschwartz #define MMU_PIC1_EVT_MASK ((uint64_t)MMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 100110e73f9Sschwartz #define TLU_PIC0_EVT_MASK ((uint64_t)TLU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 101110e73f9Sschwartz #define TLU_PIC1_EVT_MASK ((uint64_t)TLU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 102110e73f9Sschwartz #define TLU_PIC2_EVT_MASK ((uint64_t)TLU2_EVT_MASK << PIC2_EVT_SEL_SHIFT) 103110e73f9Sschwartz #define LPU_PIC0_EVT_MASK ((uint64_t)LPU12_EVT_MASK << PIC0_EVT_SEL_SHIFT) 104110e73f9Sschwartz #define LPU_PIC1_EVT_MASK ((uint64_t)LPU12_EVT_MASK << PIC2_EVT_SEL_SHIFT) 105110e73f9Sschwartz 106110e73f9Sschwartz /* 107110e73f9Sschwartz * Take a dip to define the device... 108110e73f9Sschwartz * sun4v: can convert dip to a dev_hdl needed for hyp. perf ctr interface. 109110e73f9Sschwartz * sun4u: can convert dip to an ldi_ident_t I can use for a layered PCItool 110110e73f9Sschwartz * ioctl. 111110e73f9Sschwartz * 112110e73f9Sschwartz * Define which of JBUS, PCIE_A and PCIE_B regs are available. HW partitioning 113110e73f9Sschwartz * may make some register sets unavailable to certain virtual nodes. 114110e73f9Sschwartz */ 115110e73f9Sschwartz 116110e73f9Sschwartz #define JBUS_REGS_AVAIL 0x1 /* JBUS regs avail */ 117110e73f9Sschwartz #define PCIE_A_REGS_AVAIL 0x2 118110e73f9Sschwartz #define PCIE_B_REGS_AVAIL 0x4 119110e73f9Sschwartz 120*0ad689d6Sschwartz /* For checking platform from _init before installing module */ 121*0ad689d6Sschwartz extern int fpc_init_platform_check(); 122*0ad689d6Sschwartz 123*0ad689d6Sschwartz /* Low level module initialization done at attach time. */ 124110e73f9Sschwartz extern int fpc_perfcnt_module_init(dev_info_t *dip, int *avail); 125110e73f9Sschwartz extern int fpc_perfcnt_module_fini(dev_info_t *dip); 126110e73f9Sschwartz 127110e73f9Sschwartz /* 128110e73f9Sschwartz * Program a performance counter. 129110e73f9Sschwartz * 130110e73f9Sschwartz * reggroup is which type of counter. 131110e73f9Sschwartz * counter is the counter number. 132110e73f9Sschwartz * event is the event to program for that counter. 133110e73f9Sschwartz */ 134110e73f9Sschwartz extern int fpc_perfcnt_program(int devnum, fire_perfcnt_t reggroup, 135110e73f9Sschwartz uint64_t event); 136110e73f9Sschwartz 137110e73f9Sschwartz /* 138110e73f9Sschwartz * Read a performance counter. 139110e73f9Sschwartz * 140110e73f9Sschwartz * reggroup is which type of counter. 141110e73f9Sschwartz * counter is the counter number. 142110e73f9Sschwartz * event_p returns the event programmed for that counter. 143110e73f9Sschwartz * value_p returns the counter value. 144110e73f9Sschwartz */ 145110e73f9Sschwartz extern int fpc_perfcnt_read(int devnum, fire_perfcnt_t reggroup, 146110e73f9Sschwartz uint64_t *event_p, uint64_t values[NUM_MAX_COUNTERS]); 147110e73f9Sschwartz 148110e73f9Sschwartz /* 149110e73f9Sschwartz * Definitions of the different types of events. 150110e73f9Sschwartz * 151110e73f9Sschwartz * The first part says which registers these events are for. 152110e73f9Sschwartz * For example, JBC01 means the JBC performance counters 0 and 1 153110e73f9Sschwartz */ 154110e73f9Sschwartz 155110e73f9Sschwartz #define JBC01_S_EVT_NONE "event_none" 156110e73f9Sschwartz #define JBC01_S_EVT_CLK "clock_cyc" 157110e73f9Sschwartz #define JBC01_S_EVT_IDLE "idle_cyc" 158110e73f9Sschwartz #define JBC01_S_EVT_FIRE "fire_jbus_cyc" 159110e73f9Sschwartz #define JBC01_S_EVT_READ_LATENCY "rd_latency_cyc" 160110e73f9Sschwartz #define JBC01_S_EVT_READ_SAMPLE "rd_sample" 161110e73f9Sschwartz #define JBC01_S_EVT_I2C_PIO "pios_i2c" 162110e73f9Sschwartz #define JBC01_S_EVT_EBUS_PIO "pios_ebus" 163110e73f9Sschwartz #define JBC01_S_EVT_RINGA_PIO "pios_ringA" 164110e73f9Sschwartz #define JBC01_S_EVT_RINGB_PIO "pios_ringB" 165110e73f9Sschwartz #define JBC01_S_EVT_PARTIAL_WR "partial_wr" 166110e73f9Sschwartz #define JBC01_S_EVT_TOTAL_WR "total_wr" 167110e73f9Sschwartz #define JBC01_S_EVT_TOTAL_RD "total_rd" 168110e73f9Sschwartz #define JBC01_S_EVT_AOKOFF "aokoff" 169110e73f9Sschwartz #define JBC01_S_EVT_DOKOFF "dokoff" 170110e73f9Sschwartz #define JBC01_S_EVT_DAOKOFF "daokoff" 171110e73f9Sschwartz #define JBC01_S_EVT_JBUS_COH_XACT "jbus_coh_tr" 172110e73f9Sschwartz #define JBC01_S_EVT_FIRE_COH_XACT "fire_coh_tr" 173110e73f9Sschwartz #define JBC01_S_EVT_JBUS_NCOH_XACT "jbus_ncoh_tr" 174110e73f9Sschwartz #define JBC01_S_EVT_FGN_IO_HIT "fgn_pio_hit" 175110e73f9Sschwartz #define JBC01_S_EVT_FIRE_WBS "fire_wb" 176110e73f9Sschwartz #define JBC01_S_EVT_PCIEA_PIO_WR "pio_wr_pcieA" 177110e73f9Sschwartz #define JBC01_S_EVT_PCIEA_PIO_RD "pio_rd_pcieA" 178110e73f9Sschwartz #define JBC01_S_EVT_PCIEB_PIO_WR "pio_wr_pcieB" 179110e73f9Sschwartz #define JBC01_S_EVT_PCIEB_PIO_RD "pio_rd_pcieB" 180110e73f9Sschwartz 181110e73f9Sschwartz #define JBC01_EVT_NONE 0x0 182110e73f9Sschwartz #define JBC01_EVT_CLK 0x1 183110e73f9Sschwartz #define JBC01_EVT_IDLE 0x2 184110e73f9Sschwartz #define JBC01_EVT_FIRE 0x3 185110e73f9Sschwartz #define JBC01_EVT_READ_LATENCY 0x4 186110e73f9Sschwartz #define JBC01_EVT_READ_SAMPLE 0x5 187110e73f9Sschwartz #define JBC01_EVT_I2C_PIO 0x6 188110e73f9Sschwartz #define JBC01_EVT_EBUS_PIO 0x7 189110e73f9Sschwartz #define JBC01_EVT_RINGA_PIO 0x8 190110e73f9Sschwartz #define JBC01_EVT_RINGB_PIO 0x9 191110e73f9Sschwartz #define JBC01_EVT_PARTIAL_WR 0xA 192110e73f9Sschwartz #define JBC01_EVT_TOTAL_WR 0xB 193110e73f9Sschwartz #define JBC01_EVT_TOTAL_RD 0xC 194110e73f9Sschwartz #define JBC01_EVT_AOKOFF 0xD 195110e73f9Sschwartz #define JBC01_EVT_DOKOFF 0xE 196110e73f9Sschwartz #define JBC01_EVT_DAOKOFF 0xF 197110e73f9Sschwartz #define JBC01_EVT_JBUS_COH_XACT 0x10 198110e73f9Sschwartz #define JBC01_EVT_FIRE_COH_XACT 0x11 199110e73f9Sschwartz #define JBC01_EVT_JBUS_NCOH_XACT 0x12 200110e73f9Sschwartz #define JBC01_EVT_FGN_IO_HIT 0x13 201110e73f9Sschwartz #define JBC01_EVT_FIRE_WBS 0x14 202110e73f9Sschwartz #define JBC01_EVT_PCIEA_PIO_WR 0x15 203110e73f9Sschwartz #define JBC01_EVT_PCIEA_PIO_RD 0x16 204110e73f9Sschwartz #define JBC01_EVT_PCIEB_PIO_WR 0x17 205110e73f9Sschwartz #define JBC01_EVT_PCIEB_PIO_RD 0x18 206110e73f9Sschwartz 207110e73f9Sschwartz #define IMU01_S_EVT_NONE "event_none" 208110e73f9Sschwartz #define IMU01_S_EVT_CLK "clock_cyc" 209110e73f9Sschwartz #define IMU01_S_EVT_MONDO "mondos_iss" 210110e73f9Sschwartz #define IMU01_S_EVT_MSI "msi_iss" 211110e73f9Sschwartz #define IMU01_S_EVT_MONDO_NAKS "mondos_nacks" 212110e73f9Sschwartz #define IMU01_S_EVT_EQ_WR "eq_wr" 213110e73f9Sschwartz #define IMU01_S_EVT_EQ_MONDO "eq_mondos" 214110e73f9Sschwartz 215110e73f9Sschwartz #define IMU01_EVT_NONE 0x0 216110e73f9Sschwartz #define IMU01_EVT_CLK 0x1 217110e73f9Sschwartz #define IMU01_EVT_MONDO 0x2 218110e73f9Sschwartz #define IMU01_EVT_MSI 0x3 219110e73f9Sschwartz #define IMU01_EVT_MONDO_NAKS 0x4 220110e73f9Sschwartz #define IMU01_EVT_EQ_WR 0x5 221110e73f9Sschwartz #define IMU01_EVT_EQ_MONDO 0x6 222110e73f9Sschwartz 223110e73f9Sschwartz #define MMU01_S_EVT_NONE "event_none" 224110e73f9Sschwartz #define MMU01_S_EVT_CLK "clock_cyc" 225110e73f9Sschwartz #define MMU01_S_EVT_TRANS "total_transl" 226110e73f9Sschwartz #define MMU01_S_EVT_STALL "total_stall_cyc" 227110e73f9Sschwartz #define MMU01_S_EVT_TRANSL_MISS "total_tranl_miss" 228110e73f9Sschwartz #define MMU01_S_EVT_TBLWLK_STALL "tblwlk_stall_cyc" 229110e73f9Sschwartz #define MMU01_S_EVT_BYPASS_TRANSL "bypass_transl" 230110e73f9Sschwartz #define MMU01_S_EVT_TRANSL_TRANSL "transl_transl" 231110e73f9Sschwartz #define MMU01_S_EVT_FLOW_CNTL_STALL "flow_stall_cyc" 232110e73f9Sschwartz #define MMU01_S_EVT_FLUSH_CACHE_ENT "cache_entr_flush" 233110e73f9Sschwartz 234110e73f9Sschwartz #define MMU01_EVT_NONE 0x0 235110e73f9Sschwartz #define MMU01_EVT_CLK 0x1 236110e73f9Sschwartz #define MMU01_EVT_TRANSL 0x2 237110e73f9Sschwartz #define MMU01_EVT_STALL 0x3 238110e73f9Sschwartz #define MMU01_EVT_TRANSL_MISS 0x4 239110e73f9Sschwartz #define MMU01_EVT_TBLWLK_STALL 0x5 240110e73f9Sschwartz #define MMU01_EVT_BYPASS_TRANSL 0x6 241110e73f9Sschwartz #define MMU01_EVT_TRANSL_TRANSL 0x7 242110e73f9Sschwartz #define MMU01_EVT_FLOW_CNTL_STALL 0x8 243110e73f9Sschwartz #define MMU01_EVT_FLUSH_CACHE_ENT 0x9 244110e73f9Sschwartz 245110e73f9Sschwartz #define TLU01_S_EVT_NONE "event_none" 246110e73f9Sschwartz #define TLU01_S_EVT_CLK "clock_cyc" 247110e73f9Sschwartz #define TLU01_S_EVT_COMPL "compl_recvd" 248110e73f9Sschwartz #define TLU01_S_EVT_XMT_POST_CR_UNAV "post_cr_unav_cyc" 249110e73f9Sschwartz #define TLU01_S_EVT_XMT_NPOST_CR_UNAV "npost_cr_unav_cyc" 250110e73f9Sschwartz #define TLU01_S_EVT_XMT_CMPL_CR_UNAV "compl_cr_unav_cyc" 251110e73f9Sschwartz #define TLU01_S_EVT_XMT_ANY_CR_UNAV "trans_cr_any_unav" 252110e73f9Sschwartz #define TLU01_S_EVT_RETRY_CR_UNAV "retry_cr_unav" 253110e73f9Sschwartz #define TLU01_S_EVT_MEMRD_PKT_RCVD "recvd_mem_rd_pkt" 254110e73f9Sschwartz #define TLU01_S_EVT_MEMWR_PKT_RCVD "recvd_mem_wr_pkt" 255110e73f9Sschwartz #define TLU01_S_EVT_RCV_CR_THRESH "recv_cr_thresh" 256110e73f9Sschwartz #define TLU01_S_EVT_RCV_PST_HDR_CR_EXH "recv_hdr_cr_exh_cyc" 257110e73f9Sschwartz #define TLU01_S_EVT_RCV_PST_DA_CR_MPS "recv_post_da_cr_mps" 258110e73f9Sschwartz #define TLU01_S_EVT_RCV_NPST_HDR_CR_EXH "recv_npost_hdr_cr_exh" 259110e73f9Sschwartz #define TLU01_S_EVT_RCVR_L0S "recvr_l0s_cyc" 260110e73f9Sschwartz #define TLU01_S_EVT_RCVR_L0S_TRANS "recvr_l0s_trans" 261110e73f9Sschwartz #define TLU01_S_EVT_XMTR_L0S "trans_l0s_cyc" 262110e73f9Sschwartz #define TLU01_S_EVT_XMTR_L0S_TRANS "trans_l0s_trans" 263110e73f9Sschwartz #define TLU01_S_EVT_RCVR_ERR "recvr_err" 264110e73f9Sschwartz #define TLU01_S_EVT_BAD_TLP "bad_tlp" 265110e73f9Sschwartz #define TLU01_S_EVT_BAD_DLLP "bad_dllp" 266110e73f9Sschwartz #define TLU01_S_EVT_REPLAY_ROLLOVER "replay_rollover" 267110e73f9Sschwartz #define TLU01_S_EVT_REPLAY_TMO "replay_to" 268110e73f9Sschwartz 269110e73f9Sschwartz #define TLU01_EVT_NONE 0x0 270110e73f9Sschwartz #define TLU01_EVT_CLK 0x1 271110e73f9Sschwartz #define TLU01_EVT_COMPL 0x2 272110e73f9Sschwartz #define TLU01_EVT_XMT_POST_CR_UNAV 0x10 273110e73f9Sschwartz #define TLU01_EVT_XMT_NPOST_CR_UNAV 0x11 274110e73f9Sschwartz #define TLU01_EVT_XMT_CMPL_CR_UNAV 0x12 275110e73f9Sschwartz #define TLU01_EVT_XMT_ANY_CR_UNAV 0x13 276110e73f9Sschwartz #define TLU01_EVT_RETRY_CR_UNAV 0x14 277110e73f9Sschwartz #define TLU01_EVT_MEMRD_PKT_RCVD 0x20 278110e73f9Sschwartz #define TLU01_EVT_MEMWR_PKT_RCVD 0x21 279110e73f9Sschwartz #define TLU01_EVT_RCV_CR_THRESH 0x22 280110e73f9Sschwartz #define TLU01_EVT_RCV_PST_HDR_CR_EXH 0x23 281110e73f9Sschwartz #define TLU01_EVT_RCV_PST_DA_CR_MPS 0x24 282110e73f9Sschwartz #define TLU01_EVT_RCV_NPST_HDR_CR_EXH 0x25 283110e73f9Sschwartz #define TLU01_EVT_RCVR_L0S 0x30 284110e73f9Sschwartz #define TLU01_EVT_RCVR_L0S_TRANS 0x31 285110e73f9Sschwartz #define TLU01_EVT_XMTR_L0S 0x32 286110e73f9Sschwartz #define TLU01_EVT_XMTR_L0S_TRANS 0x33 287110e73f9Sschwartz #define TLU01_EVT_RCVR_ERR 0x40 288110e73f9Sschwartz #define TLU01_EVT_BAD_TLP 0x42 289110e73f9Sschwartz #define TLU01_EVT_BAD_DLLP 0x43 290110e73f9Sschwartz #define TLU01_EVT_REPLAY_ROLLOVER 0x44 291110e73f9Sschwartz #define TLU01_EVT_REPLAY_TMO 0x47 292110e73f9Sschwartz 293110e73f9Sschwartz #define TLU2_S_EVT_NONE "event_none" 294110e73f9Sschwartz #define TLU2_S_EVT_NON_POST_COMPL_TIME "non_post_compl" 295110e73f9Sschwartz #define TLU2_S_EVT_XMT_DATA_WORD "trans_data_words" 296110e73f9Sschwartz #define TLU2_S_EVT_RCVD_DATA_WORD "recvd_data_words" 297110e73f9Sschwartz 298110e73f9Sschwartz #define TLU2_EVT_NONE 0x0 299110e73f9Sschwartz #define TLU2_EVT_NON_POST_COMPL_TIME 0x1 300110e73f9Sschwartz #define TLU2_EVT_XMT_DATA_WORD 0x2 301110e73f9Sschwartz #define TLU2_EVT_RCVD_DATA_WORD 0x3 302110e73f9Sschwartz 303110e73f9Sschwartz #define LPU12_S_EVT_RESET "event_reset" 304110e73f9Sschwartz #define LPU12_S_EVT_TLP_RCVD "tlp_recvd" 305110e73f9Sschwartz #define LPU12_S_EVT_DLLP_RCVD "dllp_recvd" 306110e73f9Sschwartz #define LPU12_S_EVT_ACK_DLLP_RCVD "ack_dllp_recvd" 307110e73f9Sschwartz #define LPU12_S_EVT_NAK_DLLP_RCVD "nak_dllp_recvd" 308110e73f9Sschwartz #define LPU12_S_EVT_RETRY_START "retries_started" 309110e73f9Sschwartz #define LPU12_S_EVT_REPLAY_TMO "replay_timer_to" 310110e73f9Sschwartz #define LPU12_S_EVT_ACK_NAK_LAT_TMO "ack_nak_lat_to" 311110e73f9Sschwartz #define LPU12_S_EVT_BAD_DLLP "bad_dllp" 312110e73f9Sschwartz #define LPU12_S_EVT_BAD_TLP "bad_tlp" 313110e73f9Sschwartz #define LPU12_S_EVT_NAK_DLLP_SENT "nak_dllp_sent" 314110e73f9Sschwartz #define LPU12_S_EVT_ACK_DLLP_SENT "ack_dllp_sent" 315110e73f9Sschwartz #define LPU12_S_EVT_RCVR_ERROR "recvr_err" 316110e73f9Sschwartz #define LPU12_S_EVT_LTSSM_RECOV_ENTRY "ltssm_recov_entr" 317110e73f9Sschwartz #define LPU12_S_EVT_REPLAY_IN_PROG "replay_prog_cyc" 318110e73f9Sschwartz #define LPU12_S_EVT_TLP_XMT_IN_PROG "tlp_trans_prog_cyc" 319110e73f9Sschwartz #define LPU12_S_EVT_CLK_CYC "clock_cyc" 320110e73f9Sschwartz #define LPU12_S_EVT_TLP_DLLP_XMT_PROG "tlp_dllp_trans_cyc" 321110e73f9Sschwartz #define LPU12_S_EVT_TLP_DLLP_RCV_PROG "tlp_dllp_recv_cyc" 322110e73f9Sschwartz 323110e73f9Sschwartz #define LPU12_EVT_RESET 0x0 324110e73f9Sschwartz #define LPU12_EVT_TLP_RCVD 0x1 325110e73f9Sschwartz #define LPU12_EVT_DLLP_RCVD 0x2 326110e73f9Sschwartz #define LPU12_EVT_ACK_DLLP_RCVD 0x3 327110e73f9Sschwartz #define LPU12_EVT_NAK_DLLP_RCVD 0x4 328110e73f9Sschwartz #define LPU12_EVT_RETRY_START 0x5 329110e73f9Sschwartz #define LPU12_EVT_REPLAY_TMO 0x6 330110e73f9Sschwartz #define LPU12_EVT_ACK_NAK_LAT_TMO 0x7 331110e73f9Sschwartz #define LPU12_EVT_BAD_DLLP 0x8 332110e73f9Sschwartz #define LPU12_EVT_BAD_TLP 0x9 333110e73f9Sschwartz #define LPU12_EVT_NAK_DLLP_SENT 0xA 334110e73f9Sschwartz #define LPU12_EVT_ACK_DLLP_SENT 0xB 335110e73f9Sschwartz #define LPU12_EVT_RCVR_ERROR 0xC 336110e73f9Sschwartz #define LPU12_EVT_LTSSM_RECOV_ENTRY 0xD 337110e73f9Sschwartz #define LPU12_EVT_REPLAY_IN_PROG 0xE 338110e73f9Sschwartz #define LPU12_EVT_TLP_XMT_IN_PROG 0xF 339110e73f9Sschwartz #define LPU12_EVT_CLK_CYC 0x10 340110e73f9Sschwartz #define LPU12_EVT_TLP_DLLP_XMT_PROG 0x11 341110e73f9Sschwartz #define LPU12_EVT_TLP_DLLP_RCV_PROG 0x12 342110e73f9Sschwartz 343110e73f9Sschwartz #define COMMON_S_CLEAR_PIC "clear_pic" 344110e73f9Sschwartz 345110e73f9Sschwartz #ifdef __cplusplus 346110e73f9Sschwartz } 347110e73f9Sschwartz #endif 348110e73f9Sschwartz 349110e73f9Sschwartz #endif /* _FPC_H */ 350