| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | #ifndef __ALPHA_TITAN__H__#define __ALPHA_TITAN__H__#include <linux/types.h>#include <asm/compiler.h>/* * TITAN is the internal names for a core logic chipset which provides * memory controller and PCI/AGP access for 21264 based systems. * * This file is based on: * * Titan Chipset Engineering Specification * Revision 0.12 * 13 July 1999 * *//* XXX: Do we need to conditionalize on this?  */#ifdef USE_48_BIT_KSEG#define TI_BIAS 0x80000000000UL#else#define TI_BIAS 0x10000000000UL#endif/* * CChip, DChip, and PChip registers */typedef struct {	volatile unsigned long csr __attribute__((aligned(64)));} titan_64;typedef struct {	titan_64	csc;	titan_64	mtr;	titan_64	misc;	titan_64	mpd;	titan_64	aar0;	titan_64	aar1;	titan_64	aar2;	titan_64	aar3;	titan_64	dim0;	titan_64	dim1;	titan_64	dir0;	titan_64	dir1;	titan_64	drir;	titan_64	prben;	titan_64	iic0;	titan_64	iic1;	titan_64	mpr0;	titan_64	mpr1;	titan_64	mpr2;	titan_64	mpr3;	titan_64	rsvd[2];	titan_64	ttr;	titan_64	tdr;	titan_64	dim2;	titan_64	dim3;	titan_64	dir2;	titan_64	dir3;	titan_64	iic2;	titan_64	iic3;	titan_64	pwr;	titan_64	reserved[17];	titan_64	cmonctla;	titan_64	cmonctlb;	titan_64	cmoncnt01;	titan_64	cmoncnt23;	titan_64	cpen;} titan_cchip;typedef struct {	titan_64	dsc;	titan_64	str;	titan_64	drev;	titan_64	dsc2;} titan_dchip;typedef struct {	titan_64	wsba[4];	titan_64	wsm[4];	titan_64	tba[4];	titan_64	pctl;	titan_64	plat;	titan_64	reserved0[2];	union {		struct {			titan_64	serror;			titan_64	serren;			titan_64	serrset;			titan_64	reserved0;			titan_64	gperror;			titan_64	gperren;			titan_64	gperrset;			titan_64	reserved1;			titan_64	gtlbiv;			titan_64	gtlbia;			titan_64	reserved2[2];			titan_64	sctl;			titan_64	reserved3[3];		} g;		struct {			titan_64	agperror;			titan_64	agperren;			titan_64	agperrset;			titan_64	agplastwr;			titan_64	aperror;			titan_64	aperren;			titan_64	aperrset;			titan_64	reserved0;			titan_64	atlbiv;			titan_64	atlbia;			titan_64	reserved1[6];		} a;	} port_specific;	titan_64	sprst;	titan_64	reserved1[31];} titan_pachip_port;typedef struct {	titan_pachip_port	g_port;	titan_pachip_port	a_port;} titan_pachip;#define TITAN_cchip	((titan_cchip  *)(IDENT_ADDR+TI_BIAS+0x1A0000000UL))#define TITAN_dchip    	((titan_dchip  *)(IDENT_ADDR+TI_BIAS+0x1B0000800UL))#define TITAN_pachip0 	((titan_pachip *)(IDENT_ADDR+TI_BIAS+0x180000000UL))#define TITAN_pachip1 	((titan_pachip *)(IDENT_ADDR+TI_BIAS+0x380000000UL))extern unsigned TITAN_agp;extern int TITAN_bootcpu;/* * TITAN PA-chip Window Space Base Address register. * (WSBA[0-2]) */#define wsba_m_ena 0x1                #define wsba_m_sg 0x2#define wsba_m_addr 0xFFF00000  #define wmask_k_sz1gb 0x3FF00000                   union TPAchipWSBA {	struct  {		unsigned wsba_v_ena : 1;		unsigned wsba_v_sg : 1;		unsigned wsba_v_rsvd1 : 18;		unsigned wsba_v_addr : 12;		unsigned wsba_v_rsvd2 : 32;        } wsba_r_bits;	int wsba_q_whole [2];};/* * TITAN PA-chip Control Register * This definition covers both the G-Port GPCTL and the A-PORT APCTL. * Bits <51:0> are the same in both cases. APCTL<63:52> are only  * applicable to AGP. */#define pctl_m_fbtb 			0x00000001#define pctl_m_thdis 			0x00000002
 |