nb5000.h revision 5de8e333fea6455895155795aae363a0737b8e8e
/*
* 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 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _NB5000_H
#define _NB5000_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/cpu_module.h>
#define NB_5000_MAX_MEM_CONTROLLERS 2
#define NB_MEM_BRANCH_SELECT 3
#define NB_MAX_MEM_BRANCH_SELECT 3
#define NB_MAX_MEM_RANK_SELECT 7
#define NB_RANKS_IN_SELECT 4
#define NB_PCI_DEV 8
#define NB_PCI_NFUNC 4
#define DOCMD_PEX_MASK 0xc0
#define DOCMD_PEX 0x3f
#define SPD_BUSY 0x1000
#define SPD_BUS_ERROR 0x2000
#define SPD_READ_DATA_VALID 0x8000
#define SPD_EEPROM_WRITE 0xa8000000
#define MC_MIRROR 0x10000
#define MC_PATROL_SCRUB 0x80
#define MC_DEMAND_SCRUB 0x40
#define MCA_SCHDIMM 0x4000
#define TLOW_MAX 0x100000000ULL
/* FERR_GLOBAL and NERR_GLOBAL */
/* Timeout */
/* intelligent throttling disabled */
/* CRC read error */
/* non-redundant retry or FBD */
/* configuration write error on retry */
#define ERR_FAT_FBD_MASK 0x007fffff
/* Timeout */
/* redundant retry */
/* FBD sync status */
/* spare-copy data ECC */
/* data ECC */
/* demand data ECC */
/* CRC read error */
/* error on first attempt */
/* attempt */
/* patrol data ECC */
/* resilver or spare copy data ECC */
/* mirrored demand data ECC */
/* non-mirrored demand data ECC */
/* patrol data ECC */
/* resilver or spare copy data ECC */
/* mirrored demand data ECC */
/* non-mirrored demand data ECC */
/* replay */
#define ERR_NF_FBD_MASK 0x01ffffff
#define ERR_NF_FBD_MA (ERR_NF_FBD_M14)
/* Timeout */
/* redundant retry */
/* Timeout */
/* FBD sync status */
/* spare-copy data ECC */
/* data ECC */
/* demand data ECC */
/* CRC read error */
/* error on first attempt */
/* attempt */
/* patrol data ECC */
/* resilver or spare copy data ECC */
/* mirrored demand data ECC */
/* non-mirrored demand data ECC */
/* patrol data ECC */
/* resilver or spare copy data ECC */
/* mirrored demand data ECC */
/* non-mirrored demand data ECC */
/* replay */
/* intelligent throttling disabled */
/* CRC read error */
/* non-redundant retry or FBD */
/* configuration write error on retry */
/* MCH 7300 errata 34 */
/* the ways during SF lookup */
/* the ways during SF lookup */
/* MCH 5000 errata 2 */
#define EMASK_INT_5000 EMASK_INT_B1
/* MCH 7300 errata 17 & 20 */
/* MCH 7300 errata 17,20 & 21 */
#define GE_FBD_NF \
/* request */
#define PEX_NF_IO8 0x00000080
#define PEX_NF_IO7 0x00000040
#define PEX_NF_IO3 0x00000004
#define PEX_NF_IO2 0x00000002
#define GE_FERR_FSB(ferr) ( \
(nb_chipset == INTEL_NB_7300) && \
(nb_chipset == INTEL_NB_7300) && \
-1)
#define GE_NERR_TO_FERR_FSB(nerr) \
#define GE_ERR_PEX(ferr) ( \
((nb_chipset == INTEL_NB_7300) && \
-1)
GE_PCIEX2_FATAL| GE_ESI_FATAL) : \
0x40, 0) : \
#define NRECFSB_WR(fsb) \
if (nb_chipset == INTEL_NB_7300) { \
0); \
} else { \
}
if (nb_chipset == INTEL_NB_7300) { \
0); \
} else { \
}
#define NRECADDR_WR(fsb) \
if (nb_chipset == INTEL_NB_7300) { \
0); \
0); \
} else { \
}
#define FERR_GLOBAL_WR(val) \
if (nb_chipset == INTEL_NB_7300) \
{ \
} else { \
}
nb_chipset == INTEL_NB_7300) { \
}
nb_chipset == INTEL_NB_7300) { \
}
#define NRECFGLOG_RD() \
#define NRECFBDA_RD() \
#define NRECFBDB_RD() \
#define NRECFBDC_RD() \
#define NRECFBDD_RD() \
#define NRECFBDE_RD() \
#define NRECFBDF_RD() \
#define RECMEMA_RD() \
#define RECFGLOG_RD() \
#define RECFBDA_RD() \
#define RECFBDB_RD() \
#define RECFBDC_RD() \
#define RECFBDD_RD() \
#define RECFBDE_RD() \
#define RECFBDF_RD() \
#define NRECFGLOG_WR() \
#define NRECFBDA_WR() \
#define NRECFBDB_WR() \
#define NRECFBDC_WR() \
#define NRECFBDD_WR() \
#define NRECFBDE_WR() \
#define NRECFBDF_WR() \
if (nb_chipset == INTEL_NB_7300) \
#define RECMEMA_WR() \
#define RECFGLOG_WR() \
#define RECFBDA_WR() \
#define RECFBDB_WR() \
#define RECFBDC_WR() \
#define RECFBDD_WR() \
#define RECFBDE_WR() \
#define RECFBDF_WR() \
if (nb_chipset == INTEL_NB_7300) \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(((branch) == 0) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
if ((branch) == 0) { \
0); \
} else if (nb_number_memory_controllers == 2) { \
0); \
}
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
: 0
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
(nb_number_memory_controllers == 2) ? \
if ((branch) == 0) \
else if (nb_number_memory_controllers == 2) \
#define BANK_MASK 7
if ((dimms_per_channel) <= 4) { \
} else { \
}
#ifdef __cplusplus
}
#endif
#endif /* _NB5000_H */