xref: /onnv-gate/usr/src/uts/sun4/io/fpc/fpc.h (revision 1691:4e20a3756674)
11370Sschwartz /*
21370Sschwartz  * CDDL HEADER START
31370Sschwartz  *
41370Sschwartz  * The contents of this file are subject to the terms of the
51370Sschwartz  * Common Development and Distribution License (the "License").
61370Sschwartz  * You may not use this file except in compliance with the License.
71370Sschwartz  *
81370Sschwartz  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
91370Sschwartz  * or http://www.opensolaris.org/os/licensing.
101370Sschwartz  * See the License for the specific language governing permissions
111370Sschwartz  * and limitations under the License.
121370Sschwartz  *
131370Sschwartz  * When distributing Covered Code, include this CDDL HEADER in each
141370Sschwartz  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
151370Sschwartz  * If applicable, add the following below this CDDL HEADER, with the
161370Sschwartz  * fields enclosed by brackets "[]" replaced with your own identifying
171370Sschwartz  * information: Portions Copyright [yyyy] [name of copyright owner]
181370Sschwartz  *
191370Sschwartz  * CDDL HEADER END
201370Sschwartz  */
211370Sschwartz 
221370Sschwartz /*
231370Sschwartz  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
241370Sschwartz  * Use is subject to license terms.
251370Sschwartz  */
261370Sschwartz 
271370Sschwartz #ifndef	_FPC_H
281370Sschwartz #define	_FPC_H
291370Sschwartz 
301370Sschwartz #pragma ident	"%Z%%M%	%I%	%E% SMI"
311370Sschwartz 
321370Sschwartz #ifdef	__cplusplus
331370Sschwartz extern "C" {
341370Sschwartz #endif
351370Sschwartz 
361370Sschwartz #define	SUCCESS	0
371370Sschwartz #define	FAILURE	-1
381370Sschwartz 
391370Sschwartz #define	NUM_LEAVES	2
401370Sschwartz 
411370Sschwartz extern int fpc_debug;
421370Sschwartz #define	FPC_DBG1 if (fpc_debug >= 1) printf
431370Sschwartz #define	FPC_DBG2 if (fpc_debug >= 2) printf
441370Sschwartz 
451370Sschwartz /*
461370Sschwartz  * Defs for fpc-kstat.c.  Put'em here for now even though they don't
471370Sschwartz  * have to do with the lower-level implementation.
481370Sschwartz  */
491370Sschwartz extern int fpc_kstat_init(dev_info_t *dip);
501370Sschwartz extern void fpc_kstat_fini(dev_info_t *dip);
511370Sschwartz 
521370Sschwartz typedef enum fire_perfcnt {
531370Sschwartz 	jbc = 0,
541370Sschwartz 	imu,
551370Sschwartz 	mmu,
561370Sschwartz 	tlu,
571370Sschwartz 	lpu
581370Sschwartz } fire_perfcnt_t;
591370Sschwartz 
601370Sschwartz /* Set to the last entry in fire_perfcnt_t. */
611370Sschwartz #define	MAX_REG_TYPES		((int)lpu + 1)
621370Sschwartz 
631370Sschwartz #define	NUM_JBC_COUNTERS	2
641370Sschwartz #define	NUM_IMU_COUNTERS	2
651370Sschwartz #define	NUM_MMU_COUNTERS	2
661370Sschwartz #define	NUM_TLU_COUNTERS	3
671370Sschwartz #define	NUM_LPU_COUNTERS	2
681370Sschwartz 
691370Sschwartz /* Sum of all NUM_xxx_COUNTERS above. */
701370Sschwartz #define	NUM_TOTAL_COUNTERS	11
711370Sschwartz 
721370Sschwartz /* largest group of counters */
731370Sschwartz #define	NUM_MAX_COUNTERS	NUM_TLU_COUNTERS
741370Sschwartz 
751370Sschwartz /* Event mask related. */
761370Sschwartz 
771370Sschwartz /* How much an event for a given PIC is shifted within the event mask. */
781370Sschwartz 
791370Sschwartz #define	PIC0_EVT_SEL_SHIFT	0
801370Sschwartz #define	PIC1_EVT_SEL_SHIFT	8
811370Sschwartz #define	PIC2_EVT_SEL_SHIFT	16
821370Sschwartz 
831370Sschwartz /* Width or mask of a single event within an event mask. */
841370Sschwartz 
851370Sschwartz #define	JBC01_EVT_MASK		0xFF
861370Sschwartz #define	IMU01_EVT_MASK		0xFF
871370Sschwartz #define	MMU01_EVT_MASK		0xFF
881370Sschwartz #define	TLU01_EVT_MASK		0xFF
891370Sschwartz #define	TLU2_EVT_MASK		0x3
901370Sschwartz #define	LPU12_EVT_MASK		0xFFFF
911370Sschwartz 
921370Sschwartz /* Positioned masks for different event fields within an event mask. */
931370Sschwartz 
941370Sschwartz #define	JBC_PIC0_EVT_MASK	((uint64_t)JBC01_EVT_MASK << PIC0_EVT_SEL_SHIFT)
951370Sschwartz #define	JBC_PIC1_EVT_MASK	((uint64_t)JBC01_EVT_MASK << PIC1_EVT_SEL_SHIFT)
961370Sschwartz #define	IMU_PIC0_EVT_MASK	((uint64_t)IMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT)
971370Sschwartz #define	IMU_PIC1_EVT_MASK	((uint64_t)IMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT)
981370Sschwartz #define	MMU_PIC0_EVT_MASK	((uint64_t)MMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT)
991370Sschwartz #define	MMU_PIC1_EVT_MASK	((uint64_t)MMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT)
1001370Sschwartz #define	TLU_PIC0_EVT_MASK	((uint64_t)TLU01_EVT_MASK << PIC0_EVT_SEL_SHIFT)
1011370Sschwartz #define	TLU_PIC1_EVT_MASK	((uint64_t)TLU01_EVT_MASK << PIC1_EVT_SEL_SHIFT)
1021370Sschwartz #define	TLU_PIC2_EVT_MASK	((uint64_t)TLU2_EVT_MASK << PIC2_EVT_SEL_SHIFT)
1031370Sschwartz #define	LPU_PIC0_EVT_MASK	((uint64_t)LPU12_EVT_MASK << PIC0_EVT_SEL_SHIFT)
1041370Sschwartz #define	LPU_PIC1_EVT_MASK	((uint64_t)LPU12_EVT_MASK << PIC2_EVT_SEL_SHIFT)
1051370Sschwartz 
1061370Sschwartz /*
1071370Sschwartz  * Take a dip to define the device...
1081370Sschwartz  *   sun4v: can convert dip to a dev_hdl needed for hyp. perf ctr interface.
1091370Sschwartz  *   sun4u: can convert dip to an ldi_ident_t I can use for a layered PCItool
1101370Sschwartz  *	ioctl.
1111370Sschwartz  *
1121370Sschwartz  * Define which of JBUS, PCIE_A and PCIE_B regs are available.  HW partitioning
1131370Sschwartz  * may make some register sets unavailable to certain virtual nodes.
1141370Sschwartz  */
1151370Sschwartz 
1161370Sschwartz #define	JBUS_REGS_AVAIL		0x1	/* JBUS regs avail */
1171370Sschwartz #define	PCIE_A_REGS_AVAIL	0x2
1181370Sschwartz #define	PCIE_B_REGS_AVAIL	0x4
1191370Sschwartz 
120*1691Sschwartz /* For checking platform from _init before installing module */
121*1691Sschwartz extern int fpc_init_platform_check();
122*1691Sschwartz 
123*1691Sschwartz /* Low level module initialization done at attach time. */
1241370Sschwartz extern int fpc_perfcnt_module_init(dev_info_t *dip, int *avail);
1251370Sschwartz extern int fpc_perfcnt_module_fini(dev_info_t *dip);
1261370Sschwartz 
1271370Sschwartz /*
1281370Sschwartz  * Program a performance counter.
1291370Sschwartz  *
1301370Sschwartz  * reggroup is which type of counter.
1311370Sschwartz  * counter is the counter number.
1321370Sschwartz  * event is the event to program for that counter.
1331370Sschwartz  */
1341370Sschwartz extern int fpc_perfcnt_program(int devnum, fire_perfcnt_t reggroup,
1351370Sschwartz     uint64_t event);
1361370Sschwartz 
1371370Sschwartz /*
1381370Sschwartz  * Read a performance counter.
1391370Sschwartz  *
1401370Sschwartz  * reggroup is which type of counter.
1411370Sschwartz  * counter is the counter number.
1421370Sschwartz  * event_p returns the event programmed for that counter.
1431370Sschwartz  * value_p returns the counter value.
1441370Sschwartz  */
1451370Sschwartz extern int fpc_perfcnt_read(int devnum, fire_perfcnt_t reggroup,
1461370Sschwartz     uint64_t *event_p, uint64_t values[NUM_MAX_COUNTERS]);
1471370Sschwartz 
1481370Sschwartz /*
1491370Sschwartz  * Definitions of the different types of events.
1501370Sschwartz  *
1511370Sschwartz  * The first part says which registers these events are for.
1521370Sschwartz  * For example, JBC01 means the JBC performance counters 0 and 1
1531370Sschwartz  */
1541370Sschwartz 
1551370Sschwartz #define	JBC01_S_EVT_NONE		"event_none"
1561370Sschwartz #define	JBC01_S_EVT_CLK			"clock_cyc"
1571370Sschwartz #define	JBC01_S_EVT_IDLE		"idle_cyc"
1581370Sschwartz #define	JBC01_S_EVT_FIRE		"fire_jbus_cyc"
1591370Sschwartz #define	JBC01_S_EVT_READ_LATENCY	"rd_latency_cyc"
1601370Sschwartz #define	JBC01_S_EVT_READ_SAMPLE		"rd_sample"
1611370Sschwartz #define	JBC01_S_EVT_I2C_PIO		"pios_i2c"
1621370Sschwartz #define	JBC01_S_EVT_EBUS_PIO		"pios_ebus"
1631370Sschwartz #define	JBC01_S_EVT_RINGA_PIO		"pios_ringA"
1641370Sschwartz #define	JBC01_S_EVT_RINGB_PIO		"pios_ringB"
1651370Sschwartz #define	JBC01_S_EVT_PARTIAL_WR		"partial_wr"
1661370Sschwartz #define	JBC01_S_EVT_TOTAL_WR		"total_wr"
1671370Sschwartz #define	JBC01_S_EVT_TOTAL_RD		"total_rd"
1681370Sschwartz #define	JBC01_S_EVT_AOKOFF		"aokoff"
1691370Sschwartz #define	JBC01_S_EVT_DOKOFF		"dokoff"
1701370Sschwartz #define	JBC01_S_EVT_DAOKOFF		"daokoff"
1711370Sschwartz #define	JBC01_S_EVT_JBUS_COH_XACT	"jbus_coh_tr"
1721370Sschwartz #define	JBC01_S_EVT_FIRE_COH_XACT	"fire_coh_tr"
1731370Sschwartz #define	JBC01_S_EVT_JBUS_NCOH_XACT	"jbus_ncoh_tr"
1741370Sschwartz #define	JBC01_S_EVT_FGN_IO_HIT		"fgn_pio_hit"
1751370Sschwartz #define	JBC01_S_EVT_FIRE_WBS		"fire_wb"
1761370Sschwartz #define	JBC01_S_EVT_PCIEA_PIO_WR	"pio_wr_pcieA"
1771370Sschwartz #define	JBC01_S_EVT_PCIEA_PIO_RD	"pio_rd_pcieA"
1781370Sschwartz #define	JBC01_S_EVT_PCIEB_PIO_WR	"pio_wr_pcieB"
1791370Sschwartz #define	JBC01_S_EVT_PCIEB_PIO_RD	"pio_rd_pcieB"
1801370Sschwartz 
1811370Sschwartz #define	JBC01_EVT_NONE			0x0
1821370Sschwartz #define	JBC01_EVT_CLK			0x1
1831370Sschwartz #define	JBC01_EVT_IDLE			0x2
1841370Sschwartz #define	JBC01_EVT_FIRE			0x3
1851370Sschwartz #define	JBC01_EVT_READ_LATENCY		0x4
1861370Sschwartz #define	JBC01_EVT_READ_SAMPLE		0x5
1871370Sschwartz #define	JBC01_EVT_I2C_PIO		0x6
1881370Sschwartz #define	JBC01_EVT_EBUS_PIO		0x7
1891370Sschwartz #define	JBC01_EVT_RINGA_PIO		0x8
1901370Sschwartz #define	JBC01_EVT_RINGB_PIO		0x9
1911370Sschwartz #define	JBC01_EVT_PARTIAL_WR		0xA
1921370Sschwartz #define	JBC01_EVT_TOTAL_WR		0xB
1931370Sschwartz #define	JBC01_EVT_TOTAL_RD		0xC
1941370Sschwartz #define	JBC01_EVT_AOKOFF		0xD
1951370Sschwartz #define	JBC01_EVT_DOKOFF		0xE
1961370Sschwartz #define	JBC01_EVT_DAOKOFF		0xF
1971370Sschwartz #define	JBC01_EVT_JBUS_COH_XACT		0x10
1981370Sschwartz #define	JBC01_EVT_FIRE_COH_XACT		0x11
1991370Sschwartz #define	JBC01_EVT_JBUS_NCOH_XACT	0x12
2001370Sschwartz #define	JBC01_EVT_FGN_IO_HIT		0x13
2011370Sschwartz #define	JBC01_EVT_FIRE_WBS		0x14
2021370Sschwartz #define	JBC01_EVT_PCIEA_PIO_WR		0x15
2031370Sschwartz #define	JBC01_EVT_PCIEA_PIO_RD		0x16
2041370Sschwartz #define	JBC01_EVT_PCIEB_PIO_WR		0x17
2051370Sschwartz #define	JBC01_EVT_PCIEB_PIO_RD		0x18
2061370Sschwartz 
2071370Sschwartz #define	IMU01_S_EVT_NONE		"event_none"
2081370Sschwartz #define	IMU01_S_EVT_CLK			"clock_cyc"
2091370Sschwartz #define	IMU01_S_EVT_MONDO		"mondos_iss"
2101370Sschwartz #define	IMU01_S_EVT_MSI			"msi_iss"
2111370Sschwartz #define	IMU01_S_EVT_MONDO_NAKS		"mondos_nacks"
2121370Sschwartz #define	IMU01_S_EVT_EQ_WR		"eq_wr"
2131370Sschwartz #define	IMU01_S_EVT_EQ_MONDO		"eq_mondos"
2141370Sschwartz 
2151370Sschwartz #define	IMU01_EVT_NONE			0x0
2161370Sschwartz #define	IMU01_EVT_CLK			0x1
2171370Sschwartz #define	IMU01_EVT_MONDO			0x2
2181370Sschwartz #define	IMU01_EVT_MSI			0x3
2191370Sschwartz #define	IMU01_EVT_MONDO_NAKS		0x4
2201370Sschwartz #define	IMU01_EVT_EQ_WR			0x5
2211370Sschwartz #define	IMU01_EVT_EQ_MONDO		0x6
2221370Sschwartz 
2231370Sschwartz #define	MMU01_S_EVT_NONE		"event_none"
2241370Sschwartz #define	MMU01_S_EVT_CLK			"clock_cyc"
2251370Sschwartz #define	MMU01_S_EVT_TRANS		"total_transl"
2261370Sschwartz #define	MMU01_S_EVT_STALL		"total_stall_cyc"
2271370Sschwartz #define	MMU01_S_EVT_TRANSL_MISS		"total_tranl_miss"
2281370Sschwartz #define	MMU01_S_EVT_TBLWLK_STALL	"tblwlk_stall_cyc"
2291370Sschwartz #define	MMU01_S_EVT_BYPASS_TRANSL	"bypass_transl"
2301370Sschwartz #define	MMU01_S_EVT_TRANSL_TRANSL	"transl_transl"
2311370Sschwartz #define	MMU01_S_EVT_FLOW_CNTL_STALL	"flow_stall_cyc"
2321370Sschwartz #define	MMU01_S_EVT_FLUSH_CACHE_ENT	"cache_entr_flush"
2331370Sschwartz 
2341370Sschwartz #define	MMU01_EVT_NONE			0x0
2351370Sschwartz #define	MMU01_EVT_CLK			0x1
2361370Sschwartz #define	MMU01_EVT_TRANSL		0x2
2371370Sschwartz #define	MMU01_EVT_STALL			0x3
2381370Sschwartz #define	MMU01_EVT_TRANSL_MISS		0x4
2391370Sschwartz #define	MMU01_EVT_TBLWLK_STALL		0x5
2401370Sschwartz #define	MMU01_EVT_BYPASS_TRANSL		0x6
2411370Sschwartz #define	MMU01_EVT_TRANSL_TRANSL		0x7
2421370Sschwartz #define	MMU01_EVT_FLOW_CNTL_STALL	0x8
2431370Sschwartz #define	MMU01_EVT_FLUSH_CACHE_ENT	0x9
2441370Sschwartz 
2451370Sschwartz #define	TLU01_S_EVT_NONE		"event_none"
2461370Sschwartz #define	TLU01_S_EVT_CLK			"clock_cyc"
2471370Sschwartz #define	TLU01_S_EVT_COMPL		"compl_recvd"
2481370Sschwartz #define	TLU01_S_EVT_XMT_POST_CR_UNAV	"post_cr_unav_cyc"
2491370Sschwartz #define	TLU01_S_EVT_XMT_NPOST_CR_UNAV	"npost_cr_unav_cyc"
2501370Sschwartz #define	TLU01_S_EVT_XMT_CMPL_CR_UNAV	"compl_cr_unav_cyc"
2511370Sschwartz #define	TLU01_S_EVT_XMT_ANY_CR_UNAV	"trans_cr_any_unav"
2521370Sschwartz #define	TLU01_S_EVT_RETRY_CR_UNAV	"retry_cr_unav"
2531370Sschwartz #define	TLU01_S_EVT_MEMRD_PKT_RCVD	"recvd_mem_rd_pkt"
2541370Sschwartz #define	TLU01_S_EVT_MEMWR_PKT_RCVD	"recvd_mem_wr_pkt"
2551370Sschwartz #define	TLU01_S_EVT_RCV_CR_THRESH	"recv_cr_thresh"
2561370Sschwartz #define	TLU01_S_EVT_RCV_PST_HDR_CR_EXH	"recv_hdr_cr_exh_cyc"
2571370Sschwartz #define	TLU01_S_EVT_RCV_PST_DA_CR_MPS	"recv_post_da_cr_mps"
2581370Sschwartz #define	TLU01_S_EVT_RCV_NPST_HDR_CR_EXH	"recv_npost_hdr_cr_exh"
2591370Sschwartz #define	TLU01_S_EVT_RCVR_L0S		"recvr_l0s_cyc"
2601370Sschwartz #define	TLU01_S_EVT_RCVR_L0S_TRANS	"recvr_l0s_trans"
2611370Sschwartz #define	TLU01_S_EVT_XMTR_L0S		"trans_l0s_cyc"
2621370Sschwartz #define	TLU01_S_EVT_XMTR_L0S_TRANS	"trans_l0s_trans"
2631370Sschwartz #define	TLU01_S_EVT_RCVR_ERR		"recvr_err"
2641370Sschwartz #define	TLU01_S_EVT_BAD_TLP		"bad_tlp"
2651370Sschwartz #define	TLU01_S_EVT_BAD_DLLP		"bad_dllp"
2661370Sschwartz #define	TLU01_S_EVT_REPLAY_ROLLOVER	"replay_rollover"
2671370Sschwartz #define	TLU01_S_EVT_REPLAY_TMO		"replay_to"
2681370Sschwartz 
2691370Sschwartz #define	TLU01_EVT_NONE			0x0
2701370Sschwartz #define	TLU01_EVT_CLK			0x1
2711370Sschwartz #define	TLU01_EVT_COMPL			0x2
2721370Sschwartz #define	TLU01_EVT_XMT_POST_CR_UNAV	0x10
2731370Sschwartz #define	TLU01_EVT_XMT_NPOST_CR_UNAV	0x11
2741370Sschwartz #define	TLU01_EVT_XMT_CMPL_CR_UNAV	0x12
2751370Sschwartz #define	TLU01_EVT_XMT_ANY_CR_UNAV	0x13
2761370Sschwartz #define	TLU01_EVT_RETRY_CR_UNAV		0x14
2771370Sschwartz #define	TLU01_EVT_MEMRD_PKT_RCVD	0x20
2781370Sschwartz #define	TLU01_EVT_MEMWR_PKT_RCVD	0x21
2791370Sschwartz #define	TLU01_EVT_RCV_CR_THRESH		0x22
2801370Sschwartz #define	TLU01_EVT_RCV_PST_HDR_CR_EXH	0x23
2811370Sschwartz #define	TLU01_EVT_RCV_PST_DA_CR_MPS	0x24
2821370Sschwartz #define	TLU01_EVT_RCV_NPST_HDR_CR_EXH	0x25
2831370Sschwartz #define	TLU01_EVT_RCVR_L0S		0x30
2841370Sschwartz #define	TLU01_EVT_RCVR_L0S_TRANS	0x31
2851370Sschwartz #define	TLU01_EVT_XMTR_L0S		0x32
2861370Sschwartz #define	TLU01_EVT_XMTR_L0S_TRANS	0x33
2871370Sschwartz #define	TLU01_EVT_RCVR_ERR		0x40
2881370Sschwartz #define	TLU01_EVT_BAD_TLP		0x42
2891370Sschwartz #define	TLU01_EVT_BAD_DLLP		0x43
2901370Sschwartz #define	TLU01_EVT_REPLAY_ROLLOVER	0x44
2911370Sschwartz #define	TLU01_EVT_REPLAY_TMO		0x47
2921370Sschwartz 
2931370Sschwartz #define	TLU2_S_EVT_NONE			"event_none"
2941370Sschwartz #define	TLU2_S_EVT_NON_POST_COMPL_TIME	"non_post_compl"
2951370Sschwartz #define	TLU2_S_EVT_XMT_DATA_WORD	"trans_data_words"
2961370Sschwartz #define	TLU2_S_EVT_RCVD_DATA_WORD	"recvd_data_words"
2971370Sschwartz 
2981370Sschwartz #define	TLU2_EVT_NONE			0x0
2991370Sschwartz #define	TLU2_EVT_NON_POST_COMPL_TIME	0x1
3001370Sschwartz #define	TLU2_EVT_XMT_DATA_WORD		0x2
3011370Sschwartz #define	TLU2_EVT_RCVD_DATA_WORD		0x3
3021370Sschwartz 
3031370Sschwartz #define	LPU12_S_EVT_RESET		"event_reset"
3041370Sschwartz #define	LPU12_S_EVT_TLP_RCVD		"tlp_recvd"
3051370Sschwartz #define	LPU12_S_EVT_DLLP_RCVD		"dllp_recvd"
3061370Sschwartz #define	LPU12_S_EVT_ACK_DLLP_RCVD	"ack_dllp_recvd"
3071370Sschwartz #define	LPU12_S_EVT_NAK_DLLP_RCVD	"nak_dllp_recvd"
3081370Sschwartz #define	LPU12_S_EVT_RETRY_START		"retries_started"
3091370Sschwartz #define	LPU12_S_EVT_REPLAY_TMO		"replay_timer_to"
3101370Sschwartz #define	LPU12_S_EVT_ACK_NAK_LAT_TMO	"ack_nak_lat_to"
3111370Sschwartz #define	LPU12_S_EVT_BAD_DLLP		"bad_dllp"
3121370Sschwartz #define	LPU12_S_EVT_BAD_TLP		"bad_tlp"
3131370Sschwartz #define	LPU12_S_EVT_NAK_DLLP_SENT	"nak_dllp_sent"
3141370Sschwartz #define	LPU12_S_EVT_ACK_DLLP_SENT	"ack_dllp_sent"
3151370Sschwartz #define	LPU12_S_EVT_RCVR_ERROR		"recvr_err"
3161370Sschwartz #define	LPU12_S_EVT_LTSSM_RECOV_ENTRY	"ltssm_recov_entr"
3171370Sschwartz #define	LPU12_S_EVT_REPLAY_IN_PROG	"replay_prog_cyc"
3181370Sschwartz #define	LPU12_S_EVT_TLP_XMT_IN_PROG	"tlp_trans_prog_cyc"
3191370Sschwartz #define	LPU12_S_EVT_CLK_CYC		"clock_cyc"
3201370Sschwartz #define	LPU12_S_EVT_TLP_DLLP_XMT_PROG	"tlp_dllp_trans_cyc"
3211370Sschwartz #define	LPU12_S_EVT_TLP_DLLP_RCV_PROG	"tlp_dllp_recv_cyc"
3221370Sschwartz 
3231370Sschwartz #define	LPU12_EVT_RESET			0x0
3241370Sschwartz #define	LPU12_EVT_TLP_RCVD		0x1
3251370Sschwartz #define	LPU12_EVT_DLLP_RCVD		0x2
3261370Sschwartz #define	LPU12_EVT_ACK_DLLP_RCVD		0x3
3271370Sschwartz #define	LPU12_EVT_NAK_DLLP_RCVD		0x4
3281370Sschwartz #define	LPU12_EVT_RETRY_START		0x5
3291370Sschwartz #define	LPU12_EVT_REPLAY_TMO		0x6
3301370Sschwartz #define	LPU12_EVT_ACK_NAK_LAT_TMO	0x7
3311370Sschwartz #define	LPU12_EVT_BAD_DLLP		0x8
3321370Sschwartz #define	LPU12_EVT_BAD_TLP		0x9
3331370Sschwartz #define	LPU12_EVT_NAK_DLLP_SENT		0xA
3341370Sschwartz #define	LPU12_EVT_ACK_DLLP_SENT		0xB
3351370Sschwartz #define	LPU12_EVT_RCVR_ERROR		0xC
3361370Sschwartz #define	LPU12_EVT_LTSSM_RECOV_ENTRY	0xD
3371370Sschwartz #define	LPU12_EVT_REPLAY_IN_PROG	0xE
3381370Sschwartz #define	LPU12_EVT_TLP_XMT_IN_PROG	0xF
3391370Sschwartz #define	LPU12_EVT_CLK_CYC		0x10
3401370Sschwartz #define	LPU12_EVT_TLP_DLLP_XMT_PROG	0x11
3411370Sschwartz #define	LPU12_EVT_TLP_DLLP_RCV_PROG	0x12
3421370Sschwartz 
3431370Sschwartz #define	COMMON_S_CLEAR_PIC		"clear_pic"
3441370Sschwartz 
3451370Sschwartz #ifdef	__cplusplus
3461370Sschwartz }
3471370Sschwartz #endif
3481370Sschwartz 
3491370Sschwartz #endif	/* _FPC_H */
350