/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 1999-2002 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_LOM_EBUSCODES_H
#define _SYS_LOM_EBUSCODES_H
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* This file enumerates the virtual registers exported by the microcontroller.
* It cannot be changed without also revising the firwmare.
*/
#ifdef __cplusplus
extern "C" {
#endif
/* boot script */
/*
* Read only values
*/
/* RESERVED 0x0d */
/* RESERVED 0x0e */
/* RESERVED 0x0f */
/*
* We currently don't have a virtual register to indicate the end of the log.
* We cannot assume the log runs to the end of the EEPROM because the EEPROM
* is logically partitioned into a Log portion (first 8K) and then a FRUID
* portion (next 8K). For the moment we therefore need to use a hardcoded
* value to represent the end of the event log.
*/
/* RESERVED 0x16 */
/* RESERVED 0x17 */
/* RESERVED 0x2d */
/*
*/
/* RESERVED 0x4f */
/* RESERVED 0x6c */
/* RESERVED 0x6d */
/* RESERVED 0x6e */
/* RESERVED 0x6f */
/* RESERVED 0x70 */
/* RESERVED 0x71 */
/* RESERVED 0x72 */
/* RESERVED 0x73 */
/* RESERVED 0x74 */
/* RESERVED 0x75 */
/* RESERVED 0x76 */
/* RESERVED 0x77 */
/* RESERVED 0x78 */
/* RESERVED 0x79 */
/* RESERVED 0x7a */
/*
* Capability bits:
*
* Register starting from 0x7e and downward are used to describe various
* capabilities that the LOM firmware has. A capability is present if the
* corresponding bit returns '1'.
*/
/*
* Register for special address spaces
*/
/*
* This arrangement for CPU signatures allows only one CPU to generate a
* CPU Signature at a time. Since the signature won't fit into one byte
* it is recommended to datafill the MSB, LSB, STATE, SUBSTATE first, and
* then write the ID. A one byte ID limits the number of CPUs to 255.
* CPU 255 is handled specially; it denotes that the signature applies to
* "all", or rather "any" CPU ID.
*/
/*
* OBP-defined reset reasons. Solaris never generates these.
*/
/*
* I2C Transfers can be done using the BSC as a proxy. We transfer data at
* the conceptual level of struct i2c_transfer defined by the i2c services
* framework in Solaris.
*/
/*
* TRANSFER_TYPE mirrors the i2c_transfer.i2c_flags used in Solaris i2c
* services framework.
*/
/*
* RESULT mirrors the i2c_transfer.i2c_result used the Solaris i2c services
* framework.
*/
/* so multi i2c transactions */
/* can complete atomically */
/*
* Command register and codes
*/
/*
* space 11 - CPU signatures and OBP reset information.
*/
/*
* Number of unread events flag
*/
/*
* Prom boot mode parameters
*/
/*
* Configuration register
*/
/*
* Configuration register 2
*/
/*
* Configuration register 3
*/
/*
* Miscellaneous host configuration register
*/
/*
*/
/*
* General Channel Watchdog control
*/
/*
* Watchdog channel non-blocking byte
* Top nibble command, bottom nibble data
*/
/*
* PSU status
*/
/*
* State change flags
*/
/*
* Bit-0 is overloaded. It is used by the BSC to notify of a status change
* The detail field will then be one of EBUS_DETAIL_XXXX. Otherwise, it's used
* to indicate that an Alarm state has changed. The detail field would then
* be the alarm number.
*/
/*
* State Notify detail values
*/
/*
* Alarm config bytes for register $20
*/
/*
* Phone home configuration information
*/
/*
* CPU type ident codes. This determines the programming mode.
*/
/*
* Capability codes
*/
/* Error codes as returned via the EBUS interface */
/* Magic values for specific registers. */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_LOM_EBUSCODES_H */