Home | History | Annotate | Line # | Download | only in mace
      1  1.3  jmcneill /*	$NetBSD: macereg.h,v 1.3 2007/04/13 03:36:24 jmcneill Exp $	*/
      2  1.1    sekiya 
      3  1.1    sekiya /*
      4  1.1    sekiya  * Copyright (c) 2000 Soren S. Jorvang
      5  1.1    sekiya  * All rights reserved.
      6  1.1    sekiya  *
      7  1.1    sekiya  * Redistribution and use in source and binary forms, with or without
      8  1.1    sekiya  * modification, are permitted provided that the following conditions
      9  1.1    sekiya  * are met:
     10  1.1    sekiya  * 1. Redistributions of source code must retain the above copyright
     11  1.1    sekiya  *    notice, this list of conditions and the following disclaimer.
     12  1.1    sekiya  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1    sekiya  *    notice, this list of conditions and the following disclaimer in the
     14  1.1    sekiya  *    documentation and/or other materials provided with the distribution.
     15  1.1    sekiya  * 3. All advertising materials mentioning features or use of this software
     16  1.1    sekiya  *    must display the following acknowledgement:
     17  1.1    sekiya  *          This product includes software developed for the
     18  1.1    sekiya  *          NetBSD Project.  See http://www.NetBSD.org/ for
     19  1.1    sekiya  *          information about NetBSD.
     20  1.1    sekiya  * 4. The name of the author may not be used to endorse or promote products
     21  1.1    sekiya  *    derived from this software without specific prior written permission.
     22  1.1    sekiya  *
     23  1.1    sekiya  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     24  1.1    sekiya  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     25  1.1    sekiya  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     26  1.1    sekiya  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     27  1.1    sekiya  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     28  1.1    sekiya  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     29  1.1    sekiya  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     30  1.1    sekiya  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     31  1.1    sekiya  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     32  1.1    sekiya  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     33  1.1    sekiya  */
     34  1.1    sekiya 
     35  1.1    sekiya #define MACE_BASE			0x1f000000
     36  1.1    sekiya 
     37  1.1    sekiya /* PCI definitions (offset 0x080000) */
     38  1.1    sekiya 
     39  1.1    sekiya #define MACE_PCI_ERROR_ADDR		0x00
     40  1.1    sekiya #define MACE_PCI_ERROR_FLAGS		0x04
     41  1.1    sekiya 
     42  1.1    sekiya #define MACE_PCI_CONTROL		0x08
     43  1.1    sekiya #define MACE_PCI_CONTROL_INT_MASK	 0x000000ff
     44  1.1    sekiya #define MACE_PCI_CONTROL_SERR_ENA	 0x00000100
     45  1.1    sekiya #define MACE_PCI_CONTROL_ARB_N6		 0x00000200
     46  1.1    sekiya #define MACE_PCI_CONTROL_PARITY_ERR	 0x00000400
     47  1.1    sekiya #define MACE_PCI_CONTROL_MRMRA_ENA	 0x00000800
     48  1.1    sekiya #define MACE_PCI_CONTROL_ARB_N3		 0x00001000
     49  1.1    sekiya #define MACE_PCI_CONTROL_ARB_N4		 0x00002000
     50  1.1    sekiya #define MACE_PCI_CONTROL_ARB_N5		 0x00004000
     51  1.1    sekiya #define MACE_PCI_CONTROL_PARK_LIU	 0x00008000
     52  1.1    sekiya 
     53  1.1    sekiya #define MACE_PCI_CONTROL_INV_INT_MASK 	 0x00ff0000
     54  1.1    sekiya #define MACE_PCI_CONTROL_OVERRUN_INT	 0x01000000
     55  1.1    sekiya #define MACE_PCI_CONTROL_PARITY_INT	 0x02000000
     56  1.1    sekiya #define MACE_PCI_CONTROL_SERR_INT	 0x04000000
     57  1.1    sekiya #define MACE_PCI_CONTROL_IT_INT		 0x08000000
     58  1.1    sekiya #define MACE_PCI_CONTROL_RE_INT		 0x10000000
     59  1.1    sekiya #define MACE_PCI_CONTROL_DPED_INT	 0x20000000
     60  1.1    sekiya #define MACE_PCI_CONTROL_TAR_INT	 0x40000000
     61  1.1    sekiya #define MACE_PCI_CONTROL_MAR_INT	 0x80000000
     62  1.1    sekiya 
     63  1.1    sekiya 
     64  1.1    sekiya #define MACE_PCI_REV_INFO_R	0x0c
     65  1.1    sekiya #define MACE_PCI_FLUSH_W	0x0c
     66  1.1    sekiya #define MACE_PCI_CONFIG_ADDR	0xcf8
     67  1.1    sekiya #define MACE_PCI_CONFIG_DATA	0xcfc
     68  1.1    sekiya #define MACE_PCI_LOW_MEMORY	0x1a000000
     69  1.1    sekiya #define MACE_PCI_LOW_IO		0x18000000
     70  1.1    sekiya #define MACE_PCI_NATIVE_VIEW	0x40000000
     71  1.1    sekiya #define MACE_PCI_IO		0x80000000
     72  1.1    sekiya #define MACE_PCI_HI_MEMORY	0x280000000
     73  1.1    sekiya #define MACE_PCI_HI_IO		0x100000000
     74  1.1    sekiya 
     75  1.1    sekiya #define MACE_VIN1		0x100000
     76  1.1    sekiya #define MACE_VIN2		0x180000
     77  1.1    sekiya #define MACE_VOUT		0x200000
     78  1.1    sekiya #define MACE_PERIF		0x300000
     79  1.1    sekiya #define MACE_ISA_EXT		0x380000
     80  1.1    sekiya 
     81  1.1    sekiya #define MACE_AUDIO		(MACE_PERIF + 0x00000)
     82  1.1    sekiya #define MACE_ISA		(MACE_PERIF + 0x10000)
     83  1.1    sekiya #define MACE_KBDMS		(MACE_PERIF + 0x20000)
     84  1.1    sekiya #define MACE_I2C		(MACE_PERIF + 0x30000)
     85  1.1    sekiya #define MACE_UST_MSC		(MACE_PERIF + 0x40000)
     86  1.1    sekiya 
     87  1.1    sekiya 
     88  1.1    sekiya 
     89  1.1    sekiya /***********************
     90  1.1    sekiya  * PCI_ERROR_FLAGS Bits
     91  1.1    sekiya  */
     92  1.1    sekiya #define MACE_PERR_MASTER_ABORT			0x80000000
     93  1.1    sekiya #define MACE_PERR_TARGET_ABORT			0x40000000
     94  1.1    sekiya #define MACE_PERR_DATA_PARITY_ERR		0x20000000
     95  1.1    sekiya #define MACE_PERR_RETRY_ERR			0x10000000
     96  1.1    sekiya #define MACE_PERR_ILLEGAL_CMD			0x08000000
     97  1.1    sekiya #define MACE_PERR_SYSTEM_ERR			0x04000000
     98  1.1    sekiya #define MACE_PERR_INTERRUPT_TEST		0x02000000
     99  1.1    sekiya #define MACE_PERR_PARITY_ERR			0x01000000
    100  1.1    sekiya #define MACE_PERR_OVERRUN			0x00800000
    101  1.1    sekiya #define MACE_PERR_RSVD				0x00400000
    102  1.1    sekiya #define MACE_PERR_MEMORY_ADDR			0x00200000
    103  1.1    sekiya #define MACE_PERR_CONFIG_ADDR			0x00100000
    104  1.1    sekiya #define MACE_PERR_MASTER_ABORT_ADDR_VALID	0x00080000
    105  1.1    sekiya #define MACE_PERR_TARGET_ABORT_ADDR_VALID	0x00040000
    106  1.1    sekiya #define MACE_PERR_DATA_PARITY_ADDR_VALID	0x00020000
    107  1.1    sekiya #define MACE_PERR_RETRY_ADDR_VALID		0x00010000
    108  1.1    sekiya 
    109  1.1    sekiya 
    110  1.1    sekiya /*******************************
    111  1.1    sekiya  * MACE ISA External Address Map
    112  1.1    sekiya  */
    113  1.1    sekiya #define MACE_ISA_EPP_BASE	(MACE_ISA_EXT + 0x00000)
    114  1.1    sekiya #define MACE_ISA_ECP_BASE	(MACE_ISA_EXT + 0x08000)
    115  1.1    sekiya #define MACE_ISA_SER1_BASE	(MACE_ISA_EXT + 0x10000)
    116  1.1    sekiya #define MACE_ISA_SER2_BASE	(MACE_ISA_EXT + 0x18000)
    117  1.1    sekiya #define MACE_ISA_RTC_BASE	(MACE_ISA_EXT + 0x20000)
    118  1.1    sekiya #define MACE_ISA_GAME_BASE	(MACE_ISA_EXT + 0x30000)
    119  1.1    sekiya 
    120  1.1    sekiya 
    121  1.1    sekiya /*************************
    122  1.1    sekiya  * ISA Interface Registers
    123  1.1    sekiya  */
    124  1.1    sekiya 
    125  1.1    sekiya /* ISA Ringbase Address and Reset Register */
    126  1.1    sekiya 
    127  1.1    sekiya #define MACE_ISA_RINGBASE	(MACE_ISA + 0x0000)
    128  1.3  jmcneill #define  MACE_ISA_RING_ALIGN	0x00010000
    129  1.1    sekiya 
    130  1.1    sekiya /* Flash-ROM/LED/DP-RAM/NIC Controller Register */
    131  1.1    sekiya 
    132  1.1    sekiya #define MACE_ISA_FLASH_NIC_REG	(MACE_ISA + 0x0008)
    133  1.1    sekiya #define  MACE_ISA_FLASH_WE	0x01	/* 1=> Enable FLASH writes */
    134  1.1    sekiya #define  MACE_ISA_PWD_CLEAR	0x02	/* 1=> PWD CLEAR jumper detected */
    135  1.1    sekiya #define  MACE_ISA_NIC_DEASSERT	0x04
    136  1.1    sekiya #define  MACE_ISA_NIC_DATA	0x08
    137  1.1    sekiya #define  MACE_ISA_LED_RED	0x10	/* 1=> Illuminate RED LED */
    138  1.1    sekiya #define  MACE_ISA_LED_GREEN	0x20	/* 1=> Illuminate GREEN LED */
    139  1.1    sekiya #define  MACE_ISA_DP_RAM_ENABLE	0x40
    140  1.1    sekiya 
    141  1.1    sekiya /* Interrupt Status and Mask Registers (32 bits) */
    142  1.1    sekiya 
    143  1.1    sekiya #define MACE_ISA_INT_STATUS	(MACE_ISA + 0x0010)
    144  1.1    sekiya #define MACE_ISA_INT_MASK	(MACE_ISA + 0x0018)
    145  1.1    sekiya 
    146  1.1    sekiya /* bit definitions */
    147  1.1    sekiya #define MACE_ISA_INT_RTC_IRQ	0x00000100
    148  1.3  jmcneill #define  MACE_ISA_INT_AUDIO_SC	      0x02
    149  1.3  jmcneill #define  MACE_ISA_INT_AUDIO_DMA1      0x04
    150  1.3  jmcneill #define  MACE_ISA_INT_AUDIO_DMA2      0x10
    151  1.3  jmcneill #define  MACE_ISA_INT_AUDIO_DMA3      0x40
    152  1.1    sekiya 
    153  1.1    sekiya 
    154  1.1    sekiya /********************************
    155  1.1    sekiya  * MACE Timer Interface Registers
    156  1.1    sekiya  *
    157  1.1    sekiya  * Note: MSC_UST<31:0> is MSC, MSC_UST<63:32> is UST.
    158  1.1    sekiya  */
    159  1.1    sekiya #define MACE_UST	   (MACE_UST_MSC + 0x00) /* Universial system time */
    160  1.1    sekiya #define MACE_COMPARE1	   (MACE_UST_MSC + 0x08) /* Interrupt compare reg 1 */
    161  1.1    sekiya #define MACE_COMPARE2	   (MACE_UST_MSC + 0x10) /* Interrupt compare reg 2 */
    162  1.1    sekiya #define MACE_COMPARE3	   (MACE_UST_MSC + 0x18) /* Interrupt compare reg 3 */
    163  1.1    sekiya #define MACE_UST_PERIOD	   960			 /* UST Period in ns  */
    164  1.1    sekiya 
    165  1.1    sekiya #define MACE_AIN_MSC_UST   (MACE_UST_MSC + 0x20) /* Audio in MSC/UST pair */
    166  1.1    sekiya #define MACE_AOUT1_MSC_UST (MACE_UST_MSC + 0x28) /* Audio out 1 MSC/UST pair */
    167  1.1    sekiya #define MACE_AOUT2_MSC_UST (MACE_UST_MSC + 0x30) /* Audio out 2 MSC/UST pair */
    168  1.1    sekiya #define MACE_VIN1_MSC_UST  (MACE_UST_MSC + 0x38) /* Video In 1 MSC/UST pair */
    169  1.1    sekiya #define MACE_VIN2_MSC_UST  (MACE_UST_MSC + 0x40) /* Video In 2 MSC/UST pair */
    170  1.1    sekiya #define MACE_VOUT_MSC_UST  (MACE_UST_MSC + 0x48) /* Video out MSC/UST pair */
    171