sbbcreg.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* 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
* or http://www.opensolaris.org/os/licensing.
* 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 (c) 1999-2000 by Sun Microsystems, Inc.
* All rights reserved.
*/
#ifndef _SYS_SBBCREG_H
#define _SYS_SBBCREG_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* Register definitions for SBBC, a PCI device.
*/
#define SBBC_SC_MODE 0x00000020
typedef struct pad12 {
uint32_t pad[3];
}pad12_t;
/*
* SBBC registers.
*/
struct sbbc_regs_map {
uint32_t devid; /* 0x0.0000 All, device ID */
pad12_t pada;
uint32_t devtemp; /* 0x0.0010 All */
pad12_t padb;
uint32_t incon_scratch; /* 0x0.0020 All */
pad12_t padc;
uint32_t incon_tstl1; /* 0x0.0030 AR and SDC */
pad12_t padd;
uint32_t incon_tsterr; /* 0x0.0040 AR and SDC */
pad12_t pade;
uint32_t device_conf; /* 0x0.0050 All, device configuration */
pad12_t padf;
uint32_t device_rstcntl; /* 0x0.0060 SBBC,AR,dev reset control */
pad12_t padg;
uint32_t device_rststat; /* 0x0.0070 All, device reset status */
pad12_t padh;
uint32_t device_errstat; /* 0x0.0080 SBBC, device reset */
pad12_t padi;
uint32_t device_errcntl; /* 0x0.0090 SBBC,device error control */
pad12_t padj;
uint32_t jtag_cntl; /* 0x0.00a0 SBBC and SDC,JTAG control */
pad12_t padk;
uint32_t jtag_cmd; /* 0x0.00b0 SBBC and SDC,JTAG command */
pad12_t padl;
uint32_t i2c_addrcmd; /* 0x0.00c0 SBBC,I2C addr and command */
pad12_t padm;
uint32_t i2c_data; /* 0x0.00d0 SBBC, I2C data */
pad12_t padn;
uint32_t pci_errstat; /* 0x0.00e0 SBBC, PCI error status */
pad12_t pad2[45];
uint32_t consbus_conf; /* 0x0.0300 All */
pad12_t pado;
uint32_t consbus_erraddr; /* 0x0.0310 SBBC */
pad12_t padp;
uint32_t consbus_errack; /* 0x0.0320 SBBC */
pad12_t pad4[18];
uint32_t pad5;
uint32_t consbus_port0_err; /* 0x0.0400 All */
pad12_t pad6[19];
uint32_t pad7[2];
uint32_t consbus_part_dom_err; /* 0x0.04f0 SBBC and CBH */
pad12_t pad8[235];
uint32_t pad8a[2];
uint32_t sbbc_synch; /* 0x0.1000 SBBC */
pad12_t padq[20];
uint32_t padqa[3];
uint32_t dev_access_tim0; /* 0x0.1100 SBBC */
pad12_t padr;
uint32_t dev_access_tim1; /* 0x0.1110 SBBC */
pad12_t pads;
uint32_t dev_access_tim2; /* 0x0.1120 SBBC */
pad12_t padt;
uint32_t dev_access_tim3; /* 0x0.1130 SBBC */
pad12_t padu;
uint32_t dev_access_tim4; /* 0x0.1140 SBBC */
pad12_t padv;
uint32_t dev_access_tim5; /* 0x0.1150 SBBC */
pad12_t pad9[14];
uint32_t pad9a[1];
uint32_t spare_in_out; /* 0x0.1200 SBBC */
pad12_t pad10[127];
uint32_t pad10a[2];
uint32_t monitor_cntl; /* 0x0.1800 SBBC */
pad12_t pad11[170];
uint32_t pad11a[1];
uint32_t port_intr_gen0; /* 0x0.2000 SBBC */
pad12_t padw;
uint32_t port_intr_gen1; /* 0x0.2010 SBBC */
pad12_t padx;
uint32_t syscntlr_intr_gen; /* 0x0.2020 SBBC */
pad12_t pad12[61];
uint32_t sys_intr_status; /* 0x0.2300 SBBC */
pad12_t pady;
uint32_t sys_intr_enable; /* 0x0.2310 SBBC */
pad12_t padz;
uint32_t pci_intr_status; /* 0x0.2320 SBBC */
pad12_t padaa;
uint32_t pci_intr_enable; /* 0x0.2330 SBBC */
pad12_t pad13[614];
uint32_t pad13a[1];
uint32_t pci_to_consbus_map; /* 0x0.4000 SBBC */
pad12_t padab;
uint32_t consbus_to_pci_map; /* 0x0.4010 SBBC */
};
/*
* SSC DEV presence registers
*/
struct ssc_devpresence_regs_map {
uint8_t devpres_reg0;
uint8_t devpres_reg1;
uint8_t devpres_reg2;
uint8_t devpres_reg3;
uint8_t devpres_reg4;
uint8_t devpres_reg5;
uint8_t devpres_reg6;
uint8_t devpres_reg7;
uint8_t devpres_reg8;
uint8_t devpres_reg9;
uint8_t devpres_rega;
uint8_t devpres_regb;
};
/*
* EChip
* 0088.0000 - 0089.FFFF
*/
struct ssc_echip_regs {
uint8_t offset[0x20000];
};
/*
* Device Presence
* 008A.0000 - 008B.FFFF
*/
struct ssc_devpresence_regs {
uint8_t offset[0x20000];
};
/*
* I2C Mux
* 008C.0000 - 008D.FFFF
*/
struct ssc_i2cmux_regs {
uint8_t offset[0x20000];
};
/*
* Error Interrupts Status and Control
* 008E.0000 - 008F.FFFF
*/
struct ssc_errintr_statcntl_regs {
uint8_t offset[0x20000];
};
/*
* Console Bus Window
* 0400.0000 - 07FF.FFFF
*/
struct ssc_console_bus {
uint8_t offset[0x4000000];
};
/*
* SSC EILD registers
*/
struct ssc_eild_reg_map {
uint8_t darb_intr;
uint8_t darb_intr_mask;
uint8_t sbbc_cons_err;
uint8_t sbbc_cons_err_mask;
uint8_t pwr_supply;
};
/*
* PCI SBBC slave mapping
*/
struct pci_sbbc {
uint8_t fprom[0x800000]; /* FPROM */
struct sbbc_regs_map sbbc_internal_regs; /* sbbc registers */
uint8_t dontcare[0x7BFEC]; /* non-sbbc registers */
struct ssc_echip_regs echip_regs;
struct ssc_devpresence_regs devpres_regs;
struct ssc_i2cmux_regs i2cmux_regs;
struct ssc_errintr_statcntl_regs errintr_scntl_regs;
uint8_t sram[0x100000];
uint8_t reserved[0x3600000];
struct ssc_console_bus consbus;
};
/*
* SBBC registers.
*/
struct sbbc_common_devregs {
uint32_t devid; /* All, device ID */
uint32_t devtemp; /* All */
uint32_t incon_scratch; /* All */
uint32_t incon_tstl1; /* AR and SDC */
uint32_t incon_tsterr; /* AR and SDC */
uint32_t device_conf; /* All, device configuration */
uint32_t device_rstcntl; /* SBBC and AR, dev reset control */
uint32_t device_rststat; /* All, device reset status */
uint32_t device_errstat; /* SBBC, device reset */
uint32_t device_errcntl; /* SBBC, device error control */
uint32_t jtag_cntl; /* SBBC and SDC, JTAG control */
uint32_t jtag_cmd; /* SBBC and SDC, JTAG command */
uint32_t i2c_addrcmd; /* SBBC, I2C address and command */
uint32_t i2c_data; /* SBBC, I2C data */
uint32_t pci_errstat; /* SBBC, PCI error status */
uint32_t domain_conf; /* CBH */
uint32_t safari_port0_conf; /* AR and SDC */
uint32_t safari_port1_conf; /* AR and SDC */
uint32_t safari_port2_conf; /* AR and SDC */
uint32_t safari_port3_conf; /* AR and SDC */
uint32_t safari_port4_conf; /* AR and SDC */
uint32_t safari_port5_conf; /* AR and SDC */
uint32_t safari_port6_conf; /* AR and SDC */
uint32_t safari_port7_conf; /* AR and SDC */
uint32_t safari_port8_conf; /* AR and SDC */
uint32_t safari_port9_conf; /* AR and SDC */
uint32_t safari_port0_err; /* AR and SDC */
uint32_t safari_port1_err; /* AR and SDC */
uint32_t safari_port2_err; /* AR and SDC */
uint32_t safari_port3_err; /* AR and SDC */
uint32_t safari_port4_err; /* AR and SDC */
uint32_t safari_port5_err; /* AR and SDC */
uint32_t safari_port6_err; /* AR and SDC */
uint32_t safari_port7_err; /* AR and SDC */
uint32_t safari_port8_err; /* AR and SDC */
uint32_t safari_port9_err; /* AR and SDC */
uint32_t consbus_conf; /* All */
uint32_t consbus_erraddr; /* SBBC */
uint32_t consbus_errack; /* SBBC */
uint32_t consbus_errinj0; /* CBH */
uint32_t consbus_errinj1; /* CBH */
uint32_t consbus_port0_err; /* All */
uint32_t consbus_port1_err; /* SDC and CBH */
uint32_t consbus_port2_err; /* SDC and CBH */
uint32_t consbus_port3_err; /* SDC and CBH */
uint32_t consbus_port4_err; /* SDC and CBH */
uint32_t consbus_port5_err; /* CBH */
uint32_t consbus_port6_err; /* CBH */
uint32_t consbus_port7_err; /* CBH */
uint32_t consbus_port8_err; /* CBH */
uint32_t consbus_port9_err; /* CBH */
uint32_t consbus_porta_err; /* CBH */
uint32_t consbus_portb_err; /* CBH */
uint32_t consbus_portc_err; /* CBH */
uint32_t consbus_portd_err; /* CBH */
uint32_t consbus_porte_err; /* CBH */
uint32_t consbus_part_dom_err; /* SBBC and CBH */
uint32_t sbbc_synch; /* SBBC */
uint32_t dev_access_tim0; /* SBBC */
uint32_t dev_access_tim1; /* SBBC */
uint32_t dev_access_tim2; /* SBBC */
uint32_t dev_access_tim3; /* SBBC */
uint32_t dev_access_tim4; /* SBBC */
uint32_t dev_access_tim5; /* SBBC */
uint32_t spare_in_out; /* SBBC */
uint32_t monitor_cntl; /* SBBC */
uint32_t port_intr_gen0; /* SBBC */
uint32_t port_intr_gen1; /* SBBC */
uint32_t syscntlr_intr_gen; /* SBBC */
uint32_t sys_intr_status; /* SBBC */
uint32_t sys_intr_enable; /* SBBC */
uint32_t pci_intr_status; /* SBBC */
uint32_t pci_intr_enable; /* SBBC */
uint32_t pci_to_consbus_map; /* SBBC */
uint32_t consbus_to_pci_map; /* SBBC */
uint32_t scm_consbus_addrmap; /* CBH */
uint32_t ar_slot0_trans_cnt; /* AR */
uint32_t ar_slot1_trans_cnt; /* AR */
uint32_t ar_slot2_trans_cnt; /* AR */
uint32_t ar_slot3_trans_cnt; /* AR */
uint32_t ar_slot4_trans_cnt; /* AR */
uint32_t ar_slot5_trans_cnt; /* AR */
uint32_t ar_slot6_trans_cnt; /* AR */
uint32_t ar_slot7_trans_cnt; /* AR */
uint32_t ar_slot8_trans_cnt; /* AR */
uint32_t ar_slot9_trans_cnt; /* AR */
uint32_t ar_trans_cnt_oflow; /* AR */
uint32_t ar_trans_cnt_uflow; /* AR */
uint32_t ar_l1l1_conf; /* AR */
uint32_t lock_step_err; /* AR and SDC */
uint32_t l2_check_err; /* AR and SDC */
uint32_t incon_tstl1_slave; /* AR */
uint32_t incon_tstl2_slave; /* AR and SDC */
uint32_t ecc_status; /* SDC */
uint32_t event_counter0; /* SDC */
uint32_t event_counter1; /* SDC */
uint32_t event_counter2; /* SDC */
uint32_t monitor_counter_cntl; /* AR and SDC */
uint32_t ar_transid_match; /* AR */
};
#ifdef __cplusplus
}
#endif
#endif /* _SYS_SBBCREG_H */