Home | History | Annotate | Line # | Download | only in rmi
rmixlreg.h revision 1.1.2.1
      1  1.1.2.1  cliff /*	$NetBSD: rmixlreg.h,v 1.1.2.1 2009/09/13 03:27:38 cliff Exp $	*/
      2  1.1.2.1  cliff 
      3  1.1.2.1  cliff /*-
      4  1.1.2.1  cliff  * Copyright (c) 2009 The NetBSD Foundation, Inc.
      5  1.1.2.1  cliff  * All rights reserved.
      6  1.1.2.1  cliff  *
      7  1.1.2.1  cliff  * This code is derived from software contributed to The NetBSD Foundation
      8  1.1.2.1  cliff  * by CCCCCCCC NNNNNNNNNN
      9  1.1.2.1  cliff  *
     10  1.1.2.1  cliff  * Redistribution and use in source and binary forms, with or without
     11  1.1.2.1  cliff  * modification, are permitted provided that the following conditions
     12  1.1.2.1  cliff  * are met:
     13  1.1.2.1  cliff  * 1. Redistributions of source code must retain the above copyright
     14  1.1.2.1  cliff  *    notice, this list of conditions and the following disclaimer.
     15  1.1.2.1  cliff  * 2. Redistributions in binary form must reproduce the above copyright
     16  1.1.2.1  cliff  *    notice, this list of conditions and the following disclaimer in the
     17  1.1.2.1  cliff  *    documentation and/or other materials provided with the distribution.
     18  1.1.2.1  cliff  *
     19  1.1.2.1  cliff  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20  1.1.2.1  cliff  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21  1.1.2.1  cliff  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22  1.1.2.1  cliff  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23  1.1.2.1  cliff  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24  1.1.2.1  cliff  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25  1.1.2.1  cliff  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26  1.1.2.1  cliff  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27  1.1.2.1  cliff  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28  1.1.2.1  cliff  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29  1.1.2.1  cliff  * POSSIBILITY OF SUCH DAMAGE.
     30  1.1.2.1  cliff  */
     31  1.1.2.1  cliff 
     32  1.1.2.1  cliff 
     33  1.1.2.1  cliff #ifndef _MIPS_RMI_RMIXLREGS_H_
     34  1.1.2.1  cliff #define _MIPS_RMI_RMIXLREGS_H_
     35  1.1.2.1  cliff 
     36  1.1.2.1  cliff /*
     37  1.1.2.1  cliff  * RMIXL Coprocessor 2 registers:
     38  1.1.2.1  cliff  */
     39  1.1.2.1  cliff #ifdef _LOCORE
     40  1.1.2.1  cliff #define _(n)    __CONCAT($,n)
     41  1.1.2.1  cliff #else
     42  1.1.2.1  cliff #define _(n)    n
     43  1.1.2.1  cliff #endif
     44  1.1.2.1  cliff 					/*		#sels --------------+	*/
     45  1.1.2.1  cliff 					/*		#regs -----------+  |	*/
     46  1.1.2.1  cliff 					/* What:	#bits --+	 |  |	*/
     47  1.1.2.1  cliff 					/*			v	 v  v 	*/
     48  1.1.2.1  cliff #define RMIXL_COP_2_TXBUF	_(0)	/* Transmit Buffers	64	[1][4]	*/
     49  1.1.2.1  cliff #define RMIXL_COP_2_RXBUF	_(1)	/* Receive Buffers	64	[1][4]	*/
     50  1.1.2.1  cliff #define RMIXL_COP_2_MSG_STS	_(2)	/* Mesage Status	32	[1][2]	*/
     51  1.1.2.1  cliff #define RMIXL_COP_2_MSG_CFG	_(3)	/* MEssage Config	32	[1][2]	*/
     52  1.1.2.1  cliff #define RMIXL_COP_2_MSG_BSZ	_(4)	/* Message Bucket Size	32	[1][8]	*/
     53  1.1.2.1  cliff #define RMIXL_COP_2_CREDITS	_(16)	/* Credit Counters	32     [16][8]	*/
     54  1.1.2.1  cliff 
     55  1.1.2.1  cliff /* CP2 bit defines TBD */
     56  1.1.2.1  cliff 
     57  1.1.2.1  cliff /*
     58  1.1.2.1  cliff  * RMIXL Processor Control Register addresses
     59  1.1.2.1  cliff  * - Offset  in bits  7..0
     60  1.1.2.1  cliff  * - BlockID in bits 15..8
     61  1.1.2.1  cliff  */
     62  1.1.2.1  cliff #define RMIXL_PCR_THREADEN			0x0000
     63  1.1.2.1  cliff #define RMIXL_PCR_SOFTWARE_SLEEP		0x0001
     64  1.1.2.1  cliff #define RMIXL_PCR_SCHEDULING			0x0002
     65  1.1.2.1  cliff #define RMIXL_PCR_SCHEDULING_COUNTERS		0x0003
     66  1.1.2.1  cliff #define RMIXL_PCR_BHRPM				0x0004
     67  1.1.2.1  cliff #define RMIXL_PCR_IFU_DEFEATURE			0x0006
     68  1.1.2.1  cliff #define RMIXL_PCR_ICU_DEFEATURE			0x0100
     69  1.1.2.1  cliff #define RMIXL_PCR_ICU_ERROR_LOGGING		0x0101
     70  1.1.2.1  cliff #define RMIXL_PCR_ICU_DEBUG_ACCESS_ADDR		0x0102
     71  1.1.2.1  cliff #define RMIXL_PCR_ICU_DEBUG_ACCESS_DATALO	0x0103
     72  1.1.2.1  cliff #define RMIXL_PCR_ICU_DEBUG_ACCESS_DATAHI	0x0104
     73  1.1.2.1  cliff #define RMIXL_PCR_ICU_SAMPLING_LFSR		0x0105
     74  1.1.2.1  cliff #define RMIXL_PCR_ICU_SAMPLING_PC		0x0106
     75  1.1.2.1  cliff #define RMIXL_PCR_ICU_SAMPLING_SETUP		0x0107
     76  1.1.2.1  cliff #define RMIXL_PCR_ICU_SAMPLING_TIMER		0x0108
     77  1.1.2.1  cliff #define RMIXL_PCR_ICU_SAMPLING_PC_UPPER		0x0109
     78  1.1.2.1  cliff #define RMIXL_PCR_IEU_DEFEATURE			0x0200
     79  1.1.2.1  cliff #define RMIXL_PCR_TARGET_PC_REGISTER		0x0207
     80  1.1.2.1  cliff #define RMIXL_PCR_L1D_CONFIG0			0x0300
     81  1.1.2.1  cliff #define RMIXL_PCR_L1D_CONFIG1			0x0301
     82  1.1.2.1  cliff #define RMIXL_PCR_L1D_CONFIG2			0x0302
     83  1.1.2.1  cliff #define RMIXL_PCR_L1D_CONFIG3			0x0303
     84  1.1.2.1  cliff #define RMIXL_PCR_L1D_CONFIG4			0x0304
     85  1.1.2.1  cliff #define RMIXL_PCR_L1D_STATUS			0x0305
     86  1.1.2.1  cliff #define RMIXL_PCR_L1D_DEFEATURE			0x0306
     87  1.1.2.1  cliff #define RMIXL_PCR_L1D_DEBUG0			0x0307
     88  1.1.2.1  cliff #define RMIXL_PCR_L1D_DEBUG1			0x0308
     89  1.1.2.1  cliff #define RMIXL_PCR_L1D_CACHE_ERROR_LOG		0x0309
     90  1.1.2.1  cliff #define RMIXL_PCR_L1D_CACHE_ERROR_OVF_LO	0x030A
     91  1.1.2.1  cliff #define RMIXL_PCR_L1D_CACHE_INTERRUPT		0x030B
     92  1.1.2.1  cliff #define RMIXL_PCR_MMU_SETUP			0x0400
     93  1.1.2.1  cliff #define RMIXL_PCR_PRF_SMP_EVENT			0x0500
     94  1.1.2.1  cliff #define RMIXL_PCR_RF_SMP_RPLY_BUF		0x0501
     95  1.1.2.1  cliff 
     96  1.1.2.1  cliff /* PCR bit defines TBD */
     97  1.1.2.1  cliff 
     98  1.1.2.1  cliff 
     99  1.1.2.1  cliff /*
    100  1.1.2.1  cliff  * Memory Distributed Interconnect (MDI) System Memory Map
    101  1.1.2.1  cliff  */
    102  1.1.2.1  cliff #define RMIXL_PHYSADDR_MAX	0xffffffffffLL		/* 1TB Physical Address space */
    103  1.1.2.1  cliff #define RMIXL_IO_DEV_PBASE	0x1ef00000		/* default phys. from XL[RS]_IO_BAR */
    104  1.1.2.1  cliff #define RMIXL_IO_DEV_VBASE	MIPS_PHYS_TO_KSEG1(RMIXL_IO_DEV_PBASE)
    105  1.1.2.1  cliff 							/* default virtual base address */
    106  1.1.2.1  cliff #define RMIXL_IO_DEV_SIZE	0x100000		/* I/O Conf. space is 1MB region */
    107  1.1.2.1  cliff 
    108  1.1.2.1  cliff /*
    109  1.1.2.1  cliff  * Peripheral and I/O Configuration Region of Memory
    110  1.1.2.1  cliff  *
    111  1.1.2.1  cliff  * These are relocatable; we run using the reset value defaults,
    112  1.1.2.1  cliff  * and we expect to inherit those intact from the boot firmware.
    113  1.1.2.1  cliff  *
    114  1.1.2.1  cliff  * Many of these overlap between XLR and XLS, exceptions are ifdef'ed.
    115  1.1.2.1  cliff  *
    116  1.1.2.1  cliff  * Device region offsets are relative to RMIXL_IO_DEV_PBASE.
    117  1.1.2.1  cliff  */
    118  1.1.2.1  cliff #define RMIXL_IO_DEV_BRIDGE	0x00000	/* System Bridge Controller */
    119  1.1.2.1  cliff #define RMIXL_IO_DEV_DDR_CHNA	0x01000	/* DDR1/DDR2 DRAM_A Channel, Port MA */
    120  1.1.2.1  cliff #define RMIXL_IO_DEV_DDR_CHNB	0x02000	/* DDR1/DDR2 DRAM_B Channel, Port MB */
    121  1.1.2.1  cliff #define RMIXL_IO_DEV_DDR_CHNC	0x03000	/* DDR1/DDR2 DRAM_C Channel, Port MC */
    122  1.1.2.1  cliff #define RMIXL_IO_DEV_DDR_CHND	0x04000	/* DDR1/DDR2 DRAM_D Channel, Port MD */
    123  1.1.2.1  cliff #if defined(MIPS64_XLR)
    124  1.1.2.1  cliff #define RMIXL_IO_DEV_SRAM	0x07000	/* SRAM Controller, Port SA */
    125  1.1.2.1  cliff #endif	/* MIPS64_XLR */
    126  1.1.2.1  cliff #define RMIXL_IO_DEV_PIC	0x08000	/* Programmable Interrupt Controller */
    127  1.1.2.1  cliff #if defined(MIPS64_XLR)
    128  1.1.2.1  cliff #define RMIXL_IO_DEV_PCIX	0x09000	/* PCI-X */
    129  1.1.2.1  cliff #define RMIXL_IO_DEV_HT		0x0a000	/* HyperTransport */
    130  1.1.2.1  cliff #endif	/* MIPS64_XLR */
    131  1.1.2.1  cliff #define RMIXL_IO_DEV_SAE	0x0b000	/* Security Acceleration Engine */
    132  1.1.2.1  cliff #if defined(MIPS64_XLS)
    133  1.1.2.1  cliff #define XAUI Interface_0	0x0c000	/* XAUI Interface_0 */
    134  1.1.2.1  cliff 					/*  when SGMII Interface_[0-3] are not used */
    135  1.1.2.1  cliff #endif	/* MIPS64_XLS */
    136  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_A	0x0c000	/* RGMII-Interface_A, Port RA */
    137  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_B	0x0d000	/* RGMII-Interface_B, Port RB */
    138  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_C	0x0e000	/* RGMII-Interface_C, Port RC */
    139  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_D	0x0f000	/* RGMII-Interface_D, Port RD */
    140  1.1.2.1  cliff #if defined(MIPS64_XLR)
    141  1.1.2.1  cliff #define RMIXL_IO_DEV_SPI4_A	0x10000	/* SPI-4.2-Interface_A, Port XA */
    142  1.1.2.1  cliff #define RMIXL_IO_DEV_XGMAC_A	0x11000	/* XGMII-Interface_A, Port XA */
    143  1.1.2.1  cliff #define RMIXL_IO_DEV_SPI4_B	0x12000	/* SPI-4.2-Interface_B, Port XB */
    144  1.1.2.1  cliff #define RMIXL_IO_DEV_XGMAC_B	0x13000	/* XGMII-Interface_B, Port XB */
    145  1.1.2.1  cliff #endif	/* MIPS64_XLR */
    146  1.1.2.1  cliff #define RMIXL_IO_DEV_UART_1	0x14000	/* UART_1 (16550 w/ ax4 addrs) */
    147  1.1.2.1  cliff #define RMIXL_IO_DEV_UART_2	0x15000	/* UART_2 (16550 w/ ax4 addrs) */
    148  1.1.2.1  cliff #define RMIXL_IO_DEV_I2C_1	0x16000	/* I2C_1 */
    149  1.1.2.1  cliff #define RMIXL_IO_DEV_I2C_2	0x17000	/* I2C_2 */
    150  1.1.2.1  cliff #define RMIXL_IO_DEV_GPIO	0x18000	/* GPIO */
    151  1.1.2.1  cliff #define RMIXL_IO_DEV_FLASH	0x19000	/* Flash ROM */
    152  1.1.2.1  cliff #define RMIXL_IO_DEV_DMA	0x1a000	/* DMA */
    153  1.1.2.1  cliff #define RMIXL_IO_DEV_L2		0x1b000	/* L2 Cache */
    154  1.1.2.1  cliff #define RMIXL_IO_DEV_TB		0x1c000	/* Trace Buffer */
    155  1.1.2.1  cliff #if defined(MIPS64_XLS)
    156  1.1.2.1  cliff #define RMIXL_IO_DEV_CMP	0x1d000	/* Compression/Decompression */
    157  1.1.2.1  cliff #define RMIXL_IO_DEV_PCIE_BE	0x1e000	/* PCI-Express_BE */
    158  1.1.2.1  cliff #define RMIXL_IO_DEV_PCIE_LE	0x1f000	/* PCI-Express_LE */
    159  1.1.2.1  cliff #define RMIXL_IO_DEV_SRIO_BE	0x1e000	/* SRIO_BE */
    160  1.1.2.1  cliff #define RMIXL_IO_DEV_SRIO_LE	0x1f000	/* SRIO_LE */
    161  1.1.2.1  cliff #define RMIXL_IO_DEV_XAUI_1	0x20000	/* XAUI Interface_1 */
    162  1.1.2.1  cliff 					/*  when SGMII Interface_[4-7] are not used */
    163  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_4	0x20000	/* SGMII-Interface_4, Port SGMII4 */
    164  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_5	0x21000	/* SGMII-Interface_5, Port SGMII5 */
    165  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_6	0x22000	/* SGMII-Interface_6, Port SGMII6 */
    166  1.1.2.1  cliff #define RMIXL_IO_DEV_GMAC_7	0x23000	/* SGMII-Interface_7, Port SGMII7 */
    167  1.1.2.1  cliff #define RMIXL_IO_DEV_USB_A	0x24000	/* USB Interface Low Address Space */
    168  1.1.2.1  cliff #define RMIXL_IO_DEV_USB_B	0x25000	/* USB Interface High Address Space */
    169  1.1.2.1  cliff #endif	/* MIPS64_XLS */
    170  1.1.2.1  cliff 
    171  1.1.2.1  cliff 
    172  1.1.2.1  cliff /*
    173  1.1.2.1  cliff  * Programmable Interrupt Controller registers
    174  1.1.2.1  cliff  * the Programming Reference Manual table 10.4
    175  1.1.2.1  cliff  * lists "Reg ID" values not offsets;
    176  1.1.2.1  cliff  * assume offset = id * 4
    177  1.1.2.1  cliff  */
    178  1.1.2.1  cliff #define _RMIXL_OFFSET(id)	((id) * 4)
    179  1.1.2.1  cliff #define	RMIXL_PIC_CONTROL		_RMIXL_OFFSET(0x0)
    180  1.1.2.1  cliff #define	RMIXL_PIC_IPIBASE		_RMIXL_OFFSET(0x4)
    181  1.1.2.1  cliff #define	RMIXL_PIC_RMIXL_OFFSET		_RMIXL_OFFSET(0x6)
    182  1.1.2.1  cliff #define	RMIXL_PIC_WATCHdOGMAXVALUE0	_RMIXL_OFFSET(0x8)
    183  1.1.2.1  cliff #define	RMIXL_PIC_WATCHDOGMAXVALUE1	_RMIXL_OFFSET(0x9)
    184  1.1.2.1  cliff #define	RMIXL_PIC_WATCHDOGMASK0		_RMIXL_OFFSET(0xa)
    185  1.1.2.1  cliff #define	RMIXL_PIC_WATCHDOGMASK1		_RMIXL_OFFSET(0xb)
    186  1.1.2.1  cliff #define	RMIXL_PIC_WATCHDOGHEARTBEAT0	_RMIXL_OFFSET(0xc)
    187  1.1.2.1  cliff #define	RMIXL_PIC_WATCHDOGHEARTBEAT1	_RMIXL_OFFSET(0xd)
    188  1.1.2.1  cliff #define	RMIXL_PIC_IRTENTRYC0(n)		_RMIXL_OFFSET(0x40 + (n))	/* 0<=n<=31 */
    189  1.1.2.1  cliff #define	RMIXL_PIC_IRTENTRYC1(n)		_RMIXL_OFFSET(0x80 + (n))	/* 0<=n<=31 */
    190  1.1.2.1  cliff #define	RMIXL_PIC_SYSTMRMAXVALC0(n)	_RMIXL_OFFSET(0x100 + (n))	/* 0<=n<=7 */
    191  1.1.2.1  cliff #define	RMIXL_PIC_SYSTMRMAXVALC1(n)	_RMIXL_OFFSET(0x110 + (n))	/* 0<=n<=7 */
    192  1.1.2.1  cliff #define	RMIXL_PIC_SYSTMRC0(n)		_RMIXL_OFFSET(0x120 + (n))	/* 0<=n<=7 */
    193  1.1.2.1  cliff #define	RMIXL_PIC_SYSTMRC1(n)		_RMIXL_OFFSET(0x130 + (n))	/* 0<=n<=7 */
    194  1.1.2.1  cliff 
    195  1.1.2.1  cliff /*
    196  1.1.2.1  cliff  * RMIXL_PIC_CONTROL bits
    197  1.1.2.1  cliff  */
    198  1.1.2.1  cliff #define RMIXL_PIC_CONTROL_WATCHDOG_ENB	__BIT(0)
    199  1.1.2.1  cliff #define RMIXL_PIC_CONTROL_GEN_NMI	__BITS(2,1)	/* do NMI after n WDog irpts */
    200  1.1.2.1  cliff #define RMIXL_PIC_CONTROL_GEN_NMIn(n)	(((n) << 1) & RMIXL_PIC_CONTROL_GEN_NMI)
    201  1.1.2.1  cliff #define RMIXL_PIC_CONTROL_RESa		__BITS(7,3)
    202  1.1.2.1  cliff #define RMIXL_PIC_CONTROL_TIMER_ENB	__BITS(15,8)	/* per-Timer enable bits */
    203  1.1.2.1  cliff #define RMIXL_PIC_CONTROL_TIMER_ENBn(n)	((1 << (n)) & RMIXL_PIC_CONTROL_TIMER_ENB)
    204  1.1.2.1  cliff #define RMIXL_PIC_CONTROL_RESb		__BITS(31,16)
    205  1.1.2.1  cliff 
    206  1.1.2.1  cliff /*
    207  1.1.2.1  cliff  * RMIXL_PIC_IPIBASE bits
    208  1.1.2.1  cliff  */
    209  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_VECTORNUM	__BITS(5,0)
    210  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_RESa		__BIT(6)	/* undocumented bit */
    211  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_BCAST		__BIT(7)
    212  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_NMI		__BIT(8)
    213  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_ID		__BITS(31,16)
    214  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_ID_RESa	__BITS(31,23)
    215  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_ID_CPU	__BITS(22,20)	/* Physical CPU ID */
    216  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_ID_RESb	__BITS(19,18)
    217  1.1.2.1  cliff #define RMIXL_PIC_IPIBASE_ID_THREAD	__BITS(22,20)	/* Thread ID */
    218  1.1.2.1  cliff 
    219  1.1.2.1  cliff #endif	/* _MIPS_RMI_RMIRMIXLEGS_H_ */
    220  1.1.2.1  cliff 
    221