xref: /netbsd-src/sys/arch/mips/alchemy/dev/aupcireg.h (revision e5312db1b0d0d185b8470809f45946d5665567d4)
1*e5312db1Sgdamore /* $NetBSD: aupcireg.h,v 1.2 2006/02/16 01:55:17 gdamore Exp $ */
20a8bdb27Sgdamore 
30a8bdb27Sgdamore /*-
40a8bdb27Sgdamore  * Copyright (c) 2006 Itronix Inc.
50a8bdb27Sgdamore  * All rights reserved.
60a8bdb27Sgdamore  *
70a8bdb27Sgdamore  * Written by Garrett D'Amore for Itronix Inc.
80a8bdb27Sgdamore  *
90a8bdb27Sgdamore  * Redistribution and use in source and binary forms, with or without
100a8bdb27Sgdamore  * modification, are permitted provided that the following conditions
110a8bdb27Sgdamore  * are met:
120a8bdb27Sgdamore  * 1. Redistributions of source code must retain the above copyright
130a8bdb27Sgdamore  *    notice, this list of conditions and the following disclaimer.
140a8bdb27Sgdamore  * 2. Redistributions in binary form must reproduce the above copyright
150a8bdb27Sgdamore  *    notice, this list of conditions and the following disclaimer in the
160a8bdb27Sgdamore  *    documentation and/or other materials provided with the distribution.
170a8bdb27Sgdamore  * 3. The name of Itronix Inc. may not be used to endorse
180a8bdb27Sgdamore  *    or promote products derived from this software without specific
190a8bdb27Sgdamore  *    prior written permission.
200a8bdb27Sgdamore  *
210a8bdb27Sgdamore  * THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND
220a8bdb27Sgdamore  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
230a8bdb27Sgdamore  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
240a8bdb27Sgdamore  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY
250a8bdb27Sgdamore  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
260a8bdb27Sgdamore  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
270a8bdb27Sgdamore  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
280a8bdb27Sgdamore  * ON ANY THEORY OF LIABILITY, WHETHER IN
290a8bdb27Sgdamore  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
300a8bdb27Sgdamore  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
310a8bdb27Sgdamore  * POSSIBILITY OF SUCH DAMAGE.
320a8bdb27Sgdamore  */
330a8bdb27Sgdamore 
340a8bdb27Sgdamore #ifndef _MIPS_ALCHEMY_DEV_AUPCIREG_H
350a8bdb27Sgdamore #define	_MIPS_ALCHEMY_DEV_AUPCIREG_H
360a8bdb27Sgdamore 
370a8bdb27Sgdamore #define	AUPCI_CMEM			0x0000
380a8bdb27Sgdamore #define	  AUPCI_CMEM_HC			(1UL<<31)	/* host config */
390a8bdb27Sgdamore #define   AUPCI_CMEM_E			(1UL<<28)	/* cmem enable */
400a8bdb27Sgdamore 
410a8bdb27Sgdamore #define AUPCI_CONFIG			0x0004
420a8bdb27Sgdamore #define	  AUPCI_CONFIG_EADDRH_SHIFT	28		/* bits 32-35 */
430a8bdb27Sgdamore #define	  AUPCI_CONFIG_ERD		(1UL<<27)	/* error direction */
440a8bdb27Sgdamore #define	  AUPCI_CONFIG_ET		(1UL<<26)	/* error target */
450a8bdb27Sgdamore #define	  AUPCI_CONFIG_EF		(1UL<<25)	/* fatal error */
460a8bdb27Sgdamore #define	  AUPCI_CONFIG_EP		(1UL<<24)	/* parity error */
470a8bdb27Sgdamore #define	  AUPCI_CONFIG_EM		(1UL<<23)	/* multiple errors */
480a8bdb27Sgdamore #define	  AUPCI_CONfIG_BM		(1UL<<22)	/* bad master */
490a8bdb27Sgdamore #define	  AUPCI_CONFIG_PD		(1UL<<20)	/* PCI disable */
500a8bdb27Sgdamore #define	  AUPCI_CONFIG_BME		(1UL<<19)	/* byte mask enable */
510a8bdb27Sgdamore #define   AUPCI_CONFIG_DR		(1UL<<18)	/* drive mode */
520a8bdb27Sgdamore #define	  AUPCI_CONFIG_NC		(1UL<<16)	/* non-coherent */
530a8bdb27Sgdamore #define	  AUPCI_CONFIG_IE		(1UL<<15)	/* interrupt enable */
540a8bdb27Sgdamore #define	  AUPCI_CONFIG_IP		(1UL<<13)	/* perr int enable */
550a8bdb27Sgdamore #define	  AUPCI_CONFIG_IS		(1UL<<12)	/* serr int enable */
560a8bdb27Sgdamore #define	  AUPCI_CONFIG_IMM		(1UL<<11)	/* master abort int */
570a8bdb27Sgdamore #define	  AUPCI_CONFIG_ITM		(1UL<<10)	/* target abort int */
580a8bdb27Sgdamore #define	  AUPCI_CONFIG_ITT		(1UL<<9)	/* target abort int */
590a8bdb27Sgdamore #define	  AUPCI_CONFIG_IPB		(1UL<<8)	/* perr rec int */
600a8bdb27Sgdamore #define	  AUPCI_CONFIG_SIC_SHIFT	6
610a8bdb27Sgdamore #define	  AUPCI_CONFIG_SIC_NONE		0
620a8bdb27Sgdamore #define	  AUPCI_CONFIG_SIC_ADDR		(1UL<<6)
630a8bdb27Sgdamore #define	  AUPCI_CONFIG_SIC_DATA		(2UL<<6)
640a8bdb27Sgdamore #define	  AUPCI_CONFIG_SIC_ALL		(3UL<<6)
650a8bdb27Sgdamore #define	  AUPCI_CONFIG_SIC_MASK		(3UL<<6)
660a8bdb27Sgdamore #define   AUPCI_CONFIG_ST		(1UL<<5)	/* swap on target */
670a8bdb27Sgdamore #define	  AUPCI_CONFIG_SM		(1UL<<4)	/* swap on master */
680a8bdb27Sgdamore #define	  AUPCI_CONFIG_AEN		(1UL<<3)	/* enable arbiter */
690a8bdb27Sgdamore #define	  AUPCI_CONFIG_R2H		(1UL<<2)	/* req 2 high pri */
700a8bdb27Sgdamore #define	  AUPCI_CONFIG_R1H		(1UL<<1)	/* req 1 high pri */
710a8bdb27Sgdamore #define	  AUPCI_CONFIG_CH		(1UL<<0)	/* cpu high pri */
720a8bdb27Sgdamore 
730a8bdb27Sgdamore #define	AUPCI_B2BMASK			0x0008
740a8bdb27Sgdamore #define	  AUPCI_B2BMASK_SHIFT		16
750a8bdb27Sgdamore #define AUPCI_B2BBASE0			0x000C
760a8bdb27Sgdamore #define   AUPCI_B2BASE0_SHIFT		16
770a8bdb27Sgdamore #define	AUPCI_B2BBASE1			0x0010
780a8bdb27Sgdamore #define   AUPCI_B2BASE1_SHIFT		16
790a8bdb27Sgdamore #define	AUPCI_MWMASK			0x0014
800a8bdb27Sgdamore #define	  AUPCI_MWMASK_SHIFT		16
810a8bdb27Sgdamore #define	AUPCI_MWBASE			0x0018
820a8bdb27Sgdamore #define	  AUPCI_MWBASE_SHIFT		16
830a8bdb27Sgdamore #define	AUPCI_ERRADDR			0x001C
840a8bdb27Sgdamore #define	AUPCI_SPECINTACK		0x0020
850a8bdb27Sgdamore #define	AUPCI_PRCFG			0x0024
860a8bdb27Sgdamore #define   AUPCI_PRCFG_BLM_SHIFT		3
870a8bdb27Sgdamore #define	  AUPCI_PRCFG_AM		(1UL<<9)	/* abort mask */
880a8bdb27Sgdamore #define	  AUPCI_PRCFG_DM		(1UL<<8)	/* done mask */
890a8bdb27Sgdamore #define	  AUPCI_PRCFG_BS_SHIFT		4
900a8bdb27Sgdamore #define	  AUPCI_PRCFG_ADDR_HIGH_SHIFT	0
910a8bdb27Sgdamore #define	AUPCI_PRADDR			0x0028
920a8bdb27Sgdamore #define	AUPCI_PRSTAT			0x002C
930a8bdb27Sgdamore #define   AUPCI_PRSTAT_AI		(1UL<<9)	/* posted read abort */
940a8bdb27Sgdamore #define	  AUPCI_PRSTAT_DI		(1UL<<8)	/* posted read done */
950a8bdb27Sgdamore #define	  AUPCI_PRSTAT_PEND		(1UL<<0)	/* posted read pend */
960a8bdb27Sgdamore 
970a8bdb27Sgdamore #define	AUPCI_ID		0x0100
980a8bdb27Sgdamore #define	AUPCI_COMMAND_STATUS	0x0104
990a8bdb27Sgdamore #define	AUPCI_CLASS		0x0108
100*e5312db1Sgdamore #define	AUPCI_MBAR		0x0110
1010a8bdb27Sgdamore 
1020a8bdb27Sgdamore #endif	/* _MIPS_ALCHEMY_DEV_AUPCIREG_H */
103