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 (c) 1999 by Sun Microsystems, Inc. 24*7c478bd9Sstevel@tonic-gate * All rights reserved. 25*7c478bd9Sstevel@tonic-gate */ 26*7c478bd9Sstevel@tonic-gate 27*7c478bd9Sstevel@tonic-gate #ifndef _SYS_DB21554_CONFIG_H 28*7c478bd9Sstevel@tonic-gate #define _SYS_DB21554_CONFIG_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 #include <sys/types.h> 37*7c478bd9Sstevel@tonic-gate #include <sys/pci.h> 38*7c478bd9Sstevel@tonic-gate 39*7c478bd9Sstevel@tonic-gate #define DB_PCONF_PRI_HDR_OFF 0x00 /* primary offset on primary */ 40*7c478bd9Sstevel@tonic-gate #define DB_PCONF_SEC_HDR_OFF 0x40 /* secondary offset on sec */ 41*7c478bd9Sstevel@tonic-gate #define DB_SCONF_PRI_HDR_OFF 0x40 /* primary offset on sec */ 42*7c478bd9Sstevel@tonic-gate #define DB_SCONF_SEC_HDR_OFF 0x00 /* secondary offset on sec */ 43*7c478bd9Sstevel@tonic-gate #define DB_CONF_REGS 0x80 /* configuration regs after hdrs */ 44*7c478bd9Sstevel@tonic-gate #define DB_SCONF_HDR_OFF 0x40 /* second config hdr offset */ 45*7c478bd9Sstevel@tonic-gate 46*7c478bd9Sstevel@tonic-gate /* 47*7c478bd9Sstevel@tonic-gate * Some register definitions for configuration header. 48*7c478bd9Sstevel@tonic-gate */ 49*7c478bd9Sstevel@tonic-gate #define DB_PCONF_MEM_CSR PCI_CONF_BASE0 50*7c478bd9Sstevel@tonic-gate #define DB_PCONF_IO_CSR PCI_CONF_BASE1 51*7c478bd9Sstevel@tonic-gate #define DB_PCONF_DS_IO_MEM1 PCI_CONF_BASE2 52*7c478bd9Sstevel@tonic-gate #define DB_PCONF_DS_MEM2 PCI_CONF_BASE3 53*7c478bd9Sstevel@tonic-gate #define DB_PCONF_DS_MEM3 PCI_CONF_BASE4 54*7c478bd9Sstevel@tonic-gate #define DB_PCONF_DS_UMEM3 PCI_CONF_BASE5 55*7c478bd9Sstevel@tonic-gate #define DB_PCONF_EXP_ROM PCI_CONF_ROM 56*7c478bd9Sstevel@tonic-gate #define DB_PCONF_US_IO_MEM0 DB_PCONF_SEC_HDR_OFF+PCI_CONF_BASE2 57*7c478bd9Sstevel@tonic-gate #define DB_PCONF_US_MEM1 DB_PCONF_SEC_HDR_OFF+PCI_CONF_BASE3 58*7c478bd9Sstevel@tonic-gate #define DB_PCONF_US_MEM2 DB_PCONF_SEC_HDR_OFF+PCI_CONF_BASE4 59*7c478bd9Sstevel@tonic-gate 60*7c478bd9Sstevel@tonic-gate #define DB_SCONF_MEM_CSR PCI_CONF_BASE0 61*7c478bd9Sstevel@tonic-gate #define DB_SCONF_IO_CSR PCI_CONF_BASE1 62*7c478bd9Sstevel@tonic-gate #define DB_SCONF_US_IO_MEM0 PCI_CONF_BASE2 63*7c478bd9Sstevel@tonic-gate #define DB_SCONF_US_MEM1 PCI_CONF_BASE3 64*7c478bd9Sstevel@tonic-gate #define DB_SCONF_US_MEM2 PCI_CONF_BASE4 65*7c478bd9Sstevel@tonic-gate #define DB_SCONF_DS_IO_MEM1 DB_SCONF_PRI_HDR_OFF+PCI_CONF_BASE2 66*7c478bd9Sstevel@tonic-gate #define DB_SCONF_DS_MEM2 DB_SCONF_PRI_HDR_OFF+PCI_CONF_BASE3 67*7c478bd9Sstevel@tonic-gate #define DB_SCONF_DS_MEM3 DB_PCONF_PRI_HDR_OFF+PCI_CONF_BASE4 68*7c478bd9Sstevel@tonic-gate #define DB_SCONF_DS_UMEM3 DB_PCONF_PRI_HDR_OFF+PCI_CONF_BASE5 69*7c478bd9Sstevel@tonic-gate 70*7c478bd9Sstevel@tonic-gate #define DB_IO_BIT 0x00000001 71*7c478bd9Sstevel@tonic-gate 72*7c478bd9Sstevel@tonic-gate /* register definitions in configuration space after primary/sec. header */ 73*7c478bd9Sstevel@tonic-gate 74*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_CONF_ADDR 0x80 /* downstream config address */ 75*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_CONF_DATA 0x84 /* downstream config data */ 76*7c478bd9Sstevel@tonic-gate #define DB_CONF_US_CONF_ADDR 0x88 /* upstream config address */ 77*7c478bd9Sstevel@tonic-gate #define DB_CONF_US_CONF_DATA 0x8C /* upstream config data */ 78*7c478bd9Sstevel@tonic-gate #define DB_CONF_CONF_OWN 0x90 /* config own bits - word reg */ 79*7c478bd9Sstevel@tonic-gate #define DB_CONF8_DS_CONF_OWN 0x90 /* config own bits - byte reg */ 80*7c478bd9Sstevel@tonic-gate #define DB_CONF8_US_CONF_OWN 0x91 /* config own bits - byte reg */ 81*7c478bd9Sstevel@tonic-gate #define DB_CONF_CONF_CSR 0x92 /* config control status - word */ 82*7c478bd9Sstevel@tonic-gate #define DB_CONF8_DS_CONF_CSR 0x92 /* config DS CSR - byte reg */ 83*7c478bd9Sstevel@tonic-gate #define DB_CONF8_US_CONF_CSR 0x93 /* config US CSR - byte reg */ 84*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_MEM0_TR_BASE 0x94 /* DS memory 0 translated base */ 85*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_IO_MEM1_TR_BASE 0x98 /* DS IO or mem 1 trans base */ 86*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_MEM2_TR_BASE 0x9C /* DS memory 2 translated base */ 87*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_MEM3_TR_BASE 0xA0 /* DS memory 3 translated base */ 88*7c478bd9Sstevel@tonic-gate #define DB_CONF_US_IO_MEM0_TR_BASE 0xA4 /* DS IO or mem0 trans base */ 89*7c478bd9Sstevel@tonic-gate #define DB_CONF_US_MEM1_TR_BASE 0xA8 /* US memory 1 translated base */ 90*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_MEM0_SETUP 0xAC /* DS memory 0 setup */ 91*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_IO_MEM1_SETUP 0xB0 /* DS IO or memory 1 setup */ 92*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_MEM2_SETUP 0xB4 /* DS memory 2 setup */ 93*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_MEM3_SETUP 0xB8 /* DS memory 3 setup */ 94*7c478bd9Sstevel@tonic-gate #define DB_CONF_DS_UP32_MEM3_SETUP 0xBC /* Upper 32bits DS mem3 setup */ 95*7c478bd9Sstevel@tonic-gate #define DB_CONF_PRIM_EXP_ROM_SETUP 0xC0 /* Primary Expansion ROM setup */ 96*7c478bd9Sstevel@tonic-gate #define DB_CONF_US_IO_MEM0_SETUP 0xC4 /* Upstream IO or memory 0 setup */ 97*7c478bd9Sstevel@tonic-gate #define DB_CONF_US_MEM1_SETUP 0xC8 /* upstream memory 1 setup */ 98*7c478bd9Sstevel@tonic-gate #define DB_CONF_CHIP_CTRL0 0xCC /* chip control 0 */ 99*7c478bd9Sstevel@tonic-gate #define DB_CONF_CHIP_CTRL1 0xCE /* chip control 1 */ 100*7c478bd9Sstevel@tonic-gate #define DB_CONF_STATUS 0xD0 /* chip status */ 101*7c478bd9Sstevel@tonic-gate #define DB_CONF_ARBITER_CTRL 0xD2 /* Arbiter control */ 102*7c478bd9Sstevel@tonic-gate #define DB_CONF_PRIM_SERR_DISABLES 0xD4 /* primary SERR# disables */ 103*7c478bd9Sstevel@tonic-gate #define DB_CONF_SEC_SERR_DISABLES 0xD5 /* Secondary SERR# disables */ 104*7c478bd9Sstevel@tonic-gate #define DB_CONF_RESET_CTRL 0xD8 /* Reset Control */ 105*7c478bd9Sstevel@tonic-gate #define DB_CONF_CAP_ID_1 0xDC /* Capabilities ID */ 106*7c478bd9Sstevel@tonic-gate #define DB_CONF_NEXT_ITEM_PTR_1 0xDD /* Next Item Pointer */ 107*7c478bd9Sstevel@tonic-gate #define DB_CONF_PM_CAP 0xDE /* Power Management Capabilities */ 108*7c478bd9Sstevel@tonic-gate #define DB_CONF_PM_CSR 0xE0 /* Power Management CSR */ 109*7c478bd9Sstevel@tonic-gate #define DB_CONF_PM_CSR_BSE 0xE2 /* PMCSR Bridge Support Exts */ 110*7c478bd9Sstevel@tonic-gate #define DB_CONF_PM_DATA 0xE3 /* Power Management data */ 111*7c478bd9Sstevel@tonic-gate #define DB_CONF_CAP_ID_2 0xE4 /* Capabilities ID */ 112*7c478bd9Sstevel@tonic-gate #define DB_CONF_NEXT_ITEM_PTR_2 0xE5 /* Next Item Pointer */ 113*7c478bd9Sstevel@tonic-gate #define DB_CONF_VPD_ADDRESS 0xE6 /* VPD Address */ 114*7c478bd9Sstevel@tonic-gate #define DB_CONF_VPD_DATA 0xE8 /* VPD Data */ 115*7c478bd9Sstevel@tonic-gate #define DB_CONF_CAP_ID_3 0xEC /* Capabilities ID */ 116*7c478bd9Sstevel@tonic-gate #define DB_CONF_NEXT_ITEM_PTR_3 0xED /* Next Item Pointer */ 117*7c478bd9Sstevel@tonic-gate #define DB_CONF_HS_CSR 0xEE /* Hotswap control status */ 118*7c478bd9Sstevel@tonic-gate 119*7c478bd9Sstevel@tonic-gate #define DB_VENDOR_ID 0x1011 120*7c478bd9Sstevel@tonic-gate #define DB_DEVICE_ID 0x46 121*7c478bd9Sstevel@tonic-gate #define DB_INVAL_VEND 0xffff 122*7c478bd9Sstevel@tonic-gate 123*7c478bd9Sstevel@tonic-gate /* configuration own register bits : Register offset 0x90-91 */ 124*7c478bd9Sstevel@tonic-gate #define DS_CONF_OWN 0x0001 /* master owns DSconfig address/data */ 125*7c478bd9Sstevel@tonic-gate #define US_CONF_OWN 0x0100 /* master owns USconfig address/data */ 126*7c478bd9Sstevel@tonic-gate /* the following is a 8-bit register version definition. */ 127*7c478bd9Sstevel@tonic-gate #define DS8_CONF_OWN 0x01 128*7c478bd9Sstevel@tonic-gate #define US8_CONF_OWN 0x01 129*7c478bd9Sstevel@tonic-gate 130*7c478bd9Sstevel@tonic-gate /* configuration control status register bits: Register offset 0x92-93 */ 131*7c478bd9Sstevel@tonic-gate #define DS_OWN_STAT 0x0001 /* downstream config own status */ 132*7c478bd9Sstevel@tonic-gate #define DS_ENABLE 0x0002 /* enable downstream config cycles */ 133*7c478bd9Sstevel@tonic-gate #define US_OWN_STAT 0x0100 /* upstream config own status */ 134*7c478bd9Sstevel@tonic-gate #define US_ENABLE 0x0200 /* enable upstream config cycles */ 135*7c478bd9Sstevel@tonic-gate 136*7c478bd9Sstevel@tonic-gate /* chip control 0 register bits: Register Offset 0xcc-cd */ 137*7c478bd9Sstevel@tonic-gate #define DELAYED_TRANS_ORDER 0x0040 /* delayed transaction order control */ 138*7c478bd9Sstevel@tonic-gate #define SERR_FWD 0x0080 /* forward SERR# from sec to prim */ 139*7c478bd9Sstevel@tonic-gate #define PLOCKOUT 0x0400 /* primary lockout set */ 140*7c478bd9Sstevel@tonic-gate #define SEC_CLK_DIS 0x0800 /* disable secondary clock */ 141*7c478bd9Sstevel@tonic-gate 142*7c478bd9Sstevel@tonic-gate /* chip control 1 register bits: Register Offset 0xce-cf */ 143*7c478bd9Sstevel@tonic-gate #define P_PW_THRESHOLD 0x0001 144*7c478bd9Sstevel@tonic-gate #define S_PW_THRESHOLD 0x0002 145*7c478bd9Sstevel@tonic-gate #define P_DREAD_THRESHOLD_MASK 0x000C 146*7c478bd9Sstevel@tonic-gate #define S_DREAD_THRESHOLD_MASK 0x0030 147*7c478bd9Sstevel@tonic-gate #define DREAD_THRESHOLD_VALBITS 0x3 148*7c478bd9Sstevel@tonic-gate 149*7c478bd9Sstevel@tonic-gate #define US_MEM2_DISABLE 0x0000 /* disable USmem2 BAR */ 150*7c478bd9Sstevel@tonic-gate #define PAGESIZE_256 0x0100 151*7c478bd9Sstevel@tonic-gate #define PAGESIZE_512 0x0200 152*7c478bd9Sstevel@tonic-gate #define PAGESIZE_1K 0x0300 153*7c478bd9Sstevel@tonic-gate #define PAGESIZE_2K 0x0400 154*7c478bd9Sstevel@tonic-gate #define PAGESIZE_4K 0x0500 155*7c478bd9Sstevel@tonic-gate #define PAGESIZE_8K 0x0600 156*7c478bd9Sstevel@tonic-gate #define PAGESIZE_16K 0x0700 157*7c478bd9Sstevel@tonic-gate #define PAGESIZE_32K 0x0800 158*7c478bd9Sstevel@tonic-gate #define PAGESIZE_64K 0x0900 159*7c478bd9Sstevel@tonic-gate #define PAGESIZE_128K 0x0A00 160*7c478bd9Sstevel@tonic-gate #define PAGESIZE_256K 0x0B00 161*7c478bd9Sstevel@tonic-gate #define PAGESIZE_512K 0x0C00 162*7c478bd9Sstevel@tonic-gate #define PAGESIZE_1M 0x0D00 163*7c478bd9Sstevel@tonic-gate #define PAGESIZE_2M 0x0E00 164*7c478bd9Sstevel@tonic-gate #define PAGESIZE_4M 0x0F00 165*7c478bd9Sstevel@tonic-gate 166*7c478bd9Sstevel@tonic-gate #define GET_PAGESIZE(chip_ctrl1) (((chip_ctrl1) & 0x0F00) >> 8) 167*7c478bd9Sstevel@tonic-gate 168*7c478bd9Sstevel@tonic-gate /* chip reset control register bits : Register Offset 0xd8-db */ 169*7c478bd9Sstevel@tonic-gate #define RESET_CTRL_RST_SEC 0x01 /* reset secondary */ 170*7c478bd9Sstevel@tonic-gate #define RESET_CTRL_RST 0x02 /* reset chip */ 171*7c478bd9Sstevel@tonic-gate #define RESET_CTRL_LSTAT 0x08 /* when set, l_stat is high */ 172*7c478bd9Sstevel@tonic-gate 173*7c478bd9Sstevel@tonic-gate /* chip status register bits : Register Offset 0xd0-d1 */ 174*7c478bd9Sstevel@tonic-gate #define DS_DEL_MTO 0x0001 /* DS delayed master TO */ 175*7c478bd9Sstevel@tonic-gate #define DS_DEL_RD_DISCARD 0x0002 /* DS delayed read discard */ 176*7c478bd9Sstevel@tonic-gate #define DS_DEL_WR_DISCARD 0x0004 /* DS delayed write discard */ 177*7c478bd9Sstevel@tonic-gate #define DS_POST_WRDATA_DISCA 0x0008 178*7c478bd9Sstevel@tonic-gate #define US_DEL_MTO 0x0100 /* US delayed trans master TO */ 179*7c478bd9Sstevel@tonic-gate #define US_DEL_RD_DISCARD 0x0200 /* US delayed trans.read disc */ 180*7c478bd9Sstevel@tonic-gate #define US_DEL_WR_DISCARD 0x0400 /* US delayed trans.writ disc */ 181*7c478bd9Sstevel@tonic-gate #define US_POST_WRDATA_DISCA 0x0800 182*7c478bd9Sstevel@tonic-gate 183*7c478bd9Sstevel@tonic-gate #define DB_PCI_REG_ADDR(bus, device, function, reg) \ 184*7c478bd9Sstevel@tonic-gate (((bus) & 0xff) << 16) | (((device & 0x1f)) << 11) \ 185*7c478bd9Sstevel@tonic-gate | (((function) & 0x7) << 8) | ((reg) & 0xff) 186*7c478bd9Sstevel@tonic-gate 187*7c478bd9Sstevel@tonic-gate /* form a type 0 configuration address */ 188*7c478bd9Sstevel@tonic-gate #define DB_PCI_REG_ADDR_TYPE0(bus, device, function, reg) \ 189*7c478bd9Sstevel@tonic-gate (((1 << (device & 0x1f)) << 11) \ 190*7c478bd9Sstevel@tonic-gate | (((function) & 0x7) << 8) | \ 191*7c478bd9Sstevel@tonic-gate ((reg) & 0xfc)) 192*7c478bd9Sstevel@tonic-gate 193*7c478bd9Sstevel@tonic-gate /* form a type 1 configuration address */ 194*7c478bd9Sstevel@tonic-gate #define DB_PCI_REG_ADDR_TYPE1(bus, device, function, reg) \ 195*7c478bd9Sstevel@tonic-gate ((((bus) & 0xff) << 16) | (((device & 0x1f)) << 11) \ 196*7c478bd9Sstevel@tonic-gate | (((function) & 0x7) << 8) | ((reg) & 0xfc)) 197*7c478bd9Sstevel@tonic-gate 198*7c478bd9Sstevel@tonic-gate 199*7c478bd9Sstevel@tonic-gate #define DB_ENABLE_PCI_CONF_CYCLE_TYPE0 0 200*7c478bd9Sstevel@tonic-gate #define DB_ENABLE_PCI_CONF_CYCLE_TYPE1 1 201*7c478bd9Sstevel@tonic-gate 202*7c478bd9Sstevel@tonic-gate /* 203*7c478bd9Sstevel@tonic-gate * add local address offsets and get the right config address double 204*7c478bd9Sstevel@tonic-gate * word aligned type 0 format addresses. 205*7c478bd9Sstevel@tonic-gate */ 206*7c478bd9Sstevel@tonic-gate #define DB_PCI_CONF_CYCLE_TYPE0_ADDR(conf_addr) \ 207*7c478bd9Sstevel@tonic-gate (((conf_addr) & 0xfffffffc) | DB_ENABLE_PCI_CONF_CYCLE_TYPE0) 208*7c478bd9Sstevel@tonic-gate 209*7c478bd9Sstevel@tonic-gate /* 210*7c478bd9Sstevel@tonic-gate * add local address offsets and get the right config address double 211*7c478bd9Sstevel@tonic-gate * word aligned type 1 format addresses. 212*7c478bd9Sstevel@tonic-gate */ 213*7c478bd9Sstevel@tonic-gate #define DB_PCI_CONF_CYCLE_TYPE1_ADDR(conf_addr) \ 214*7c478bd9Sstevel@tonic-gate (((conf_addr) & 0xfffffffc) | DB_ENABLE_PCI_CONF_CYCLE_TYPE1) 215*7c478bd9Sstevel@tonic-gate 216*7c478bd9Sstevel@tonic-gate #define PCI_HDR_SIZE 64 217*7c478bd9Sstevel@tonic-gate 218*7c478bd9Sstevel@tonic-gate typedef struct db_pci_header { 219*7c478bd9Sstevel@tonic-gate uint16_t venid; 220*7c478bd9Sstevel@tonic-gate uint16_t devid; 221*7c478bd9Sstevel@tonic-gate uint16_t command; 222*7c478bd9Sstevel@tonic-gate uint16_t status; 223*7c478bd9Sstevel@tonic-gate uint8_t revid; 224*7c478bd9Sstevel@tonic-gate uint8_t pif; 225*7c478bd9Sstevel@tonic-gate uint8_t subclass; 226*7c478bd9Sstevel@tonic-gate uint8_t class; 227*7c478bd9Sstevel@tonic-gate uint8_t cacheline; 228*7c478bd9Sstevel@tonic-gate uint8_t lat; 229*7c478bd9Sstevel@tonic-gate uint8_t hdr_type; 230*7c478bd9Sstevel@tonic-gate uint8_t bist; 231*7c478bd9Sstevel@tonic-gate uint32_t bar0; 232*7c478bd9Sstevel@tonic-gate uint32_t bar1; 233*7c478bd9Sstevel@tonic-gate uint32_t bar2; 234*7c478bd9Sstevel@tonic-gate uint32_t bar3; 235*7c478bd9Sstevel@tonic-gate uint32_t bar4; 236*7c478bd9Sstevel@tonic-gate uint32_t bar5; 237*7c478bd9Sstevel@tonic-gate uint32_t cardbus_cisp; 238*7c478bd9Sstevel@tonic-gate uint16_t sub_venid; 239*7c478bd9Sstevel@tonic-gate uint16_t sub_devid; 240*7c478bd9Sstevel@tonic-gate uint32_t exprom_bar; 241*7c478bd9Sstevel@tonic-gate uint32_t res1; 242*7c478bd9Sstevel@tonic-gate uint32_t res2; 243*7c478bd9Sstevel@tonic-gate uint8_t int_line; 244*7c478bd9Sstevel@tonic-gate uint8_t int_pin; 245*7c478bd9Sstevel@tonic-gate uint8_t min_gnt; 246*7c478bd9Sstevel@tonic-gate uint8_t max_lat; 247*7c478bd9Sstevel@tonic-gate } db_pci_header_t; 248*7c478bd9Sstevel@tonic-gate 249*7c478bd9Sstevel@tonic-gate typedef struct db_conf_regs { 250*7c478bd9Sstevel@tonic-gate uint32_t ds_mem0_tr_base; /* DS memory 0 translated base */ 251*7c478bd9Sstevel@tonic-gate uint32_t ds_io_mem1_tr_base; /* DS IO or memory1 trans base */ 252*7c478bd9Sstevel@tonic-gate uint32_t ds_mem2_tr_base; /* DS memory 2 trans base */ 253*7c478bd9Sstevel@tonic-gate uint32_t ds_mem3_tr_base; /* DS memory 3 trans base */ 254*7c478bd9Sstevel@tonic-gate uint32_t us_io_mem0_tr_base; /* US IO or memory0 trans base */ 255*7c478bd9Sstevel@tonic-gate uint32_t us_mem1_tr_base; /* US memory 1 translated base */ 256*7c478bd9Sstevel@tonic-gate uint32_t ds_mem0_setup_reg; /* DS memory 0 setup reg */ 257*7c478bd9Sstevel@tonic-gate uint32_t ds_io_mem1_setup_reg; /* DS IO or memory1 setup reg */ 258*7c478bd9Sstevel@tonic-gate uint32_t ds_mem2_setup_reg; /* DS memory 2 setup reg */ 259*7c478bd9Sstevel@tonic-gate uint64_t ds_mem3_setup_reg; /* DS memory 3 setup reg */ 260*7c478bd9Sstevel@tonic-gate uint32_t p_exp_rom_setup; /* primary expansion ROM setup reg */ 261*7c478bd9Sstevel@tonic-gate uint32_t us_io_mem0_setup_reg; /* US IO or memory 0 setup reg */ 262*7c478bd9Sstevel@tonic-gate uint32_t us_mem1_setup_reg; /* US memory 1 setup reg */ 263*7c478bd9Sstevel@tonic-gate ushort_t chip_control0; /* chip control 0 */ 264*7c478bd9Sstevel@tonic-gate ushort_t chip_control1; /* chip control 1 */ 265*7c478bd9Sstevel@tonic-gate ushort_t chip_status; /* chip status */ 266*7c478bd9Sstevel@tonic-gate ushort_t arb_control; /* arbiter control */ 267*7c478bd9Sstevel@tonic-gate uchar_t p_serr_disables; /* primary SERR# disables */ 268*7c478bd9Sstevel@tonic-gate uchar_t s_serr_disables; /* secondary SERR# disables */ 269*7c478bd9Sstevel@tonic-gate ushort_t config_csr; /* configuration control and status */ 270*7c478bd9Sstevel@tonic-gate uint32_t reset_control; /* reset control */ 271*7c478bd9Sstevel@tonic-gate ushort_t pm_cap; /* power management capabilities reg */ 272*7c478bd9Sstevel@tonic-gate ushort_t pm_csr; /* power management control status */ 273*7c478bd9Sstevel@tonic-gate uint8_t hs_csr; /* hotswap control status */ 274*7c478bd9Sstevel@tonic-gate } db_conf_regs_t; 275*7c478bd9Sstevel@tonic-gate 276*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 277*7c478bd9Sstevel@tonic-gate } 278*7c478bd9Sstevel@tonic-gate #endif 279*7c478bd9Sstevel@tonic-gate 280*7c478bd9Sstevel@tonic-gate #endif /* _SYS_DB21554_CONFIG_H */ 281