scat_const.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
* 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) 1996-2000 by Sun Microsystems, Inc.
* All rights reserved.
*/
#ifndef _SCAT_CONST_H
#define _SCAT_CONST_H
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* This file contains definitions fundamental to the Starcat architecture;
* how many exps, how many of each asic type, etc.
*/
/*
* POST DEVELOPERS:
* This file is copied to the OS workspace, and thus must abide by the OS
* coding standards. This file must always pass cstyle and hdrchk.
*/
#ifdef __cplusplus
extern "C" {
#endif
#define SSC_COUNT (2)
#define EXP_COUNT (18)
#ifdef No_More_No_More
/* Support this for awhile until we purge everywhere: */
#define NODE_COUNT EXP_COUNT
#endif /* No_More_No_More */
/* Slots are L1 boards within an expander */
#define SLOT_COUNT (2)
#ifdef REFERENCE
/* XXX: temporary definitions till Dan decides what he wants */
(S1_PROC_COUNT * EXP_COUNT))
#endif /* REFERENCE */
/*
* PFP = Packed flat port.
* For cases where one might need to maintain information
* (pcd arrays), or write loops, over all 18 X 6 = 108 ports.
* It is expected that this flat view of the ports is not made
* visible to the user, they should see only the ordered triple
* <exp>.<slot>.<lport> or the 10-bit Safari PortId.
* PWE = Port Within Expander. [0-5]. Comes along with the
* PFP model, should also not be externally visible.
*/
#define PORT_PER_EXP 6
#define PWE_COUNT PORT_PER_EXP
#define XC_IOBUS_PER_PORT 2
#define XC_IOCARD_PER_PORT 1
/* BBC in these macros is local to a slot, either 0 or 1: */
/* These are for use as printf() arguments for "%2d.%d", etc.: */
/* Build a 5-bit Safari Agent ID: */
/* Build a 10-bit Safari ID: */
/* Given a Safari Agent ID, extract the expander number */
/* Cacheable memory per (CPU) port */
#define DIMMS_PER_PORT 8
#define IS_VALID_DIMM(dimm) \
#define PMBANKS_PER_PORT 2
#define LMBANKS_PER_PMBANK 2
#define IS_VALID_PMBANK(pmbank) \
#define IS_VALID_LMBANK(lmbank) \
/* Ecache per (CPU) port */
#define ECDIMMS_PER_PORT 2
#define IS_VALID_ECACHE(ecache) \
/* SCM asics per CSB: */
#define SCM_COUNT (2)
/* Master ports in an SCM: */
#define SCM_MPORT_COUNT 10
/* SDI asics per EXB: */
#define SDI_COUNT (6)
/* Half-centerplanes, CSBs, etc. */
#define CP_COUNT (2)
/* DMX asics on the half-centerplane: */
#define DMX_COUNT (6)
/* AMX asics on the half-centerplane: */
#define AMX_COUNT (2)
/* Number of CPUs per SBBC on the various boards: */
#define CPU_COUNT (2)
/* Number of WCI per WIB: */
#define S0_WCI_COUNT (2)
#define S0_WCI_MIN (2)
#define S1_WCI_COUNT (1)
#define S1_WCI_MIN (1)
S0_IS_VALID_WCI((wci)))
/* Safari reset number (within sbbc) given slot & lport */
/* Number of non WCI safari devices per WIB */
/* Number of Schizo per PCI I/O board: */
#define SCHIZO_COUNT (2)
/*
* CPU and Maxcat L1 boards have 4 DXs, I/O boards have 2.
* But it's useful to have this for array dimensions, etc.
*/
#define DX_COUNT_MAX (4)
/*
* DCDS asics for half of a CPU board. The DCDS is a data slice,
* 8 are required for a full Safari data path.
*/
#define DCDS_COUNT (8)
/*
* Address, Data, or Response Bus.
* For all three, 0 or 1 is a valid value.
*/
/*
* Address, Data, or Response Bus configuration.
* For all three, 1. 2. or 3 is a valid value.
*/
#define BCONF_MIN 0x1
#define BCONF_MAX 0x3
#define BCONF_COUNT 3
/*
* This might seem a little obscure to be here, but it's needed
* for some array sizes and function prototypes:
*/
#define AXQ_NASM_SIZE 256
#ifdef __cplusplus
}
#endif
#endif /* !_SCAT_CONST_H */