opl_hwdesc.h revision 68ac2337c38c8af06edcf32a72e42de36ec72a9d
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (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 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_OPL_HWDESC_H
#define _SYS_OPL_HWDESC_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* Hardware Descriptor.
*/
/*
* Values for hwd_stat_t.
*/
#define HWD_STAT_FAILED 0x0080
/* is not used (even if it presents) */
#define HWD_STATUS_PRESENT(stat) \
#define HWD_STATUS_NONE(stat) \
#define HWD_VERSION_MAJOR 1
#define HWD_VERSION_MINOR 1
/*
* Hardware Descriptor Header.
*
* Some fields occur repeatedly in different structures:
*
* spare* This field is for future use.
*
* filler* This field is used to show alignment. This could also
* be used in the future for something.
*
* check_sum This contains the check sum of the structure it resides in.
*/
typedef struct {
struct hwdesc_version {
} hdr_version; /* structure version */
/*
* Domain Identifier. The OPL system can have
* upto 24 domains so domain id can be 0 - 23.
*/
char hdr_filler[3];
/*
* offsets from the beginning of the header to:
* - SB status information (hwd_sb_status_t)
* - domain information (hwd_domain_info_t)
* - SB information (hwd_sb_info_t).
*/
} hwd_header_t;
/*
* SB Status
*/
typedef struct {
/* PSB number of respective LSB */
/*
* SP -> Domain Information.
*/
typedef struct {
/*
* Specification of degeneracy operation of POST by XSCF
* 0x00: off
* 0x20: component
* 0x40: board
* 0x80: system
*/
/*
* Specification of diagnosis operation of POST by XSCF
* 0x00: off
* 0x20: min
* 0x40: max
*/
/*
* Specification of boot operation of OBP by XSCF
* 0x00: It follows other settings.
* 0x80: Auto boot is not done.
*/
char dinf_chassis_sn[16];
/*
* CPU Strand
*/
typedef struct {
char cpu_component_name[32];
} hwd_cpu_t;
/*
* CPU Core
*/
typedef struct {
char core_component_name[32];
} hwd_core_t;
/*
* CPU Chip
*/
typedef struct {
/*
* Jupiter Bus Device ID
* 0x0400, 0x0408, ... , 0x05f8
*/
/*
* SC
*/
typedef struct {
/*
* Top address of SC registers in this XSB
*/
} hwd_sc_t;
/*
* Bank
*/
typedef struct {
} hwd_bank_t;
/*
* Chunk
*/
typedef struct {
} hwd_chunk_t;
/*
* Dimm
*/
typedef struct {
} hwd_dimm_t;
/*
* CS
*/
typedef struct {
} hwd_cs_t;
/*
* Memory
*/
typedef struct {
/*
* Mirroring mode:
* 0x00 or 0x01
* 0x00 : not 'memory mirror mode'
* 0x01 : 'memory mirror mode'
*/
/*
* Memory configuration:
* 0x01 : 1 divided mode
* 0x02 : 2 divided mode
* 0x04 : 4 divided mode
*
* It is always set to 0x04 at the XSB mode.
*/
} hwd_memory_t;
typedef struct {
typedef struct {
} hwd_tty_t;
typedef struct {
typedef struct {
char fmem_component_name[32];
} hwd_fmem_t;
/*
* CMU CH
*/
typedef struct {
/*
* CMU_CH port ID
* LSB0 is 0x0008, LSB1 is 0x0018, ... , LSB15 is 0x00f8
*/
/*
* CMU
*/
typedef struct {
} hwd_cmu_t;
typedef struct {
char slot_name[16];
} hwd_slot_t;
/*
* IO Boat
*/
typedef struct {
char iob_component_name[32];
char iob_fru_name[32];
/*
* IO_Boat type
* 0x01 : PCI-X Slot Type
* 0x02 : PCI Express Slot Type
*/
/*
* Information of switch on IO_boat
* use only switch_status[0] when PCI-X type IO_boat
*/
/*
* Information of bridge on IO_boat
* use only when PCI-X type IO_boat
*/
/* IOU PCI Express Slot */
typedef struct {
typedef struct {
typedef struct {
char ioua_component_name[32];
char ioua_fru_name[32];
} hwd_ioua_t;
typedef struct {
typedef struct {
union {
} leaf_u;
} hwd_leaf_t;
/*
* PCI CH
*/
typedef struct {
char pci_component_name[32];
char pci_fru_name[32];
} hwd_pci_ch_t;
/*
* System Board
*/
typedef struct {
/*
* SB
*/
} hwd_sb_t;
#ifdef __cplusplus
}
#endif
#endif /* _SYS_OPL_HWDESC_H */