Module Name: src
Committed By: cliff
Date: Mon Nov 9 10:07:44 UTC 2009
Modified Files:
src/sys/arch/mips/rmi [matt-nb5-mips64]: rmixlreg.h
Log Message:
- RMIXL_IOREG_READ, RMIXL_IOREG_WRITE provide general use ops for
accessing on-chip DEV_IO regs w/ Big Endian byte order.
- add System Bridge Controller registers defines
- add Address Error registers defines
- add DRAM register defines
- add GPIO signal and system control register offsets
- add PCIE Interface controller register offsets
- fix typo for RMIXL_PIC_INTRACK
- add RMIXL_PIC_IRTENTRYC0_RESV
To generate a diff of this commit:
cvs rdiff -u -r1.1.2.3 -r1.1.2.4 src/sys/arch/mips/rmi/rmixlreg.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/rmi/rmixlreg.h
diff -u src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.3 src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.4
--- src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.3 Fri Sep 25 22:20:43 2009
+++ src/sys/arch/mips/rmi/rmixlreg.h Mon Nov 9 10:07:44 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: rmixlreg.h,v 1.1.2.3 2009/09/25 22:20:43 cliff Exp $ */
+/* $NetBSD: rmixlreg.h,v 1.1.2.4 2009/11/09 10:07:44 cliff Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -33,6 +33,19 @@
#ifndef _MIPS_RMI_RMIXLREGS_H_
#define _MIPS_RMI_RMIXLREGS_H_
+#include <sys/endian.h>
+
+/*
+ * on chip I/O register byte order is
+ * BIG ENDIAN regardless of code model
+ */
+#define RMIXL_IOREG_VADDR(o) \
+ (volatile uint32_t *)MIPS_PHYS_TO_KSEG1( \
+ rmixl_configuration.rc_io_pbase + (o))
+#define RMIXL_IOREG_READ(o) be32toh(*RMIXL_IOREG_VADDR(o))
+#define RMIXL_IOREG_WRITE(o,v) *RMIXL_IOREG_VADDR(o) = htobe32(v)
+
+
/*
* RMIXL Coprocessor 2 registers:
*/
@@ -105,6 +118,8 @@
/* default virtual base address */
#define RMIXL_IO_DEV_SIZE 0x100000 /* I/O Conf. space is 1MB region */
+
+
/*
* Peripheral and I/O Configuration Region of Memory
*
@@ -115,7 +130,7 @@
*
* Device region offsets are relative to RMIXL_IO_DEV_PBASE.
*/
-#define RMIXL_IO_DEV_BRIDGE 0x00000 /* System Bridge Controller */
+#define RMIXL_IO_DEV_BRIDGE 0x00000 /* System Bridge Controller (SBC) */
#define RMIXL_IO_DEV_DDR_CHNA 0x01000 /* DDR1/DDR2 DRAM_A Channel, Port MA */
#define RMIXL_IO_DEV_DDR_CHNB 0x02000 /* DDR1/DDR2 DRAM_B Channel, Port MB */
#define RMIXL_IO_DEV_DDR_CHNC 0x03000 /* DDR1/DDR2 DRAM_C Channel, Port MC */
@@ -170,15 +185,157 @@
/*
- * Programmable Interrupt Controller registers
- * the Programming Reference Manual table 10.4
+ * the Programming Reference Manual
* lists "Reg ID" values not offsets;
- * assume offset = id * 4
+ * offset = id * 4
*/
#define _RMIXL_OFFSET(id) ((id) * 4)
+
+
+/*
+ * System Bridge Controller registers
+ * offsets are relative to RMIXL_IO_DEV_BRIDGE
+ */
+#define RMIXL_SBC_DRAM_NBARS 8
+#define RMIXL_SBC_DRAM_BAR(n) _RMIXL_OFFSET(0x000 + (n))
+ /* DRAM Region Base Address Regs[0-7] */
+#define RMIXL_SBC_DRAM_CHNAC_DTR(n) _RMIXL_OFFSET(0x008 + (n))
+ /* DRAM Region Channels A,C Address Translation Regs[0-7] */
+#define RMIXL_SBC_DRAM_CHNBD_DTR(n) _RMIXL_OFFSET(0x010 + (n))
+ /* DRAM Region Channels B,D Address Translation Regs[0-7] */
+#define RMIXL_SBC_DRAM_BRIDGE_CFG _RMIXL_OFFSET(0x18) /* SBC DRAM config reg */
+#define RMIXL_SBC_XLS_IO_BAR _RMIXL_OFFSET(0x19) /* I/O Config Base Addr reg */
+#define RMIXL_SBC_XLS_FLASH_BAR _RMIXL_OFFSET(0x20) /* Flash Memory Base Addr reg */
+#define RMIXL_SBC_PCIE_CFG_BAR _RMIXL_OFFSET(0x40) /* PCI Configuration BAR */
+#define RMIXL_SBC_PCIE_ECFG_BAR _RMIXL_OFFSET(0x41) /* PCI Extended Configuration BAR */
+#define RMIXL_SBC_PCIE_MEM_BAR _RMIXL_OFFSET(0x42) /* PCI Memory region BAR */
+#define RMIXL_SBC_PCIE_IO_BAR _RMIXL_OFFSET(0x43) /* PCI IO region BAR */
+
+/*
+ * Address Error registers
+ * offsets are relative to RMIXL_IO_DEV_BRIDGE
+ */
+#define RMIXL_ADDR_ERR_DEVICE_MASK _RMIXL_OFFSET(0x25) /* Address Error Device Mask */
+#define RMIXL_ADDR_ERR_AERR0_LOG1 _RMIXL_OFFSET(0x26) /* Address Error Set 0 Log 1 */
+#define RMIXL_ADDR_ERR_AERR0_LOG2 _RMIXL_OFFSET(0x27) /* Address Error Set 0 Log 2 */
+#define RMIXL_ADDR_ERR_AERR0_LOG3 _RMIXL_OFFSET(0x28) /* Address Error Set 0 Log 3 */
+#define RMIXL_ADDR_ERR_AERR0_DEVSTAT _RMIXL_OFFSET(0x29) /* Address Error Set 0 irpt status */
+#define RMIXL_ADDR_ERR_AERR1_LOG1 _RMIXL_OFFSET(0x2a) /* Address Error Set 1 Log 1 */
+#define RMIXL_ADDR_ERR_AERR1_LOG2 _RMIXL_OFFSET(0x2b) /* Address Error Set 1 Log 2 */
+#define RMIXL_ADDR_ERR_AERR1_LOG3 _RMIXL_OFFSET(0x2c) /* Address Error Set 1 Log 3 */
+#define RMIXL_ADDR_ERR_AERR1_DEVSTAT _RMIXL_OFFSET(0x2d) /* Address Error Set 1 irpt status */
+#define RMIXL_ADDR_ERR_AERR0_EN _RMIXL_OFFSET(0x2e) /* Address Error Set 0 irpt enable */
+#define RMIXL_ADDR_ERR_AERR0_UPG _RMIXL_OFFSET(0x2f) /* Address Error Set 0 Upgrade */
+#define RMIXL_ADDR_ERR_AERR0_CLEAR _RMIXL_OFFSET(0x30) /* Address Error Set 0 irpt clear */
+#define RMIXL_ADDR_ERR_AERR1_CLEAR _RMIXL_OFFSET(0x31) /* Address Error Set 1 irpt clear */
+#define RMIXL_ADDR_ERR_SBE_COUNTS _RMIXL_OFFSET(0x32) /* Single Bit Error Counts */
+#define RMIXL_ADDR_ERR_DBE_COUNTS _RMIXL_OFFSET(0x33) /* Double Bit Error Counts */
+#define RMIXL_ADDR_ERR_BITERR_INT_EN _RMIXL_OFFSET(0x33) /* Bit Error intr enable */
+
+/*
+ * RMIXL_SBC_DRAM_BAR bit defines
+ */
+#define RMIXL_DRAM_BAR_BASE_ADDR __BITS(31,16) /* bits 39:24 of Base Address */
+#define DRAM_BAR_TO_BASE(r) \
+ (((r) & RMIXL_DRAM_BAR_BASE_ADDR) << (24 - 16))
+#define RMIXL_DRAM_BAR_ADDR_MASK __BITS(15,4) /* bits 35:24 of Address Mask */
+#define DRAM_BAR_TO_SIZE(r) \
+ ((((r) & RMIXL_DRAM_BAR_ADDR_MASK) + __BIT(4)) << (24 - 4))
+#define RMIXL_DRAM_BAR_INTERLEAVE __BITS(3,1) /* Interleave Mode */
+#define RMIXL_DRAM_BAR_STATUS __BIT(0) /* 1='region enabled' */
+
+/*
+ * RMIXL_SBC_DRAM_CHNAC_DTR and
+ * RMIXL_SBC_DRAM_CHNBD_DTR bit defines
+ * insert 'divisions' (0, 1 or 2) bits
+ * of value 'partition'
+ * at 'position' bit location.
+ */
+#define RMIXL_DRAM_DTR_RESa __BITS(31,14)
+#define RMIXL_DRAM_DTR_PARTITION __BITS(13,12)
+#define RMIXL_DRAM_DTR_RESb __BITS(11,10)
+#define RMIXL_DRAM_DTR_DIVISIONS __BITS(9,8)
+#define RMIXL_DRAM_DTR_RESc __BITS(7,6)
+#define RMIXL_DRAM_DTR_POSITION __BITS(5,0)
+#define RMIXL_DRAM_DTR_RESV \
+ (RMIXL_DRAM_DTR_RESa|RMIXL_DRAM_DTR_RESb|RMIXL_DRAM_DTR_RESc)
+
+/*
+ * RMIXL_SBC_DRAM_BRIDGE_CFG bit defines
+ */
+#define RMIXL_DRAM_CFG_RESa __BITS(31,13)
+#define RMIXL_DRAM_CFG_CHANNEL_MODE __BIT(12)
+#define RMIXL_DRAM_CFG_RESb __BIT(11)
+#define RMIXL_DRAM_CFG_INTERLEAVE_MODE __BITS(10,8)
+#define RMIXL_DRAM_CFG_RESc __BITS(7,5)
+#define RMIXL_DRAM_CFG_BUS_MODE __BIT(4)
+#define RMIXL_DRAM_CFG_RESd __BITS(3,2)
+#define RMIXL_DRAM_CFG_DRAM_MODE __BITS(1,0) /* 1=DDR2 */
+
+/*
+ * RMIXL_SBC_PCIE_CFG_BAR bit defines
+ */
+#define RMIXL_PCIE_CFG_BAR_BASE __BITS(31,17) /* phys address bits 39:25 */
+#define RMIXL_PCIE_CFG_BAR_BA_SHIFT (25 - 17)
+#define RMIXL_PCIE_CFG_BAR_TO_BA(r) \
+ (((r) & RMIXL_PCIE_CFG_BAR_BASE) << RMIXL_PCIE_CFG_BAR_BA_SHIFT)
+#define RMIXL_PCIE_CFG_BAR_RESV __BITS(16,1) /* (reserved) */
+#define RMIXL_PCIE_CFG_BAR_ENB __BIT(0) /* 1=Enable */
+#define RMIXL_PCIE_CFG_SIZE __BIT(25)
+#define RMIXL_PCIE_CFG_BAR(ba, en) \
+ ((uint32_t)(((ba) >> (25 - 17)) | ((en) ? RMIXL_PCIE_CFG_BAR_ENB : 0)))
+
+/*
+ * RMIXL_SBC_PCIE_ECFG_BAR bit defines
+ * (PCIe extended config space)
+ */
+#define RMIXL_PCIE_ECFG_BAR_BASE __BITS(31,21) /* phys address bits 39:29 */
+#define RMIXL_PCIE_ECFG_BAR_BA_SHIFT (29 - 21)
+#define RMIXL_PCIE_ECFG_BAR_TO_BA(r) \
+ (((r) & RMIXL_PCIE_ECFG_BAR_BASE) << RMIXL_PCIE_ECFG_BAR_BA_SHIFT)
+#define RMIXL_PCIE_ECFG_BAR_RESV __BITS(20,1) /* (reserved) */
+#define RMIXL_PCIE_ECFG_BAR_ENB __BIT(0) /* 1=Enable */
+#define RMIXL_PCIE_ECFG_SIZE __BIT(29)
+#define RMIXL_PCIE_ECFG_BAR(ba, en) \
+ ((uint32_t)(((ba) >> (29 - 21)) | ((en) ? RMIXL_PCIE_ECFG_BAR_ENB : 0)))
+
+/*
+ * RMIXL_SBC_PCIE_MEM_BAR bit defines
+ */
+#define RMIXL_PCIE_MEM_BAR_BASE __BITS(31,16) /* phys address bits 39:24 */
+#define RMIXL_PCIE_MEM_BAR_TO_BA(r) \
+ (((r) & RMIXL_PCIE_MEM_BAR_BASE) << (24 - 16))
+#define RMIXL_PCIE_MEM_BAR_MASK __BITS(15,1) /* phys address mask bits 38:24 */
+#define RMIXL_PCIE_MEM_BAR_TO_SIZE(r) \
+ ((((r) & RMIXL_PCIE_MEM_BAR_MASK) + 2) << (24 - 1))
+#define RMIXL_PCIE_MEM_BAR_ENB __BIT(0) /* 1=Enable */
+#define RMIXL_PCIE_MEM_BAR(ba, en) \
+ ((uint32_t)(((ba) >> (24 - 16)) | ((en) ? RMIXL_PCIE_MEM_BAR_ENB : 0)))
+
+/*
+ * RMIXL_SBC_PCIE_IO_BAR bit defines
+ */
+#define RMIXL_PCIE_IO_BAR_BASE __BITS(31,18) /* phys address bits 39:26 */
+#define RMIXL_PCIE_IO_BAR_TO_BA(r) \
+ (((r) & RMIXL_PCIE_IO_BAR_BASE) << (26 - 18))
+#define RMIXL_PCIE_IO_BAR_RESV __BITS(17,7) /* (reserve) */
+#define RMIXL_PCIE_IO_BAR_MASK __BITS(6,1) /* phys address mask bits 31:26 */
+#define RMIXL_PCIE_IO_BAR_TO_SIZE(r) \
+ ((((r) & RMIXL_PCIE_IO_BAR_MASK) + 2) << (26 - 1))
+#define RMIXL_PCIE_IO_BAR_ENB __BIT(0) /* 1=Enable */
+#define RMIXL_PCIE_IO_BAR(ba, en) \
+ ((uint32_t)(((ba) >> (26 - 18)) | ((en) ? RMIXL_PCIE_IO_BAR_ENB : 0)))
+
+
+/*
+ * Programmable Interrupt Controller registers
+ * the Programming Reference Manual table 10.4
+ * lists "Reg ID" values not offsets
+ * Offsets are relative to RMIXL_IO_DEV_BRIDGE
+ */
#define RMIXL_PIC_CONTROL _RMIXL_OFFSET(0x0)
#define RMIXL_PIC_IPIBASE _RMIXL_OFFSET(0x4)
-#define RMIXL_PIC_RMIXL_OFFSET _RMIXL_OFFSET(0x6)
+#define RMIXL_PIC_INTRACK _RMIXL_OFFSET(0x6)
#define RMIXL_PIC_WATCHdOGMAXVALUE0 _RMIXL_OFFSET(0x8)
#define RMIXL_PIC_WATCHDOGMAXVALUE1 _RMIXL_OFFSET(0x9)
#define RMIXL_PIC_WATCHDOGMASK0 _RMIXL_OFFSET(0xa)
@@ -226,7 +383,10 @@
* IRT Entry low word
*/
#define RMIXL_PIC_IRTENTRYC0_TMASK __BITS(7,0) /* Thread Mask */
-#define RMIXL_PIC_IRTENTRYC0_RESV __BITS(31,8)
+#define RMIXL_PIC_IRTENTRYC0_RESa __BITS(3,2) /* write as 0 */
+#define RMIXL_PIC_IRTENTRYC0_RESb __BITS(31,8) /* write as 0 */
+#define RMIXL_PIC_IRTENTRYC0_RESV \
+ (RMIXL_PIC_IRTENTRYC0_RESa | RMIXL_PIC_IRTENTRYC0_RESb)
/*
* RMIXL_PIC_IRTENTRYC1 bits
@@ -241,6 +401,120 @@
#define RMIXL_PIC_IRTENTRYC1_VALID __BIT(31) /* 0=Invalid; 1=Valid IRT Entry */
+/*
+ * GPIO Controller registers
+ */
+
+/* GPIO Signal Registers */
+#define RMIXL_GPIO_INT_ENB _RMIXL_OFFSET(0x0) /* Interrupt Enable register */
+#define RMIXL_GPIO_INT_INV _RMIXL_OFFSET(0x1) /* Interrupt Inversion register */
+#define RMIXL_GPIO_IO_DIR _RMIXL_OFFSET(0x2) /* I/O Direction register */
+#define RMIXL_GPIO_OUTPUT _RMIXL_OFFSET(0x3) /* Output Write register */
+#define RMIXL_GPIO_INPUT _RMIXL_OFFSET(0x4) /* Intput Read register */
+#define RMIXL_GPIO_INT_CLR _RMIXL_OFFSET(0x5) /* Interrupt Inversion register */
+#define RMIXL_GPIO_INT_STS _RMIXL_OFFSET(0x6) /* Interrupt Status register */
+#define RMIXL_GPIO_INT_TYP _RMIXL_OFFSET(0x7) /* Interrupt Type register */
+#define RMIXL_GPIO_RESET _RMIXL_OFFSET(0x8) /* XLS Soft Reset register */
+
+/* GPIO System Control Registers */
+#define RMIXL_GPIO_RESET_CFG _RMIXL_OFFSET(0x15) /* Reset Configuration register */
+#define RMIXL_GPIO_THERMAL_CSR _RMIXL_OFFSET(0x16) /* Thermal Control/Status register */
+#define RMIXL_GPIO_THERMAL_SHFT _RMIXL_OFFSET(0x17) /* Thermal Shift register */
+#define RMIXL_GPIO_BIST_ALL_STS _RMIXL_OFFSET(0x18) /* BIST All Status register */
+#define RMIXL_GPIO_BIST_EACH_STS _RMIXL_OFFSET(0x19) /* BIST Each Status register */
+#define RMIXL_GPIO_SGMII_0_3_PHY_CTL _RMIXL_OFFSET(0x20) /* SGMII #0..3 PHY Control register */
+#define RMIXL_GPIO_AUI_0_PHY_CTL _RMIXL_OFFSET(0x20) /* AUI port#0 PHY Control register */
+#define RMIXL_GPIO_SGMII_4_7_PLL_CTL _RMIXL_OFFSET(0x21) /* SGMII #4..7 PLL Control register */
+#define RMIXL_GPIO_AUI_1_PLL_CTL _RMIXL_OFFSET(0x21) /* AUI port#1 PLL Control register */
+#define RMIXL_GPIO_SGMII_4_7_PHY_CTL _RMIXL_OFFSET(0x22) /* SGMII #4..7 PHY Control register */
+#define RMIXL_GPIO_AUI_1_PHY_CTL _RMIXL_OFFSET(0x22) /* AUI port#1 PHY Control register */
+#define RMIXL_GPIO_INT_MAP _RMIXL_OFFSET(0x25) /* Interrupt Map to PIC, 0=int14, 1=int30 */
+#define RMIXL_GPIO_EXT_INT _RMIXL_OFFSET(0x26) /* External Interrupt control register */
+#define RMIXL_GPIO_CPU_RST _RMIXL_OFFSET(0x28) /* CPU Reset control register */
+#define RMIXL_GPIO_LOW_PWR_DIS _RMIXL_OFFSET(0x29) /* Low Power Dissipation register */
+#define RMIXL_GPIO_RANDOM _RMIXL_OFFSET(0x2b) /* Low Power Dissipation register */
+#define RMIXL_GPIO_CPU_CLK_DIS _RMIXL_OFFSET(0x2d) /* CPU Clock Disable register */
+
+/*
+ * PCIE Interface Controller registers
+ */
+#define RMIXL_PCIE_CTRL1 _RMIXL_OFFSET(0x0)
+#define RMIXL_PCIE_CTRL2 _RMIXL_OFFSET(0x1)
+#define RMIXL_PCIE_CTRL3 _RMIXL_OFFSET(0x2)
+#define RMIXL_PCIE_CTRL4 _RMIXL_OFFSET(0x3)
+#define RMIXL_PCIE_CTRL _RMIXL_OFFSET(0x4)
+#define RMIXL_PCIE_IOBM_TIMER _RMIXL_OFFSET(0x5)
+#define RMIXL_PCIE_MSI_CMD _RMIXL_OFFSET(0x6)
+#define RMIXL_PCIE_MSI_RESP _RMIXL_OFFSET(0x7)
+#define RMIXL_PCIE_DWC_CRTL5 _RMIXL_OFFSET(0x8) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_DWC_CRTL6 _RMIXL_OFFSET(0x9) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_IOBM_SWAP_MEM_BASE _RMIXL_OFFSET(0x10)
+#define RMIXL_PCIE_IOBM_SWAP_MEM_LIMIT _RMIXL_OFFSET(0x11)
+#define RMIXL_PCIE_IOBM_SWAP_IO_BASE _RMIXL_OFFSET(0x12)
+#define RMIXL_PCIE_IOBM_SWAP_IO_LIMIT _RMIXL_OFFSET(0x13)
+#define RMIXL_PCIE_TRGT_CHRNT_MEM_BASE _RMIXL_OFFSET(0x14)
+#define RMIXL_PCIE_TRGT_CHRNT_MEM_LIMIT _RMIXL_OFFSET(0x15)
+#define RMIXL_PCIE_TRGT_L2ALC_MEM_BASE _RMIXL_OFFSET(0x16)
+#define RMIXL_PCIE_TRGT_L2ALC_MEM_LIMIT _RMIXL_OFFSET(0x17)
+#define RMIXL_PCIE_TRGT_REX_MEM_BASE _RMIXL_OFFSET(0x18)
+#define RMIXL_PCIE_TRGT_REX_MEM_LIMIT _RMIXL_OFFSET(0x19)
+#define RMIXL_PCIE_EP_MEM_BASE _RMIXL_OFFSET(0x1a)
+#define RMIXL_PCIE_EP_MEM_LIMIT _RMIXL_OFFSET(0x1b)
+#define RMIXL_PCIE_EP_ADDR_MAP_ENTRY0 _RMIXL_OFFSET(0x1c)
+#define RMIXL_PCIE_EP_ADDR_MAP_ENTRY1 _RMIXL_OFFSET(0x1d)
+#define RMIXL_PCIE_EP_ADDR_MAP_ENTRY2 _RMIXL_OFFSET(0x1e)
+#define RMIXL_PCIE_EP_ADDR_MAP_ENTRY3 _RMIXL_OFFSET(0x1f)
+#define RMIXL_PCIE_LINK0_STATE _RMIXL_OFFSET(0x20)
+#define RMIXL_PCIE_LINK1_STATE _RMIXL_OFFSET(0x21)
+#define RMIXL_PCIE_IOBM_INT_STATUS _RMIXL_OFFSET(0x22)
+#define RMIXL_PCIE_IOBM_INT_ENABLE _RMIXL_OFFSET(0x23)
+#define RMIXL_PCIE_LINK0_MSI_STATUS _RMIXL_OFFSET(0x24)
+#define RMIXL_PCIE_LINK1_MSI_STATUS _RMIXL_OFFSET(0x25)
+#define RMIXL_PCIE_LINK0_MSI_ENABLE _RMIXL_OFFSET(0x26)
+#define RMIXL_PCIE_LINK1_MSI_ENABLE _RMIXL_OFFSET(0x27)
+#define RMIXL_PCIE_LINK0_INT_STATUS0 _RMIXL_OFFSET(0x28)
+#define RMIXL_PCIE_LINK1_INT_STATUS0 _RMIXL_OFFSET(0x29)
+#define RMIXL_PCIE_LINK0_INT_STATUS1 _RMIXL_OFFSET(0x2a)
+#define RMIXL_PCIE_LINK1_INT_STATUS1 _RMIXL_OFFSET(0x2b)
+#define RMIXL_PCIE_LINK0_INT_ENABLE0 _RMIXL_OFFSET(0x2c)
+#define RMIXL_PCIE_LINK1_INT_ENABLE0 _RMIXL_OFFSET(0x2d)
+#define RMIXL_PCIE_LINK0_INT_ENABLE1 _RMIXL_OFFSET(0x2e)
+#define RMIXL_PCIE_LINK1_INT_ENABLE1 _RMIXL_OFFSET(0x2f)
+#define RMIXL_PCIE_PHY_CR_CMD _RMIXL_OFFSET(0x30)
+#define RMIXL_PCIE_PHY_CR_WR_DATA _RMIXL_OFFSET(0x31)
+#define RMIXL_PCIE_PHY_CR_RESP _RMIXL_OFFSET(0x32)
+#define RMIXL_PCIE_PHY_CR_RD_DATA _RMIXL_OFFSET(0x33)
+#define RMIXL_PCIE_IOBM_ERR_CMD _RMIXL_OFFSET(0x34)
+#define RMIXL_PCIE_IOBM_ERR_LOWER_ADDR _RMIXL_OFFSET(0x35)
+#define RMIXL_PCIE_IOBM_ERR_UPPER_ADDR _RMIXL_OFFSET(0x36)
+#define RMIXL_PCIE_IOBM_ERR_BE _RMIXL_OFFSET(0x37)
+#define RMIXL_PCIE_LINK2_STATE _RMIXL_OFFSET(0x60) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK3_STATE _RMIXL_OFFSET(0x61) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK2_MSI_STATUS _RMIXL_OFFSET(0x64) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK3_MSI_STATUS _RMIXL_OFFSET(0x65) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK2_MSI_ENABLE _RMIXL_OFFSET(0x66) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK3_MSI_ENABLE _RMIXL_OFFSET(0x67) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK2_INT_STATUS0 _RMIXL_OFFSET(0x68) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK3_INT_STATUS0 _RMIXL_OFFSET(0x69) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK2_INT_STATUS1 _RMIXL_OFFSET(0x6a) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK3_INT_STATUS1 _RMIXL_OFFSET(0x6b) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK2_INT_ENABLE0 _RMIXL_OFFSET(0x6c) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK3_INT_ENABLE0 _RMIXL_OFFSET(0x6d) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK2_INT_ENABLE1 _RMIXL_OFFSET(0x6e) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_LINK3_INT_ENABLE1 _RMIXL_OFFSET(0x6f) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_VC0_POSTED_RX_QUEUE_CTRL _RMIXL_OFFSET(0x1d2)
+#define RMIXL_VC0_POSTED_BUFFER_DEPTH _RMIXL_OFFSET(0x1ea)
+#define RMIXL_PCIE_MSG_TX_THRESHOLD _RMIXL_OFFSET(0x308)
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_0 _RMIXL_OFFSET(0x320)
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_1 _RMIXL_OFFSET(0x321)
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_2 _RMIXL_OFFSET(0x322)
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_3 _RMIXL_OFFSET(0x323)
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_4 _RMIXL_OFFSET(0x324) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_5 _RMIXL_OFFSET(0x325) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_6 _RMIXL_OFFSET(0x326) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_MSG_BUCKET_SIZE_7 _RMIXL_OFFSET(0x327) /* not on XLS408Lite, XLS404Lite */
+#define RMIXL_PCIE_MSG_CREDIT_FIRST _RMIXL_OFFSET(0x380)
+#define RMIXL_PCIE_MSG_CREDIT_LAST _RMIXL_OFFSET(0x3ff)
#endif /* _MIPS_RMI_RMIRMIXLEGS_H_ */