xref: /titanic_50/usr/src/uts/sun4u/sys/smc_commands.h (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate  */
26*7c478bd9Sstevel@tonic-gate 
27*7c478bd9Sstevel@tonic-gate #ifndef _SYS_SMC_COMMANDS_H
28*7c478bd9Sstevel@tonic-gate #define	_SYS_SMC_COMMANDS_H
29*7c478bd9Sstevel@tonic-gate 
30*7c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*7c478bd9Sstevel@tonic-gate 
32*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
33*7c478bd9Sstevel@tonic-gate extern "C" {
34*7c478bd9Sstevel@tonic-gate #endif
35*7c478bd9Sstevel@tonic-gate 
36*7c478bd9Sstevel@tonic-gate /* Address of BMC on IPMB */
37*7c478bd9Sstevel@tonic-gate #define	BMC_IPMB_ADDR	0x20
38*7c478bd9Sstevel@tonic-gate #define	SMC_CPCI_SLOT0_ADDR	0xB0
39*7c478bd9Sstevel@tonic-gate #define	SMC_CPCI_SLOT_ADDR(X)	(SMC_CPCI_SLOT0_ADDR + \
40*7c478bd9Sstevel@tonic-gate 		2 * ((X) - 1))
41*7c478bd9Sstevel@tonic-gate 
42*7c478bd9Sstevel@tonic-gate typedef struct ctsmc_code_ent {
43*7c478bd9Sstevel@tonic-gate 	uint8_t code;
44*7c478bd9Sstevel@tonic-gate 	char	*name;
45*7c478bd9Sstevel@tonic-gate } ctsmc_code_ent_t;
46*7c478bd9Sstevel@tonic-gate 
47*7c478bd9Sstevel@tonic-gate /*
48*7c478bd9Sstevel@tonic-gate  * Definition of Network Function Codes
49*7c478bd9Sstevel@tonic-gate  */
50*7c478bd9Sstevel@tonic-gate typedef enum {
51*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_CHASSIS_REQ = 0x0,
52*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_CHASSIS_RSP = 0x1,
53*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_BRIDGE_REQ = 0x2,
54*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_BRIDGE_RSP = 0x3,
55*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_SENSOR_REQ = 0x4,
56*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_SENSOR_RSP = 0x5,
57*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_APP_REQ = 0x6,
58*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_APP_RSP = 0x7,
59*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_FIRMWARE_REQ = 0x8,
60*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_FIRMWARE_RSP = 0x9,
61*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_STORAGE_REQ = 0xA,
62*7c478bd9Sstevel@tonic-gate 	SMC_NETFN_STORAGE_RSP = 0xB
63*7c478bd9Sstevel@tonic-gate } smc_netfn_t;
64*7c478bd9Sstevel@tonic-gate 
65*7c478bd9Sstevel@tonic-gate /*
66*7c478bd9Sstevel@tonic-gate  * Definition of Completion codes
67*7c478bd9Sstevel@tonic-gate  */
68*7c478bd9Sstevel@tonic-gate typedef enum {
69*7c478bd9Sstevel@tonic-gate 	SMC_CC_SUCCESS	 = 0x00,
70*7c478bd9Sstevel@tonic-gate 	SMC_CC_NODE_BUSY = 0xC0,
71*7c478bd9Sstevel@tonic-gate 	SMC_CC_INVALID_COMMAND = 0xC1,
72*7c478bd9Sstevel@tonic-gate 	SMC_CC_INVALID_COMMAND_ON_LUN = 0xC2,
73*7c478bd9Sstevel@tonic-gate 	SMC_CC_TIMEOUT = 0xC3,
74*7c478bd9Sstevel@tonic-gate 	SMC_CC_RESOURCE_NOTAVAIL = 0xC4,
75*7c478bd9Sstevel@tonic-gate 	SMC_CC_RESERVATION = 0xC5,
76*7c478bd9Sstevel@tonic-gate 	SMC_CC_REQ_TRUNC = 0xC6,
77*7c478bd9Sstevel@tonic-gate 	SMC_CC_REQLEN_NOTVALID = 0xC7,
78*7c478bd9Sstevel@tonic-gate 	SMC_CC_REQLEN_EXCEED = 0xC8,
79*7c478bd9Sstevel@tonic-gate 	SMC_CC_PARAM_OUT_OF_RANGE = 0xC9,
80*7c478bd9Sstevel@tonic-gate 	SMC_CC_REQUEST_BYTES_FAILED = 0xCA,
81*7c478bd9Sstevel@tonic-gate 	SMC_CC_NOT_PRESENT = 0xCB,
82*7c478bd9Sstevel@tonic-gate 	SMC_CC_INVALID_FIELD = 0xCC,
83*7c478bd9Sstevel@tonic-gate 	SMC_CC_ILLEGAL_COMMAND = 0xCD,
84*7c478bd9Sstevel@tonic-gate 	SMC_CC_RESPONSE_FAILED = 0xCE,
85*7c478bd9Sstevel@tonic-gate 	SMC_CC_DUPLICATE_REQUEST = 0xCF,
86*7c478bd9Sstevel@tonic-gate 	SMC_CC_SDR_UPDATE_MODE = 0xD0,
87*7c478bd9Sstevel@tonic-gate 	SMC_CC_FIRMWARE_UPDATE_MODE = 0xD1,
88*7c478bd9Sstevel@tonic-gate 	SMC_CC_INIT_IN_PROGRESS = 0xD2,
89*7c478bd9Sstevel@tonic-gate 	SMC_CC_UNSPECIFIED_ERROR = 0xFF
90*7c478bd9Sstevel@tonic-gate } smc_cc_t;
91*7c478bd9Sstevel@tonic-gate 
92*7c478bd9Sstevel@tonic-gate typedef enum {
93*7c478bd9Sstevel@tonic-gate 	SMC_BMC_LUN,
94*7c478bd9Sstevel@tonic-gate 	SMC_OEM1_LUN,
95*7c478bd9Sstevel@tonic-gate 	SMC_SMS_LUN,
96*7c478bd9Sstevel@tonic-gate 	SMC_OEM2_LUN
97*7c478bd9Sstevel@tonic-gate } smc_lun_t;
98*7c478bd9Sstevel@tonic-gate 
99*7c478bd9Sstevel@tonic-gate /*
100*7c478bd9Sstevel@tonic-gate  * App command codes for commands/event notifications etc.
101*7c478bd9Sstevel@tonic-gate  */
102*7c478bd9Sstevel@tonic-gate typedef enum {
103*7c478bd9Sstevel@tonic-gate 	SMC_GET_DEVICE_ID = 0x01,
104*7c478bd9Sstevel@tonic-gate 	SMC_COLD_RESET = 0x02,
105*7c478bd9Sstevel@tonic-gate 	SMC_WARM_RESET = 0x03,
106*7c478bd9Sstevel@tonic-gate 	SMC_GET_SELFTEST_RESULTS = 0x04,
107*7c478bd9Sstevel@tonic-gate 	SMC_MANUFACTURING_TEST_ON = 0x05,
108*7c478bd9Sstevel@tonic-gate 	SMC_SET_ACPI_POWER_STATE = 0x06,
109*7c478bd9Sstevel@tonic-gate 	SMC_GET_ACPI_POWER_STATE = 0x07,
110*7c478bd9Sstevel@tonic-gate 	SMC_GET_DEVICE_GUID = 0x08,
111*7c478bd9Sstevel@tonic-gate 	SMC_RESET_WATCHDOG_TIMER = 0x22,
112*7c478bd9Sstevel@tonic-gate 	SMC_EXPIRED_WATCHDOG_NOTIF = 0x23,	/* Sent by driver */
113*7c478bd9Sstevel@tonic-gate 	SMC_SET_WATCHDOG_TIMER = 0x24,
114*7c478bd9Sstevel@tonic-gate 	SMC_GET_WATCHDOG_TIMER = 0x25,
115*7c478bd9Sstevel@tonic-gate 	SMC_SET_GLOBAL_ENABLES = 0x2E,
116*7c478bd9Sstevel@tonic-gate 	SMC_GET_GLOBAL_ENABLES = 0x2F,
117*7c478bd9Sstevel@tonic-gate 	SMC_CLEAR_MESSAGE_FLAGS = 0x30,
118*7c478bd9Sstevel@tonic-gate 	SMC_GET_MESSAGE_FLAGS = 0x31,
119*7c478bd9Sstevel@tonic-gate 	SMC_ENABLE_MESSAGE_CHANNEL_RECEIVE = 0x32,
120*7c478bd9Sstevel@tonic-gate 	SMC_GET_MESSAGE = 0x33,
121*7c478bd9Sstevel@tonic-gate 	SMC_SEND_MESSAGE = 0x34,
122*7c478bd9Sstevel@tonic-gate 	SMC_READ_EVENT_MSG_BUFFER = 0x35,
123*7c478bd9Sstevel@tonic-gate 	SMC_SEND_TO_EVENT_MSG_BUFFER = 0x36,	/* Changed from IPMI */
124*7c478bd9Sstevel@tonic-gate 	SMC_MASTER_WR_RD_I2C = 0x52,
125*7c478bd9Sstevel@tonic-gate 	SMC_GET_GEOGRAPHICAL_ADDRESS = 0x55,
126*7c478bd9Sstevel@tonic-gate 	SMC_GET_BACKPLANE_TYPE = 0x57,
127*7c478bd9Sstevel@tonic-gate 	SMC_SELECT_MEMORY_DEVICE = 0x60,
128*7c478bd9Sstevel@tonic-gate 	SMC_READ_SELECTED_MEMORY_DEVICE = 0x61,
129*7c478bd9Sstevel@tonic-gate 	SMC_READ_MEMORY_DEVICE = 0x62,
130*7c478bd9Sstevel@tonic-gate 	SMC_WRITE_SELECTED_MEMORY_DEVICE = 0x63,
131*7c478bd9Sstevel@tonic-gate 	SMC_WRITE_MEMORY_DEVICE = 0x64,
132*7c478bd9Sstevel@tonic-gate 	SMC_ERASE_SELECTED_MEMORY_DEVICE = 0x65,
133*7c478bd9Sstevel@tonic-gate 	SMC_LOCK_UNLOCK_SELECTED_MEMORY = 0x66,
134*7c478bd9Sstevel@tonic-gate 	SMC_COMPUTE_CRC16_OF_SELECTED_MEMORY_DEVICE = 0x67,
135*7c478bd9Sstevel@tonic-gate 	SMC_COMPUTE_CRC16_OF_MEMORY_DEVICE = 0x68,
136*7c478bd9Sstevel@tonic-gate 	SMC_FILL_MEMORY_DEVICE = 0x6a,
137*7c478bd9Sstevel@tonic-gate 	SMC_QUERY_FIRMWARE_VERSION = 0x6f,
138*7c478bd9Sstevel@tonic-gate 	SMC_RESET_DEVICE = 0x70,
139*7c478bd9Sstevel@tonic-gate 	SMC_GET_ROLE_INFO = 0x71,
140*7c478bd9Sstevel@tonic-gate 	SMC_GET_FLASH_AND_BOOT_VERSION = 0x72,
141*7c478bd9Sstevel@tonic-gate 	SMC_GET_LOCAL_HA_SIGNAL_STATUS = 0x73,
142*7c478bd9Sstevel@tonic-gate 	SMC_SELECT_HA_HOTSWAP_MODE = 0x80,
143*7c478bd9Sstevel@tonic-gate 	SMC_GET_HA_HOTSWAP_SIGNAL_STATE = 0x81,
144*7c478bd9Sstevel@tonic-gate 	SMC_SET_HA_HOTSWAP_SIGNAL_STATE = 0x82,
145*7c478bd9Sstevel@tonic-gate 	SMC_NOTIFY_SMC_OF_HOST_HEALTH = 0x83,
146*7c478bd9Sstevel@tonic-gate 	SMC_TURN_ON_OFF_BLUE_LED = 0x84,
147*7c478bd9Sstevel@tonic-gate 	SMC_GET_EXECUTION_STATE = 0x85,
148*7c478bd9Sstevel@tonic-gate 	SMC_GET_SMC_UPTIME = 0x86,
149*7c478bd9Sstevel@tonic-gate 	SMC_ENUM_NOTIF = 0x87,
150*7c478bd9Sstevel@tonic-gate 	SMC_IPMI_RESPONSE_NOTIF = 0x88,
151*7c478bd9Sstevel@tonic-gate 	SMC_SET_INTERFACE_TIMEOUT = 0x89,
152*7c478bd9Sstevel@tonic-gate 	SMC_GET_INTERFACE_TIMEOUT = 0x8A,
153*7c478bd9Sstevel@tonic-gate 	SMC_SMC_LOCAL_EVENT_NOTIF = 0x8B,
154*7c478bd9Sstevel@tonic-gate 	SMC_GET_DEVICE_TABLE_DATA = 0x8C,
155*7c478bd9Sstevel@tonic-gate 	SMC_IPMI_MASTER_WR_RD_I2C = 0x90,
156*7c478bd9Sstevel@tonic-gate 	SMC_GET_SMC_SELF_TEST_RESULT = 0xA0,
157*7c478bd9Sstevel@tonic-gate 	SMC_READ_SMC_PLD_REGISTER = 0xA1,
158*7c478bd9Sstevel@tonic-gate 	SMC_WRITE_SMC_PLD_REGISTER = 0xA2,
159*7c478bd9Sstevel@tonic-gate 	SMC_SET_ROLE = 0xC0,
160*7c478bd9Sstevel@tonic-gate 	SMC_SET_CPCI_INTMASK = 0xC1,
161*7c478bd9Sstevel@tonic-gate 	SMC_GET_CPCI_INTMASK = 0xC2,
162*7c478bd9Sstevel@tonic-gate 	SMC_EEPROM_WRITE = 0xC3,
163*7c478bd9Sstevel@tonic-gate 	SMC_EEPROM_READ = 0xC4,
164*7c478bd9Sstevel@tonic-gate 	SMC_SET_STATE = 0xDE,
165*7c478bd9Sstevel@tonic-gate 	SMC_GET_STATE = 0xDF,
166*7c478bd9Sstevel@tonic-gate 	SMC_SET_DHCP_CLIENT_ID = 0xE1,
167*7c478bd9Sstevel@tonic-gate 	SMC_GET_DHCP_CLIENT_ID = 0xE2,
168*7c478bd9Sstevel@tonic-gate 	SMC_DEV_SDR_REPOSITORY_RESERVE = 0xE3,
169*7c478bd9Sstevel@tonic-gate 	SMC_FRU_INVENTORY_AREA_INFO_GET = 0xE4,
170*7c478bd9Sstevel@tonic-gate 	SMC_SET_BANNER = 0xE5,
171*7c478bd9Sstevel@tonic-gate 	SMC_GET_BANNER = 0xE6,
172*7c478bd9Sstevel@tonic-gate 	SMC_SEND_ASYNC_SEL_CMD_TO_HOST = 0xE7,
173*7c478bd9Sstevel@tonic-gate 	SMC_MASTER_WR_RD_I2C_2 = 0xE9,
174*7c478bd9Sstevel@tonic-gate 	SMC_GET_BUFFER_BLOCK_ALLOC_TABLE = 0xEA,
175*7c478bd9Sstevel@tonic-gate 	SMC_GET_BUFFER_ALLOC_TABLE = 0xEB,
176*7c478bd9Sstevel@tonic-gate 	SMC_GET_SFRS = 0xEC,
177*7c478bd9Sstevel@tonic-gate 	SMC_GET_PORT_VALUE = 0xED,
178*7c478bd9Sstevel@tonic-gate 	SMC_GET_BUFFER_DATA = 0xEE,
179*7c478bd9Sstevel@tonic-gate 	SMC_GET_PCB_DATA = 0xEF,
180*7c478bd9Sstevel@tonic-gate 	SMC_GET_PCB_BLOCK_ALLOC_TABLE = 0xF0,
181*7c478bd9Sstevel@tonic-gate 	SMC_GET_PCB_TABLE = 0xF1,
182*7c478bd9Sstevel@tonic-gate 	SMC_DEVICE_SDR_INFO_GET = 0xF2,
183*7c478bd9Sstevel@tonic-gate 	SMC_DEVICE_SDR_GET = 0xF3,
184*7c478bd9Sstevel@tonic-gate 	SMC_SENSOR_EVENT_ENABLE_GET = 0xF4,
185*7c478bd9Sstevel@tonic-gate 	SMC_SENSOR_EVENT_ENABLE_SET = 0xF5,
186*7c478bd9Sstevel@tonic-gate 	SMC_GET_CONFIG_BLOCK = 0xF8,
187*7c478bd9Sstevel@tonic-gate 	SMC_SET_CONFIG_BLOCK = 0xF9,
188*7c478bd9Sstevel@tonic-gate 	SMC_SET_VOLTAGE = 0xFB,
189*7c478bd9Sstevel@tonic-gate 	SMC_SENSOR_READING_GET = 0xFC,
190*7c478bd9Sstevel@tonic-gate 	SMC_SENSOR_THRESHOLD_GET = 0xFD,
191*7c478bd9Sstevel@tonic-gate 	SMC_SENSOR_THRESHOLD_SET = 0xFE,
192*7c478bd9Sstevel@tonic-gate 	SMC_CND_OF_CMD_MARKER = 0xFF
193*7c478bd9Sstevel@tonic-gate } smc_app_command_t;
194*7c478bd9Sstevel@tonic-gate 
195*7c478bd9Sstevel@tonic-gate typedef enum {
196*7c478bd9Sstevel@tonic-gate 	SMC_GET_CHASSIS_STATUS = 0x01,
197*7c478bd9Sstevel@tonic-gate 	SMC_CHASSIS_CONTROL = 0x02,
198*7c478bd9Sstevel@tonic-gate 	SMC_GET_POH_COUNTER = 0x0F
199*7c478bd9Sstevel@tonic-gate } smc_chassis_command_t;
200*7c478bd9Sstevel@tonic-gate 
201*7c478bd9Sstevel@tonic-gate typedef enum {
202*7c478bd9Sstevel@tonic-gate 	SMC_SET_EVENT_RECEIVER = 0x00,
203*7c478bd9Sstevel@tonic-gate 	SMC_GET_EVENT_RECEIVER = 0x01,
204*7c478bd9Sstevel@tonic-gate 	SMC_PLATFORM_EVENT_MESSAGE = 0x02
205*7c478bd9Sstevel@tonic-gate } smc_event_command_t;
206*7c478bd9Sstevel@tonic-gate 
207*7c478bd9Sstevel@tonic-gate typedef enum {
208*7c478bd9Sstevel@tonic-gate 	SMC_GET_SEL_INFO = 0x40,
209*7c478bd9Sstevel@tonic-gate 	SMC_GET_SEL_ALLOCATION_INFO = 0x41,
210*7c478bd9Sstevel@tonic-gate 	SMC_RESERVE_SEL = 0x42,
211*7c478bd9Sstevel@tonic-gate 	SMC_GET_SEL_ENTRY = 0x43,
212*7c478bd9Sstevel@tonic-gate 	SMC_ADD_SEL_ENTRY = 0x44,
213*7c478bd9Sstevel@tonic-gate 	SMC_PARTIAL_ADD_SEL_ENTRY = 0x45,
214*7c478bd9Sstevel@tonic-gate 	SMC_DELETE_SEL_ENTRY = 0x46,
215*7c478bd9Sstevel@tonic-gate 	SMC_CLEAR_SEL = 0x47,
216*7c478bd9Sstevel@tonic-gate 	SMC_GET_SEL_TIME = 0x48,
217*7c478bd9Sstevel@tonic-gate 	SMC_SET_SEL_TIME = 0x49
218*7c478bd9Sstevel@tonic-gate } smc_sel_command_t;
219*7c478bd9Sstevel@tonic-gate 
220*7c478bd9Sstevel@tonic-gate typedef enum {
221*7c478bd9Sstevel@tonic-gate 	SMC_GET_SDR_REPOSITORY_INFO = 0x20,
222*7c478bd9Sstevel@tonic-gate 	SMC_GET_SDR_REPOSITORY_ALLOCATION_INFO = 0x21,
223*7c478bd9Sstevel@tonic-gate 	SMC_RESERVE_SDR_REPOSITORY = 0x22,
224*7c478bd9Sstevel@tonic-gate 	SMC_GET_SDR = 0x23,
225*7c478bd9Sstevel@tonic-gate 	SMC_ADD_SDR = 0x24,
226*7c478bd9Sstevel@tonic-gate 	SMC_PARTIAL_ADD_SDR = 0x25,
227*7c478bd9Sstevel@tonic-gate 	SMC_DELETE_SDR = 0x26,
228*7c478bd9Sstevel@tonic-gate 	SMC_CLEAR_SDR_REPOSITORY = 0x27,
229*7c478bd9Sstevel@tonic-gate 	SMC_GET_SDR_REPOSITORY_TIME = 0x28,
230*7c478bd9Sstevel@tonic-gate 	SMC_SET_SDR_REPOSITORY_TIME = 0x29,
231*7c478bd9Sstevel@tonic-gate 	SMC_ENTER_SDR_REPOSITORY_UPDATE_MODE = 0x2A,
232*7c478bd9Sstevel@tonic-gate 	SMC_EXIT_SDR_REPOSITORY_UPDATE_MODE = 0x2B,
233*7c478bd9Sstevel@tonic-gate 	SMC_RUN_INITIALIZATION_AGENT = 0x2C
234*7c478bd9Sstevel@tonic-gate } smc_sdr_repository_command_t;
235*7c478bd9Sstevel@tonic-gate 
236*7c478bd9Sstevel@tonic-gate typedef enum {
237*7c478bd9Sstevel@tonic-gate 	SMC_GET_FRU_INVENTORY_AREA_INFO = 0x10,
238*7c478bd9Sstevel@tonic-gate 	SMC_READ_FRU_INVENTORY_DATA = 0x11,
239*7c478bd9Sstevel@tonic-gate 	SMC_WRITE_FRU_INVENTORY_DATA = 0x12
240*7c478bd9Sstevel@tonic-gate } smc_fru_inventory_device_command_t;
241*7c478bd9Sstevel@tonic-gate 
242*7c478bd9Sstevel@tonic-gate typedef enum {
243*7c478bd9Sstevel@tonic-gate 	SMC_GET_DEVICE_SDR_INFO = 0x20,
244*7c478bd9Sstevel@tonic-gate 	SMC_GET_DEVICE_SDR = 0x21,
245*7c478bd9Sstevel@tonic-gate 	SMC_RESERVE_DEVICE_SDR_REPOSITORY = 0x22,
246*7c478bd9Sstevel@tonic-gate 	SMC_GET_SENSOR_READING_FACTORS = 0x23,
247*7c478bd9Sstevel@tonic-gate 	SMC_SET_SENSOR_HYSTERESIS = 0x24,
248*7c478bd9Sstevel@tonic-gate 	SMC_GET_SENSOR_HYSTERESIS = 0x25,
249*7c478bd9Sstevel@tonic-gate 	SMC_SET_SENSOR_THRESHOLD = 0x26,
250*7c478bd9Sstevel@tonic-gate 	SMC_GET_SENSOR_THRESHOLD = 0x27,
251*7c478bd9Sstevel@tonic-gate 	SMC_SET_SENSOR_EVENT_ENABLE = 0x28,
252*7c478bd9Sstevel@tonic-gate 	SMC_GET_SENSOR_EVENT_ENABLE = 0x29,
253*7c478bd9Sstevel@tonic-gate 	SMC_REARM_SENSOR_EVENTS = 0x2A,
254*7c478bd9Sstevel@tonic-gate 	SMC_GET_SENSOR_EVENT_STATUS = 0x2B,
255*7c478bd9Sstevel@tonic-gate 	/* RESERVED */
256*7c478bd9Sstevel@tonic-gate 	SMC_GET_SENSOR_READING = 0x2D,
257*7c478bd9Sstevel@tonic-gate 	SMC_SET_SENSOR_TYPE = 0x2E,
258*7c478bd9Sstevel@tonic-gate 	SMC_GET_SENSOR_TYPE = 0x2F
259*7c478bd9Sstevel@tonic-gate } smc_sensor_device_command_t;
260*7c478bd9Sstevel@tonic-gate 
261*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
262*7c478bd9Sstevel@tonic-gate }
263*7c478bd9Sstevel@tonic-gate #endif
264*7c478bd9Sstevel@tonic-gate 
265*7c478bd9Sstevel@tonic-gate #endif	/* _SYS_SMC_COMMANDS_H */
266