Home | History | Annotate | Line # | Download | only in xscale
      1 /*	$NetBSD: beccreg.h,v 1.2 2003/04/05 04:18:26 briggs Exp $	*/
      2 
      3 /*
      4  * Copyright (c) 2002 Wasabi Systems, Inc.
      5  * All rights reserved.
      6  *
      7  * Written by Jason R. Thorpe for Wasabi Systems, Inc.
      8  *
      9  * Redistribution and use in source and binary forms, with or without
     10  * modification, are permitted provided that the following conditions
     11  * are met:
     12  * 1. Redistributions of source code must retain the above copyright
     13  *    notice, this list of conditions and the following disclaimer.
     14  * 2. Redistributions in binary form must reproduce the above copyright
     15  *    notice, this list of conditions and the following disclaimer in the
     16  *    documentation and/or other materials provided with the distribution.
     17  * 3. All advertising materials mentioning features or use of this software
     18  *    must display the following acknowledgement:
     19  *	This product includes software developed for the NetBSD Project by
     20  *	Wasabi Systems, Inc.
     21  * 4. The name of Wasabi Systems, Inc. may not be used to endorse
     22  *    or promote products derived from this software without specific prior
     23  *    written permission.
     24  *
     25  * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
     26  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     27  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     28  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
     29  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     30  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     31  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     32  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     33  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     34  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     35  * POSSIBILITY OF SUCH DAMAGE.
     36  */
     37 
     38 #ifndef _BECCREG_H_
     39 #define	_BECCREG_H_
     40 
     41 /*
     42  * Register definitions for the ADI Engineering Big Endian Companion
     43  * Chip for the Intel i80200.
     44  */
     45 
     46 /* Revision codes */
     47 
     48 #define	BECC_REV_V7		0x00		/* rev <= 7 */
     49 #define	BECC_REV_V8		0x01		/* rev 8 */
     50 #define	BECC_REV_V9		0x02		/* rev >= 9 */
     51 
     52 /* Memory Map */
     53 
     54 #define	BECC_REG_BASE		0x04000000
     55 #define	BECC_REG_SIZE		0x01000000	/* 16M */
     56 
     57 #define	BECC_PCI_CONF_BASE	0x08000000
     58 #define	BECC_PCI_CONF_SIZE	0x02000000	/* 32M */
     59 
     60 #define	BECC_PCI_IO_BASE	0x0a000000
     61 #define	BECC_PCI_IO_SIZE	0x02000000	/* 32M */
     62 
     63 #define	BECC_PCI_MEM1_BASE	0x0c000000
     64 #define	BECC_PCI_MEM1_SIZE	0x02000000	/* 32M */
     65 
     66 #define	BECC_PCI_MEM2_BASE	0x0e000000
     67 #define	BECC_PCI_MEM2_SIZE	0x02000000	/* 32M */
     68 
     69 #define	BECC_SDRAM_BASE		0xc0000000
     70 
     71 /* Peripheral clock is 33.3MHz */
     72 #define	BECC_PERIPH_CLOCK	33300000
     73 
     74 /* BECC registers; offsets from BECC_REG_BASE */
     75 
     76 #define	BECC_PSISR		0x0000	/* PCI slave interrupt status */
     77 #define	PSISR_SERR		(1U << 4)	/* system error */
     78 #define	PSISR_PERR		(1U << 9)	/* parity error */
     79 #define	PSISR_IFU		(1U << 16)	/* inbound FIFO uflow */
     80 #define	PSISR_IFO		(1U << 17)	/* inbound FIFO oflow */
     81 #define	PSISR_OFU		(1U << 18)	/* outbound FIFO uflow */
     82 #define	PSISR_OFO		(1U << 19)	/* outbound FIFO oflow */
     83 
     84 #define	BECC_PSTR0		0x0010	/* PCI slave translation window #0 */
     85 #define	BECC_PSTR1		0x0018	/* PCI slave translation window #1 */
     86 #define	PSTRx_ADDRMASK		(3U << 25)	/* address mask */
     87 #define	PSTRx_BEE		(1U << 0)	/* big-endian enable */
     88 #define	BECC_PSTR2		0x0020	/* PCI slave translation window #2 */
     89 #define	PSTR2_ADDRMASK		(0U)		/* address mask (all SDRAM) */
     90 
     91 #define	BECC_PMISR		0x0100	/* PCI master interrupt status */
     92 #define	PMISR_PE		(1U << 0)	/* parity error */
     93 #define	PMISR_TA		(1U << 2)	/* target abort */
     94 #define	PMISR_MA		(1U << 3)	/* master abort */
     95 #define	PMISR_IFU		(1U << 16)	/* inbound FIFO uflow */
     96 #define	PMISR_IFO		(1U << 17)	/* inbound FIFO oflow */
     97 #define	PMISR_OFU		(1U << 18)	/* outbound FIFO uflow */
     98 #define	PMISR_OFO		(1U << 19)	/* outbound FIFO oflow */
     99 
    100 #define	BECC_IDSEL_BIT		11	/* first device on PCI bus */
    101 
    102 #define	BECC_POMR1		0x0110	/* PCI outbound memory window #1 */
    103 #define	BECC_POMR2		0x0114	/* PCI outbound memory window #2 */
    104 #define	POMRx_ADDRMASK		0xfe000000	/* address mask */
    105 #define	POMRx_BEE		(1U << 2)	/* big-endian enable */
    106 #define	POMRx_F32		(1U << 3)	/* force 32-bit transfer */
    107 #define	POMRx_BO(x)		(x)		/* busrt order (MBZ) */
    108 #define	BECC_POMR3		0x0130	/* PCI outbound memory window #3 */
    109 #define	POMR3_ADDRMASK		0xc0000000	/* address mask */
    110 
    111 #define	BECC_POIR		0x0118	/* PCI outbound I/O window */
    112 #define	POIR_ADDRMASK		0xfe000000	/* address mask */
    113 #define	POIR_BEE		(1U << 2)	/* big-endian enable */
    114 
    115 #define	BECC_POCR		0x0120	/* PCI outbound config window */
    116 #define	POCR_BEE		(1U << 2)	/* big-endian enable */
    117 #define	POCR_TYPE		(1U << 0)	/* for type 1 cycles */
    118 
    119 #define	BECC_DMACR		0x0200	/* DMA control register */
    120 #define	DMACR_CE		(1U << 0)	/* channel enable */
    121 
    122 #define	BECC_DMASR		0x0204	/* DMA status register */
    123 #define	DMASR_PEF		(1U << 0)	/* PCI parity error */
    124 #define	DMASR_PTA		(1U << 2)	/* PCI target abort */
    125 #define	DMASR_PMA		(1U << 3)	/* PCI master abort */
    126 #define	DMASR_EOTI		(1U << 8)	/* end of transfer interrupt */
    127 #define	DMASR_CA		(1U << 10)	/* channel active */
    128 #define	DMASR_IFU		(1U << 16)	/* inbound FIFO uflow */
    129 #define	DMASR_IFO		(1U << 17)	/* inbound FIFO oflow */
    130 #define	DMASR_OFU		(1U << 18)	/* outbound FIFO uflow */
    131 #define	DMASR_OFO		(1U << 19)	/* outbound FIFO oflow */
    132 
    133 #define	BECC_DMAPCIAR		0x0210	/* DMA PCI address */
    134 
    135 #define	BECC_DMALAR		0x021c	/* DMA local address */
    136 
    137 #define	BECC_DMABCR		0x0220	/* DMA byte count */
    138 
    139 #define	BECC_DMADCR		0x0224	/* DMA descriptor control */
    140 #define	DMADCR_F32		(1U << 6)	/* force 32-bit */
    141 #define	DMADCR_BEE		(1U << 5)	/* big-endian enable */
    142 #define	DMADCR_PCICMD(x)	(x)		/* PCI command */
    143 
    144 #define	PCICMD_MR		0x6	/* memory read */
    145 #define	PCICMD_MRL		0xe	/* memory read line */
    146 #define	PCICMD_MRM		0xc	/* memory read multiple */
    147 #define	PCICMD_MW		0x7	/* memory write */
    148 
    149 #define	BECC_TSCRA		0x0300	/* Timer status/control A */
    150 #define	BECC_TSCRB		0x0320	/* Timer status/control B */
    151 #define	TSCRx_TE		(1U << 0)	/* timer enable */
    152 #define	TSCRx_CM		(1U << 1)	/* continuous mode */
    153 #define	TSCRx_TIF		(1U << 9)	/* timer interrupt flag */
    154 
    155 #define	BECC_TPRA		0x0304	/* Timer preload A */
    156 #define	BECC_TPRB		0x0324	/* Timer preload B */
    157 
    158 #define	BECC_TCVRA		0x0308	/* Timer current value A */
    159 #define	BECC_TCVRB		0x0328	/* Timer current value B */
    160 
    161 #define	BECC_ICSR		0x0400	/* Interrupt control/status */
    162 #define	BECC_ICMR		0x0404	/* Interrupt mask */
    163 #define	BECC_ICSTR		0x0408	/* Interrupt steer */
    164 
    165 #define	ICU_SOFT		0	/* software interrupt */
    166 #define	ICU_TIMERA		1	/* timer A */
    167 #define	ICU_TIMERB		2	/* timer B */
    168 #define	ICU_DIAGERR		7	/* diagnostic error */
    169 #define	ICU_DMA_EOT		8	/* DMA end-of-transfer */
    170 #define	ICU_DMA_PEF		9	/* DMA parity error */
    171 #define	ICU_DMA_TA		10	/* DMA target abort */
    172 #define	ICU_DMA_MA		11	/* DMA master abort */
    173 #define	ICU_PCI_PERR		16	/* PCI parity error */
    174 #define	ICU_PCI_SERR		19	/* PCI system error */
    175 #define	ICU_PCI_POAPEI		20	/* PCI outbound ATU parity error */
    176 #define	ICU_PCI_POATAI		21	/* PCI outbound ATU target abort */
    177 #define	ICU_PCI_POAMAI		22	/* PCI outbound ATU master abort */
    178 #define	ICU_UARTA		24	/* UART A */
    179 #define	ICU_UARTB		25	/* UART B */
    180 #define	ICU_PCI_INTA		26	/* PCI INTA# */
    181 #define	ICU_PCI_INTB		27	/* PCI INTB# */
    182 #define	ICU_PCI_INTC		28	/* PCI INTC# */
    183 #define	ICU_PCI_INTD		29	/* PCI INTD# */
    184 #define	ICU_PUSHBUTTON		30	/* push button pulse */
    185 
    186 #define	ICU_RESERVED_MASK	((1U << 3) | (1U << 4) | (1U << 5) |	\
    187 				 (1U << 6) | (1U << 12) | (1U << 13) |	\
    188 				 (1U << 14) | (1U << 15) | (1U << 17) |	\
    189 				 (1U << 18) | (1U << 23) | (1U << 31))
    190 #define	ICU_VALID_MASK		(~ICU_RESERVED_MASK)
    191 
    192 #define	BECC_RSSR		0x0500	/* rotary switch status */
    193 #define	RSSR_POS		0x0000000f	/* switch position */
    194 #define	RSSR_BE			(1U << 6)	/* big-endian jumper */
    195 
    196 #endif /* _BECCREG_H_ */
    197