Home | History | Annotate | Line # | Download | only in pci
dwlpxreg.h revision 1.2
      1  1.2  cgd /*	$NetBSD: dwlpxreg.h,v 1.2 1997/03/12 21:10:10 cgd Exp $	*/
      2  1.1  cgd 
      3  1.1  cgd /*
      4  1.2  cgd  * Copyright (c) 1997 by Matthew Jacob
      5  1.1  cgd  * NASA AMES Research Center.
      6  1.1  cgd  * All rights reserved.
      7  1.1  cgd  *
      8  1.1  cgd  * Redistribution and use in source and binary forms, with or without
      9  1.1  cgd  * modification, are permitted provided that the following conditions
     10  1.1  cgd  * are met:
     11  1.1  cgd  * 1. Redistributions of source code must retain the above copyright
     12  1.1  cgd  *    notice immediately at the beginning of the file, without modification,
     13  1.1  cgd  *    this list of conditions, and the following disclaimer.
     14  1.1  cgd  * 2. Redistributions in binary form must reproduce the above copyright
     15  1.1  cgd  *    notice, this list of conditions and the following disclaimer in the
     16  1.1  cgd  *    documentation and/or other materials provided with the distribution.
     17  1.1  cgd  * 3. The name of the author may not be used to endorse or promote products
     18  1.1  cgd  *    derived from this software without specific prior written permission.
     19  1.1  cgd  *
     20  1.1  cgd  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
     21  1.1  cgd  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     22  1.1  cgd  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     23  1.1  cgd  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
     24  1.1  cgd  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     25  1.1  cgd  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     26  1.1  cgd  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     27  1.1  cgd  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     28  1.1  cgd  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     29  1.1  cgd  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     30  1.1  cgd  * SUCH DAMAGE.
     31  1.1  cgd  */
     32  1.1  cgd 
     33  1.1  cgd /*
     34  1.1  cgd  * Taken from combinations of:
     35  1.1  cgd  *
     36  1.1  cgd  *	``DWLPA and DWLPB PCI Adapter Technical Manual,
     37  1.1  cgd  *	  Order Number: EK-DWLPX-TM.A01''
     38  1.1  cgd  *
     39  1.1  cgd  *  and
     40  1.1  cgd  *
     41  1.1  cgd  *	``AlphaServer 8200/8400 System Technical Manual,
     42  1.1  cgd  *	  Order Number EK-T8030-TM. A01''
     43  1.1  cgd  */
     44  1.1  cgd 
     45  1.1  cgd #define	REGVAL(r)	(*(int32_t *)ALPHA_PHYS_TO_K0SEG(r))
     46  1.1  cgd 
     47  1.1  cgd /*
     48  1.1  cgd  * There are (potentially) 4 I/O hoses, and there are three
     49  1.1  cgd  * (physical) PCI busses per DWLPX.
     50  1.1  cgd  *
     51  1.1  cgd  * A CPU to PCI Address Mapping looks (roughly) like this:
     52  1.1  cgd  *
     53  1.1  cgd  *  39 38........36 35.34 33.....32 31....................5 4.........3 2...0
     54  1.1  cgd  *  --------------------------------------------------------------------------
     55  1.1  cgd  *  |1| I/O NodeID |Hose#|PCI Space|Byte Aligned I/O <26:0>|Byte Length|0 0 0|
     56  1.1  cgd  *  --------------------------------------------------------------------------
     57  1.1  cgd  *
     58  1.1  cgd  * I/O Node is the TLSB Node ID minus 4. Don't ask.
     59  1.1  cgd  */
     60  1.1  cgd 
     61  1.1  cgd #define	NHPC	3
     62  1.1  cgd 
     63  1.1  cgd /*
     64  1.1  cgd  * Address Space Cookies
     65  1.1  cgd  *
     66  1.1  cgd  * (lacking I/O Node ID and Hose Numbers)
     67  1.1  cgd  */
     68  1.1  cgd 
     69  1.1  cgd #define	DWLPX_PCI_DENSE		0x000000000LL
     70  1.1  cgd #define	DWLPX_PCI_SPARSE	0x100000000LL
     71  1.1  cgd #define	DWLPX_PCI_IOSPACE	0x200000000LL
     72  1.1  cgd #define	DWLPX_PCI_CONF		0x300000000LL
     73  1.1  cgd 
     74  1.1  cgd /*
     75  1.1  cgd  * PCIA Interface Adapter Register Addresses (Offsets from Node Address)
     76  1.1  cgd  *
     77  1.1  cgd  *
     78  1.1  cgd  * Addresses are for Hose #0, PCI bus #0. Macros below will offset
     79  1.1  cgd  * per bus. I/O Hose and TLSB Node I/D offsets must be added separately.
     80  1.1  cgd  */
     81  1.1  cgd 
     82  1.1  cgd #define	_PCIA_CTL	0x380000000LL	/* PCI 0 Bus Control */
     83  1.1  cgd #define	_PCIA_MRETRY	0x380000080LL	/* PCI 0 Master Retry Limit */
     84  1.1  cgd #define	_PCIA_GPR	0x380000100LL	/* PCI 0 General Purpose */
     85  1.1  cgd #define	_PCIA_ERR	0x380000180LL	/* PCI 0 Error Summary */
     86  1.1  cgd #define	_PCIA_FADR	0x380000200LL	/* PCI 0 Failing Address */
     87  1.1  cgd #define	_PCIA_IMASK	0x380000280LL	/* PCI 0 Interrupt Mask */
     88  1.1  cgd #define	_PCIA_DIAG	0x380000300LL	/* PCI 0 Diagnostic  */
     89  1.1  cgd #define	_PCIA_IPEND	0x380000380LL	/* PCI 0 Interrupt Pending */
     90  1.1  cgd #define	_PCIA_IPROG	0x380000400LL	/* PCI 0 Interrupt in Progress */
     91  1.1  cgd #define	_PCIA_WMASK_A	0x380000480LL	/* PCI 0 Window Mask A */
     92  1.1  cgd #define	_PCIA_WBASE_A	0x380000500LL	/* PCI 0 Window Base A */
     93  1.1  cgd #define	_PCIA_TBASE_A	0x380000580LL	/* PCI 0 Window Translated Base A */
     94  1.1  cgd #define	_PCIA_WMASK_B	0x380000600LL	/* PCI 0 Window Mask B */
     95  1.1  cgd #define	_PCIA_WBASE_B	0x380000680LL	/* PCI 0 Window Base B */
     96  1.1  cgd #define	_PCIA_TBASE_B	0x380000700LL	/* PCI 0 Window Translated Base B */
     97  1.1  cgd #define	_PCIA_WMASK_C	0x380000780LL	/* PCI 0 Window Mask C */
     98  1.1  cgd #define	_PCIA_WBASE_C	0x380000800LL	/* PCI 0 Window Base C */
     99  1.1  cgd #define	_PCIA_TBASE_C	0x380000880LL	/* PCI 0 Window Translated Base C */
    100  1.1  cgd #define	_PCIA_ERRVEC	0x380000900LL	/* PCI 0 Error Interrupt Vector */
    101  1.1  cgd #define	_PCIA_DEVVEC	0x380001000LL	/* PCI 0 Device Interrupt Vector */
    102  1.1  cgd 
    103  1.1  cgd 
    104  1.1  cgd #define	PCIA_CTL(hpc)		(_PCIA_CTL	+ (0x200000 * (hpc)))
    105  1.1  cgd #define	PCIA_MRETRY(hpc)	(_PCIA_MRETRY	+ (0x200000 * (hpc)))
    106  1.1  cgd #define	PCIA_GPR(hpc)		(_PCIA_GPR	+ (0x200000 * (hpc)))
    107  1.1  cgd #define	PCIA_ERR(hpc)		(_PCIA_ERR	+ (0x200000 * (hpc)))
    108  1.1  cgd #define	PCIA_FADR(hpc)		(_PCIA_FADR	+ (0x200000 * (hpc)))
    109  1.1  cgd #define	PCIA_IMASK(hpc)		(_PCIA_IMASK	+ (0x200000 * (hpc)))
    110  1.1  cgd #define	PCIA_DIAG(hpc)		(_PCIA_DIAG	+ (0x200000 * (hpc)))
    111  1.1  cgd #define	PCIA_IPEND(hpc)		(_PCIA_IPEND	+ (0x200000 * (hpc)))
    112  1.1  cgd #define	PCIA_IPROG(hpc)		(_PCIA_IPROG	+ (0x200000 * (hpc)))
    113  1.1  cgd #define	PCIA_WMASK_A(hpc)	(_PCIA_WMASK_A	+ (0x200000 * (hpc)))
    114  1.1  cgd #define	PCIA_WBASE_A(hpc)	(_PCIA_WBASE_A	+ (0x200000 * (hpc)))
    115  1.1  cgd #define	PCIA_TBASE_A(hpc)	(_PCIA_TBASE_A	+ (0x200000 * (hpc)))
    116  1.1  cgd #define	PCIA_WMASK_B(hpc)	(_PCIA_WMASK_B	+ (0x200000 * (hpc)))
    117  1.1  cgd #define	PCIA_WBASE_B(hpc)	(_PCIA_WBASE_B	+ (0x200000 * (hpc)))
    118  1.1  cgd #define	PCIA_TBASE_B(hpc)	(_PCIA_TBASE_B	+ (0x200000 * (hpc)))
    119  1.1  cgd #define	PCIA_WMASK_C(hpc)	(_PCIA_WMASK_C	+ (0x200000 * (hpc)))
    120  1.1  cgd #define	PCIA_WBASE_C(hpc)	(_PCIA_WBASE_C	+ (0x200000 * (hpc)))
    121  1.1  cgd #define	PCIA_TBASE_C(hpc)	(_PCIA_TBASE_C	+ (0x200000 * (hpc)))
    122  1.1  cgd #define	PCIA_ERRVEC(hpc)	(_PCIA_ERRVEC	+ (0x200000 * (hpc)))
    123  1.1  cgd 
    124  1.1  cgd #define	PCIA_DEVVEC(hpc, subslot, ipin)	\
    125  1.1  cgd  (_PCIA_DEVVEC + (0x200000 * (hpc)) + ((subslot) * 0x200) + ((ipin-1) * 0x80))
    126  1.1  cgd 
    127  1.1  cgd #define	PCIA_SCYCLE	0x380002000LL	/* PCI Special Cycle */
    128  1.1  cgd #define	PCIA_IACK	0x380002080LL	/* PCI Interrupt Acknowledge */
    129  1.1  cgd 
    130  1.1  cgd #define	PCIA_PRESENT	0x380800000LL	/* PCI Slot Present */
    131  1.1  cgd #define	PCIA_TBIT	0x380A00000LL	/* PCI TBIT */
    132  1.1  cgd #define	PCIA_MCTL	0x380C00000LL	/* PCI Module Control */
    133  1.1  cgd #define	PCIA_IBR	0x380E00000LL	/* PCI Information Base Repair */
    134