1*0Sstevel@tonic-gate /*
2*0Sstevel@tonic-gate  * CDDL HEADER START
3*0Sstevel@tonic-gate  *
4*0Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*0Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*0Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*0Sstevel@tonic-gate  * with the License.
8*0Sstevel@tonic-gate  *
9*0Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*0Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*0Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*0Sstevel@tonic-gate  * and limitations under the License.
13*0Sstevel@tonic-gate  *
14*0Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*0Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*0Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*0Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*0Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*0Sstevel@tonic-gate  *
20*0Sstevel@tonic-gate  * CDDL HEADER END
21*0Sstevel@tonic-gate  */
22*0Sstevel@tonic-gate /*
23*0Sstevel@tonic-gate  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24*0Sstevel@tonic-gate  * Use is subject to license terms.
25*0Sstevel@tonic-gate  */
26*0Sstevel@tonic-gate 
27*0Sstevel@tonic-gate #ifndef	_PICLDR_H
28*0Sstevel@tonic-gate #define	_PICLDR_H
29*0Sstevel@tonic-gate 
30*0Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*0Sstevel@tonic-gate 
32*0Sstevel@tonic-gate #ifdef	__cplusplus
33*0Sstevel@tonic-gate extern "C" {
34*0Sstevel@tonic-gate #endif
35*0Sstevel@tonic-gate 
36*0Sstevel@tonic-gate typedef enum picl_smc_event {
37*0Sstevel@tonic-gate 	NO_EVENT = 0,
38*0Sstevel@tonic-gate 	TEMPERATURE_SENSOR_EVENT,
39*0Sstevel@tonic-gate 	CPU_NODE_STATE_CHANGE_NOTIFICATION,
40*0Sstevel@tonic-gate 	CHANGE_CPCI_STATE,	/* request to config/unconfig cpci i/f */
41*0Sstevel@tonic-gate 	CHANGE_CPU_NODE_STATE,	/* request on online/offline node */
42*0Sstevel@tonic-gate 	SMC_LOCAL_EVENT
43*0Sstevel@tonic-gate } picl_smc_event_t;
44*0Sstevel@tonic-gate 
45*0Sstevel@tonic-gate #define	SMC_NODE				"/dev/ctsmc"
46*0Sstevel@tonic-gate #define	SMC_BMC_ADDR				0x20
47*0Sstevel@tonic-gate #define	CPU_NODE_STATE_ONLINE			1
48*0Sstevel@tonic-gate #define	CPU_NODE_STATE_OFFLINE			0
49*0Sstevel@tonic-gate 
50*0Sstevel@tonic-gate /* event messages */
51*0Sstevel@tonic-gate #define	EVENT_MSG_AC_STATE_CHANGE		0xf5
52*0Sstevel@tonic-gate #define	EVENT_MSG_CHANGE_CPCI_STATE		0x65
53*0Sstevel@tonic-gate #define	EVENT_MSG_CHANGE_CPU_NODE_STATE		0x62
54*0Sstevel@tonic-gate #define	EVENT_MSG_ASYNC_EVENT_NOTIFICATION	0x82
55*0Sstevel@tonic-gate #define	MSG_GET_CPU_NODE_STATE			0x61
56*0Sstevel@tonic-gate #define	SMC_LOCAL_EVENT_BRIDGE_IN_RESET		0x00
57*0Sstevel@tonic-gate #define	SMC_LOCAL_EVENT_BRIDGE_OUT_OF_RESET	0x01
58*0Sstevel@tonic-gate #define	SMC_LOCAL_EVENT_LATCH_OPENED		0x06
59*0Sstevel@tonic-gate 
60*0Sstevel@tonic-gate #define	CPCI_STATE_OFFLINE			0
61*0Sstevel@tonic-gate #define	CPCI_STATE_ONLINE			1
62*0Sstevel@tonic-gate #define	SATCPU_STATE_ONLINE			0x7
63*0Sstevel@tonic-gate #define	SATCPU_STATE_OFFLINE			0x8
64*0Sstevel@tonic-gate #define	HEALTHY_ASSERT				1
65*0Sstevel@tonic-gate #define	HEALTHY_DEASSERT			2
66*0Sstevel@tonic-gate 
67*0Sstevel@tonic-gate #define	SMC_MASTER_RW_CMD			0x90
68*0Sstevel@tonic-gate #define	ENV_CONFIG_FILE "/usr/platform/%s/lib/picl/plugins/envmond.conf"
69*0Sstevel@tonic-gate #define	RECORD_MAXSIZE				(256)
70*0Sstevel@tonic-gate #define	RECORD_WHITESPACE			(": \t")
71*0Sstevel@tonic-gate #define	SERVICE_PROCESSOR			"alarmcard"
72*0Sstevel@tonic-gate 
73*0Sstevel@tonic-gate /* packet lengths */
74*0Sstevel@tonic-gate #define	ENV_RTM_PKT_LEN				3
75*0Sstevel@tonic-gate #define	ENV_SET_GLOBAL_PKT_LEN			2
76*0Sstevel@tonic-gate #define	ENV_SENSOR_EV_ENABLE_PKT_LEN		2
77*0Sstevel@tonic-gate #define	ENV_IPMI_SMC_ENABLE_PKT_LEN		3
78*0Sstevel@tonic-gate 
79*0Sstevel@tonic-gate /* rtm pkt data */
80*0Sstevel@tonic-gate #define	ENV_RTM_BUS_ID				7
81*0Sstevel@tonic-gate #define	ENV_RTM_SLAVE_ADDR			0xa0
82*0Sstevel@tonic-gate #define	ENV_RTM_READ_SIZE			0xa
83*0Sstevel@tonic-gate 
84*0Sstevel@tonic-gate /* global enables data */
85*0Sstevel@tonic-gate #define	ENV_IPMI_ENABLE_MASK			0x10
86*0Sstevel@tonic-gate #define	ENV_IPMI_DISABLE_MASK			0xef
87*0Sstevel@tonic-gate #define	ENV_SENSOR_ENABLE_MASK			0xfb
88*0Sstevel@tonic-gate #define	ENV_SENSOR_DISABLE_MASK			0x04
89*0Sstevel@tonic-gate 
90*0Sstevel@tonic-gate #ifdef	__cplusplus
91*0Sstevel@tonic-gate }
92*0Sstevel@tonic-gate #endif
93*0Sstevel@tonic-gate 
94*0Sstevel@tonic-gate #endif	/* _PICLDR_H */
95