Module Name: src
Committed By: matt
Date: Sat Dec 31 04:54:28 UTC 2011
Modified Files:
src/sys/arch/mips/rmi [matt-nb5-mips64]: rmixl_i2creg.h rmixl_naereg.h
rmixlp_pcie.c rmixlreg.h
Log Message:
Consolidate and complete PCITAGs.
Print/Set BARs for AHCI and SRIO.
To generate a diff of this commit:
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/sys/arch/mips/rmi/rmixl_i2creg.h \
src/sys/arch/mips/rmi/rmixl_naereg.h
cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/arch/mips/rmi/rmixlp_pcie.c
cvs rdiff -u -r1.1.2.17 -r1.1.2.18 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/rmixl_i2creg.h
diff -u src/sys/arch/mips/rmi/rmixl_i2creg.h:1.1.2.1 src/sys/arch/mips/rmi/rmixl_i2creg.h:1.1.2.2
--- src/sys/arch/mips/rmi/rmixl_i2creg.h:1.1.2.1 Sat Dec 24 01:57:54 2011
+++ src/sys/arch/mips/rmi/rmixl_i2creg.h Sat Dec 31 04:54:28 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: rmixl_i2creg.h,v 1.1.2.1 2011/12/24 01:57:54 matt Exp $ */
+/* $NetBSD: rmixl_i2creg.h,v 1.1.2.2 2011/12/31 04:54:28 matt Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -38,8 +38,8 @@
* XLP I2C Controller defintions
*/
-#define RMIXLP_I2C0_PCITAG _RMIXL_PCITAG(0,6,2)
-#define RMIXLP_I2C1_PCITAG _RMIXL_PCITAG(0,6,3)
+#define RMIXLP_I2C1_PCITAG _RMIXL_PCITAG(0,6,2)
+#define RMIXLP_I2C2_PCITAG _RMIXL_PCITAG(0,6,3)
#define RMIXLP_I2C_CFG_OFFSET _RMIXL_OFFSET(0x40)
#define RMIXLP_I2C_IOSIZE _RMIXL_OFFSET(0x40)
Index: src/sys/arch/mips/rmi/rmixl_naereg.h
diff -u src/sys/arch/mips/rmi/rmixl_naereg.h:1.1.2.1 src/sys/arch/mips/rmi/rmixl_naereg.h:1.1.2.2
--- src/sys/arch/mips/rmi/rmixl_naereg.h:1.1.2.1 Sat Dec 24 01:57:54 2011
+++ src/sys/arch/mips/rmi/rmixl_naereg.h Sat Dec 31 04:54:28 2011
@@ -31,17 +31,38 @@
#define _MIPS_RMI_RMIXL_NAEREG_H
/*
- * RX P2P Descriptor
+ * RX P2P Descriptor (slightly different betewen XLS/XLR and XLP).
*/
-#define RMIXL_NEA_RXD_CONTEXT __BITS(63,54)
+#define RMIXLS_NEA_RXD_EOP __BIT(63)
+#define RMIXLS_NEA_RXD_STATUS __BITS(62,56)
+#define RMIXLS_NEA_RXD_CLASSID __BITS(55,54)
+#define RMIXLP_NEA_RXD_CONTEXT __BITS(59,54)
#define RMIXL_NEA_RXD_LENGTH __BITS(53,40)
-#define RMIXL_NEA_RXD_ADDRESS __BITS(39,6)
-#define RMIXL_NEA_RXD_UP __BIT(5)
-#define RMIXL_NEA_RXD_ERR __BIT(4)
-#define RMIXL_NEA_RXD_IC __BIT(3)
-#define RMIXL_NEA_RXD_TC __BIT(2)
-#define RMIXL_NEA_RXD_PP __BIT(1)
-#define RMIXL_NEA_RXD_P2P __BIT(0)
+/*
+ * L2 cacheline aligned address
+ */
+#define RMIXL_NEA_RXD_ADDRESS __BITS(39,5)
+#define RMIXLP_NEA_RXD_UP __BIT(5)
+#define RMIXLP_NEA_RXD_ERR __BIT(4)
+#define RMIXLS_NEA_RXD_UP __BIT(4)
+#define RMIXLS_NEA_RXD_PORTID __BIT(3,0)
+#define RMIXLP_NEA_RXD_IC __BIT(3) // IP CSUM valid
+#define RMIXLP_NEA_RXD_TC __BIT(2) // TCP CSUM valid
+#define RMIXLP_NEA_RXD_PP __BIT(1) // Prepad present
+#define RMIXLP_NEA_RXD_P2P __BIT(0)
+
+/*
+ * RXD Status field for XLS/XLR.
+ */
+#define RMIXLS_RXD_STATUS_ERROR __BIT(6)
+#define RMIXLS_RXD_STATUS_OK_BROADCAST __BIT(5)
+#define RMIXLS_RXD_STATUS_OK_MULTICAST __BIT(4)
+#define RMIXLS_RXD_STATUS_OK_UNICAST __BIT(3)
+#define RMIXLS_RXD_STATUS_ERROR_CODE __BIT(2)
+#define RMIXLS_RXD_STATUS_ERROR_CRC __BIT(1)
+#define RMIXLS_RXD_STATUS_OK_MACADDR __BITS(2,1)
+#define RMIXLS_RXD_STATUS_ERROR_LENGTH __BIT(0)
+#define RMIXLS_RXD_STATUS_OK_VLAN __BIT(0)
#define RMIXL_NEA_TXD_TYPE __BITS(63,62)
#define RMIXL_NEA_TXD_RDEX __BIT(61)
@@ -88,13 +109,19 @@
#define RMIXL_NEA_MSCD2_CRC_INS_OFFS __BITS(15,0)
#define RMIXL_NEA_TXFBD_TYPE __BITS(63,62)
-#define RMIXL_NEA_TXFBD_RDX __BIT(61)
-#define RMIXL_NEA_TXFBD__RSRVD0 __BITS(60,58)
-#define RMIXL_NEA_TXFBD_TS_VALID __BIT(57)
-#define RMIXL_NEA_TXFBD_TX_DONE __BIT(56)
-#define RMIXL_NEA_TXFBD_MAX_COLL_LATE_ABORT __BIT(55)
-#define RMIXL_NEA_TXFBD_UNDERRUN __BIT(54)
-#define RMIXL_NEA_TXFBD__RSRVD1 __BITS(53,50)
+#define RMIXLP_NEA_TXFBD_RDX __BIT(61)
+#define RMIXLP_NEA_TXFBD__RSRVD0 __BITS(60,58)
+#define RMIXLS_NEA_TXFBD_COLLISION __BIT(61)
+#define RMIXLS_NEA_TXFBD_BUS_ERROR __BIT(60)
+#define RMIXLS_NEA_TXFBD_UNDERRUN __BIT(59)
+#define RMIXLS_NEA_TXFBD_ABORT __BIT(58)
+#define RMIXLP_NEA_TXFBD_TS_VALID __BIT(57)
+#define RMIXLP_NEA_TXFBD_TX_DONE __BIT(56)
+#define RMIXLP_NEA_TXFBD_MAX_COLL_LATE_ABORT __BIT(55)
+#define RMIXLP_NEA_TXFBD_UNDERRUN __BIT(54)
+#define RMIXLS_NEA_TXFBD_PORT_ID __BITS(57,54)
+#define RMIXLP_NEA_TXFBD__RSRVD1 __BITS(53,50)
+#define RMIXLS_NEA_TXFBD_LENGTH __BITS(53,40) // always 0
#define RMIXL_NEA_TXFBD_CONTEXT __BITS(49,40)
#define RMIXL_NEA_TXFBD_ADDRESS __BITS(39,0)
@@ -102,6 +129,16 @@
#define RMIXL_NEA_RXFID_ADDRESS __BITS(39,6)
#define RMIXL_NEA_RXFID__RSRVD1 __BITS(5,0)
+#define RMIXL_NAE_GMAC0_BASE(n) (0x0000 + 0x2000*(n))
+#define RMIXL_NAE_GMAC1_BASE(n) (0x0200 + 0x2000*(n))
+#define RMIXL_NAE_GMAC2_BASE(n) (0x0400 + 0x2000*(n))
+#define RMIXL_NAE_GMAC3_BASE(n) (0x0600 + 0x2000*(n))
+#define RMIXL_NAE_XGMAC0_BASE(n) (0x0800 + 0x2000*(n))
+#define RMIXL_NAE_PHY_BASE(n) (0x1e00 + 0x2000*(n))
+#define RMIXL_NAE_BASE(n) 0xe000
+
+/* SGMII (GMAC) Registers */
+
#define RMIXL_GMAC_CONF1 _RMIXL_OFFSET(0x00) /* MAC Configuration 1 */
#define RMIXL_GMAC_CONF2 _RMIXL_OFFSET(0x01) /* MAC Configuration 2 */
#define RMIXL_GMAC_IPG_IFG _RMIXL_OFFSET(0x02) /* Interpacket Gap/IFG */
@@ -286,4 +323,307 @@ rmixl_gmac_station_addr_lo_make(const ui
#define RMIXL_GMAC_FILTER_CONFIG_MA1V __BIT(1) /* MAC Address 1 Valid */
#define RMIXL_GMAC_FILTER_CONFIG_MA0V __BIT(0) /* MAC Address 0 Valid */
+/* NEA Ingress Path Registers */
+
+#define RMIXL_NAE_RX_CONFIG _RMIXL_OFFSET(0x10) // Receive Configuration
+#define RMIXL_NAE_RX_IF_BASE_CONFIG0 _RMIXL_OFFSET(0x12) // Receive Interface Base Config 0
+#define RMIXL_NAE_RX_IF_BASE_CONFIG1 _RMIXL_OFFSET(0x13) // Receive Interface Base Config 1
+#define RMIXL_NAE_RX_IF_BASE_CONFIG2 _RMIXL_OFFSET(0x14) // Receive Interface Base Config 2
+#define RMIXL_NAE_RX_IF_BASE_CONFIG3 _RMIXL_OFFSET(0x15) // Receive Interface Base Config 3
+#define RMIXL_NAE_RX_IF_BASE_CONFIG4 _RMIXL_OFFSET(0x16) // Receive Interface Base Config 4
+#define RMIXL_NAE_RX_IF_BASE_CONFIG5 _RMIXL_OFFSET(0x17) // Receive Interface Base Config 5
+#define RMIXL_NAE_RX_IF_BASE_CONFIG6 _RMIXL_OFFSET(0x18) // Receive Interface Base Config 6
+#define RMIXL_NAE_RX_IF_BASE_CONFIG7 _RMIXL_OFFSET(0x19) // Receive Interface Base Config 7
+#define RMIXL_NAE_RX_IF_BASE_CONFIG8 _RMIXL_OFFSET(0x1A) // Receive Interface Base Config 8
+#define RMIXL_NAE_RX_IF_BASE_CONFIG9 _RMIXL_OFFSET(0x1B) // Receive Interface Base Config 9
+#define RMIXL_NAE_RX_IF_VEC_VALID _RMIXL_OFFSET(0x1C) // Receive Interface Vector Valid
+#define RMIXL_NAE_RX_IF_SLOT_CAL _RMIXL_OFFSET(0x1D) // Receive Calendar Valid Slots
+#define RMIXL_NAE_PARSER_CONFIG _RMIXL_OFFSET(0x1E) // Parser Configuration
+#define RMIXL_NAE_PARSER_SEQ_FIFO_CFG _RMIXL_OFFSET(0x1F) // Parser Sequence FIFO Carvings
+#define RMIXL_NAE_FREE_IN_LIFO_CFG _RMIXL_OFFSET(0x20) // Free-In LIFO Carvings
+#define RMIXL_NAE_RX_BUFFER_BASE_DEPTH_ADDR _RMIXL_OFFSET(0x21) // Receive Buffer Base Depth Carvings Index
+#define RMIXL_NAE_RX_BUFFER_BASE_DEPTH _RMIXL_OFFSET(0x22) // Receive Buffer Base Depth Carvings
+#define RMIXL_NAE_RX_UCORE_CFG _RMIXL_OFFSET(0x23) // Receive Micro-core Configuration Register
+#define RMIXL_NAE_RX_UCORE_CAM_MASK0_CFG _RMIXL_OFFSET(0x24) // Receive Micro-core CAM Mask0 Configuration Registers
+#define RMIXL_NAE_RX_UCORE_CAM_MASK1_CFG _RMIXL_OFFSET(0x25) // Receive Micro-core CAM Mask1 Configuration Registers
+#define RMIXL_NAE_RX_UCORE_CAM_MASK2_CFG _RMIXL_OFFSET(0x26) // Receive Micro-core CAM Mask2 Configuration Registers
+#define RMIXL_NAE_RX_UCORE_CAM_MASK3_CFG _RMIXL_OFFSET(0x27) // Receive Micro-core CAM Mask3 Configuration Registers
+#define RMIXL_NAE_FREE_IN_LIFO_UNIQ_SZ_CFG _RMIXL_OFFSET(0x28) // Free-In LIFO Descriptor Size Register
+#define RMIXL_NAE_RX_CRC_POLY0_CFG _RMIXL_OFFSET(0x2A) // Receive CRC Polynomial Register 0
+#define RMIXL_NAE_RX_CRC_POLY1_CFG _RMIXL_OFFSET(0x2B) // Receive CRC Polynomial Register 1
+#define RMIXL_NAE_FREE_SPILL0_MEM_CFG _RMIXL_OFFSET(0x2C) // Spill Memory Regioning Register 0
+#define RMIXL_NAE_FREE_SPILL1_MEM_CFG _RMIXL_OFFSET(0x2D) // Spill Memory Regioning Register 1
+#define RMIXL_NAE_FREE_LIFO_THRESHOLD_CFG _RMIXL_OFFSET(0x2E) // Free-In LIFO Threshold Configuration Register
+#define RMIXL_NAE_FLOW_CRC16_POLY_CFG _RMIXL_OFFSET(0x2F) // FlowID CRC16 Polynomial Configuration
+#define RMIXL_NAE_TEST _RMIXL_OFFSET(0x5F) // Test Register
+#define RMIXL_NAE_BIU_TIMEOUT_CFG _RMIXL_OFFSET(0x60) // Bus Interface Unit Timeout Configuration
+#define RMIXL_NAE_BIU_CFG _RMIXL_OFFSET(0x61) // Bus Interface Unit Configuration
+#define RMIXL_NAE_RX_FREE_LIFO_POP _RMIXL_OFFSET(0x62) // Receive Free-In LIFO Pop Configuration
+#define RMIXL_NAE_RX_DSBL_ECC _RMIXL_OFFSET(0x63) // Receive Disable ECC
+#define RMIXL_NAE_FLOW_BASE_MASK_CFG _RMIXL_OFFSET(0x80) // FlowID Base Mask Register
+#define RMIXL_NAE_POE_CLASS_SETUP_CFG _RMIXL_OFFSET(0x81) // POE Class Setup Configuration Register
+#define RMIXL_NAE_UCO_IFACE_MASK_CFG _RMIXL_OFFSET(0x82) // Micro-core Interface Mask Configuraton Register
+#define RMIXL_NAE_RX_BUFFER_XOFFON_THRESH _RMIXL_OFFSET(0x83) // Receive Buffer XOFF/XON Threshold
+#define RMIXL_NAE_FLOW_TABLE1_CFG _RMIXL_OFFSET(0x84) // Flow Table 1
+#define RMIXL_NAE_FLOW_CLASS_BASE_MASK _RMIXL_OFFSET(0x85) // Flow Class Base Mask
+#define RMIXL_NAE_FLOW_TABLE3_CFG _RMIXL_OFFSET(0x86) // Flow Table 3
+#define RMIXL_NAE_RX_FREE_LIFO_THRESH _RMIXL_OFFSET(0x87) // Receive Free-In LIFO Threshold
+#define RMIXL_NAE_RX_PARSER_UNCLA _RMIXL_OFFSET(0x88) // Receive Parser Unclassify
+#define RMIXL_NAE_RX_BUFF_INTR_THRESH _RMIXL_OFFSET(0x89) // Receive Buffer Interrupt Threshold
+#define RMIXL_NAE_IFACE_FIFO_CFG _RMIXL_OFFSET(0x8A) // Interface FIFO Carvings Register
+#define RMIXL_NAE_PARSER_SEQ_FIFOTH_CFG _RMIXL_OFFSET(0x8B) // Parser Sequence FIFO Threshold Configuration Register
+#define RMIXL_NAE_RX_ERRINJ_CTRL0 _RMIXL_OFFSET(0x8C) // Receive Error Injection Control Register 0
+#define RMIXL_NAE_RX_ERRINJ_CTRL1 _RMIXL_OFFSET(0x8D) // Receive Error Injection Control Register 1
+#define RMIXL_NAE_RX_ERR_LATCH0 _RMIXL_OFFSET(0x8E) // Receive Error Latch Register 0
+#define RMIXL_NAE_RX_ERR_LATCH1 _RMIXL_OFFSET(0x8F) // Receive Error Latch Register 1
+#define RMIXL_NAE_RX_PERF_CTR_CFG _RMIXL_OFFSET(0xA0) // Receive Performance Counter Configuration Register
+#define RMIXL_NAE_RX_PERF_CTR_VAL _RMIXL_OFFSET(0xA1) // Receive Performance Counter Value Register
+
+ // NAE Hardware Parser Registers
+
+#define RMIXL_NAE_L2_TYPE_PORTn(n) _RMIXL_OFFSET(0x210+(n)) // L2 Type 0-19
+#define RMIXL_NAE_L3_CTABLE_MASK0 _RMIXL_OFFSET(0x22C) // L3 CAM Table Masks
+#define RMIXL_NAE_L3_CTABLE_MASK1 _RMIXL_OFFSET(0x22D) // L3 CAM Table Masks
+#define RMIXL_NAE_L3_CTABLE_MASK2 _RMIXL_OFFSET(0x22E) // L3 CAM Table Masks
+#define RMIXL_NAE_L3_CTABLE_MASK3 _RMIXL_OFFSET(0x22F) // L3 CAM Table Masks
+#define RMIXL_NAE_L3_CTABLE_EVENn(n) _RMIXL_OFFSET(0x230+2*(n)) // L3 CAM Table Even 0-15
+#define RMIXL_NAE_L3_CTABLE_ODDn(n) _RMIXL_OFFSET(0x231+2*(n)) // L3 CAM Table Odd 0-15
+#define RMIXL_NAE_L4_CTABLEn(n) _RMIXL_OFFSET(0x250+(n)) // L4 CAM Table 0-15
+#define RMIXL_NAE_IPV6_EXT_HEAD0 _RMIXL_OFFSET(0x260) // IPv6 Extension Headers
+#define RMIXL_NAE_IPV6_EXT_HEAD1 _RMIXL_OFFSET(0x261) // IPv6 Extension Headers
+#define RMIXL_NAE_VLAN_TYPES01 _RMIXL_OFFSET(0x262) // VLAN Headers
+#define RMIXL_NAE_VLAN_TYPES23 _RMIXL_OFFSET(0x263) // VLAN Headers
+
+ // Egress Path Registers
+#define RMIXL_NAE_TX_CONFIG _RMIXL_OFFSET(0x11) // Transmit Configuration
+#define RMIXL_NAE_DMA_TX_CREDIT_TH _RMIXL_OFFSET(0x29) // DMA Transmit Credit Threshold
+#define RMIXL_NAE_STG1_STG2CRDT_CMD _RMIXL_OFFSET(0x30) // Stage1 to Stage2 Credit Command
+#define RMIXL_NAE_STG2_EHCRDT_CMD _RMIXL_OFFSET(0x32) // Stage2 to Exit Hold FIFO Credit Command
+#define RMIXL_NAE_STG2_FREECRDT_CMD _RMIXL_OFFSET(0x34) // Stage2 Free FIFO Credit Command
+#define RMIXL_NAE_STG2_STRCRDT_CMD _RMIXL_OFFSET(0x36) // Stage2 to Micro-Struct FIFO Credit Command
+#define RMIXL_NAE_VFBID_DESTMAP_CMD _RMIXL_OFFSET(0x3A) // VFBID to Destination Map Command
+#define RMIXL_NAE_STG1_PMEM_PROG _RMIXL_OFFSET(0x3C) // Stage1 Context Memory Pointer Setup
+#define RMIXL_NAE_STG2_PMEM_PROG _RMIXL_OFFSET(0x3E) // Stage2 Context Memory Pointer Setup
+#define RMIXL_NAE_EH_PMEM_PROG _RMIXL_OFFSET(0x40) // Exit Hold Context Memory Pointer Setup
+#define RMIXL_NAE_FREE_PMEM_PROG _RMIXL_OFFSET(0x42) // Free Context Memory Pointer Setup
+#define RMIXL_NAE_TX_DDR_ACTVLIST_CMD _RMIXL_OFFSET(0x44) // Transmit DRR Active List Setup
+#define RMIXL_NAE_TX_IF_BURSTMAX_CMD _RMIXL_OFFSET(0x46) // Transmit Interface Burst Max Setup
+#define RMIXL_NAE_TX_IF_ENABLE_CMD _RMIXL_OFFSET(0x48) // Transmit Interface Enable Command
+#define RMIXL_NAE_TX_PKTLEN_PMEM_CMD _RMIXL_OFFSET(0x4A) // Transmit Pktlen Pointer Memory Setup
+#define RMIXL_NAE_TX_SCHED_MAP_CMD0 _RMIXL_OFFSET(0x4C) // Transmit Context Scheduling and Mapping Setup
+#define RMIXL_NAE_TX_SCHED_MAP_CMD1 _RMIXL_OFFSET(0x4D) // Transmit Context Scheduling and Mapping Setup
+#define RMIXL_NAE_EGR_NIOR_CAL_LEN _RMIXL_OFFSET(0x4E) // Egress NetIOR Credit Calendar Length
+#define RMIXL_NAE_TX_PKT_PMEM_CMD0 _RMIXL_OFFSET(0x50) // Transmit Packet Pointer Memory Setup 0
+#define RMIXL_NAE_TX_PKT_PMEM_CMD1 _RMIXL_OFFSET(0x51) // Transmit Packet Pointer Memory Setup 1
+#define RMIXL_NAE_EGR_NIOR_CRDT_CAL_CMD _RMIXL_OFFSET(0x52) // Egress NetIOR Credit Calendar Setup
+#define RMIXL_NAE_TX_SCHED_CTRL _RMIXL_OFFSET(0x53) // Transmit Scheduler Control
+#define RMIXL_NAE_TX_CRC_POLY0 _RMIXL_OFFSET(0x54) // Transmit CRC Polynomial 0
+#define RMIXL_NAE_TX_CRC_POLY1 _RMIXL_OFFSET(0x55) // Transmit CRC Polynomial 1
+#define RMIXL_NAE_TX_CRC_POLY2 _RMIXL_OFFSET(0x56) // Transmit CRC Polynomial 2
+#define RMIXL_NAE_TX_CRC_POLY3 _RMIXL_OFFSET(0x57) // Transmit CRC Polynomial 3
+#define RMIXL_NAE_STR_PMEM_CMD _RMIXL_OFFSET(0x58) // MicroStruct Descriptor Pointer
+#define RMIXL_NAE_TX_IORCRDT_INIT _RMIXL_OFFSET(0x59) // Transmit Network Interface Credit Initialization
+#define RMIXL_NAE_TX_DSBL_ECC _RMIXL_OFFSET(0x5A) // Transmit Disable ECC
+#define RMIXL_NAE_TX_IORCRDT_IGNORE _RMIXL_OFFSET(0x5B) // Transmit Network Interface Credit Ignore
+#define RMIXL_NAE_TX_BW_VALUE0 _RMIXL_OFFSET(0x64) // Transmit Bandwidth Value 0
+#define RMIXL_NAE_TX_BW_VALUE1 _RMIXL_OFFSET(0x65) // Transmit Bandwidth Value 1
+#define RMIXL_NAE_TX_BW_VALUE2 _RMIXL_OFFSET(0x66) // Transmit Bandwidth Value 2
+#define RMIXL_NAE_TX_BW_VALUE3 _RMIXL_OFFSET(0x67) // Transmit Bandwidth Value 3
+#define RMIXL_NAE_TX_BW_CHOICE_CMD _RMIXL_OFFSET(0x68) // Transmit Bandwidth Select
+#define RMIXL_NAE_NAE_FREQ_CMD _RMIXL_OFFSET(0x69) // NAE Frequency Select
+#define RMIXL_NAE_NAE_TX_XOFF_RD_CMD _RMIXL_OFFSET(0x6A) // Transmit XOFF Read Command
+#define RMIXL_NAE_IFn_1588_TMSTMP_HI(n) _RMIXL_OFFSET(0x300+2*(n)) // Interface 0-18 1588 Timestamp High
+#define RMIXL_NAE_IFn_1588_TMSTMP_LO(n) _RMIXL_OFFSET(0x301+2*(n)) // Interface 0-18 1588 Timestamp Low
+#define RMIXL_NAE_TX_EL0 _RMIXL_OFFSET(0x328) // Transmit RAM Error Log 0
+#define RMIXL_NAE_TX_EL1 _RMIXL_OFFSET(0x329) // Transmit RAM Error Log 1
+#define RMIXL_NAE_EIC0 _RMIXL_OFFSET(0x32A) // Error Injection Control 0
+#define RMIXL_NAE_EIC1 _RMIXL_OFFSET(0x32B) // Error Injection Control 1
+#define RMIXL_NAE_STG1_STG2CRDT_STATUS _RMIXL_OFFSET(0x32C) // Stage1 to Stage2 Credit Status
+#define RMIXL_NAE_STG2_EHCRDT_STATUS _RMIXL_OFFSET(0x32D) // Stage2 to Exit Hold FIFO Credit Status
+#define RMIXL_NAE_STG2_FREECRDT_STATUS _RMIXL_OFFSET(0x32E) // Stage2 to FreeFIFO Credit Status
+#define RMIXL_NAE_STG2_STRCRDT_STATUS _RMIXL_OFFSET(0x32F) // Stage2 to Micro-Struct FIFO Credit Status
+#define RMIXL_NAE_TX_PERF_CNTR_INTR_STATUS _RMIXL_OFFSET(0x330) // Transmit Performance Counter Interrupt Status
+#define RMIXL_NAE_TX_PERF_CNTR_ROLL_STATUS _RMIXL_OFFSET(0x331) // Transmit Performance Counter Roll Status
+#define RMIXL_NAE_TX_PERF_CNTR0 _RMIXL_OFFSET(0x332) // Transmit Performance Counter 0
+#define RMIXL_NAE_TX_PERF_CTRL0 _RMIXL_OFFSET(0x333) // Transmit Performance Counter 0 Control
+#define RMIXL_NAE_TX_PERF_CNTR1 _RMIXL_OFFSET(0x334) // Transmit Performance Counter 1
+#define RMIXL_NAE_TX_PERF_CTRL1 _RMIXL_OFFSET(0x335) // Transmit Performance Counter 1 Control
+#define RMIXL_NAE_TX_PERF_CNTR2 _RMIXL_OFFSET(0x336) // Transmit Performance Counter 2
+#define RMIXL_NAE_TX_PERF_CTRL2 _RMIXL_OFFSET(0x337) // Transmit Performance Counter 2 Control
+#define RMIXL_NAE_TX_PERF_CNTR3 _RMIXL_OFFSET(0x338) // Transmit Performance Counter 3
+#define RMIXL_NAE_TX_PERF_CTRL3 _RMIXL_OFFSET(0x339) // Transmit Performance Counter 3 Control
+#define RMIXL_NAE_TX_PERF_CNTR4 _RMIXL_OFFSET(0x33A) // Transmit Performance Counter 4
+#define RMIXL_NAE_TX_PERF_CTRL4 _RMIXL_OFFSET(0x33B) // Transmit Performance Counter 4 Control
+#define RMIXL_NAE_TX_BW_CHOICE_STATUS _RMIXL_OFFSET(0x33C) // Transmit Bandwidth Select Status
+#define RMIXL_NAE_NAE_TXOFF_RD_STATUS _RMIXL_OFFSET(0x33D) // NAE Transmit XOFF Read Status
+#define RMIXL_NAE_VFBID_DESTMAP_STATUS _RMIXL_OFFSET(0x380) // VFBID to Destination Map Status
+#define RMIXL_NAE_STG2_PMEM_STATUS _RMIXL_OFFSET(0x381) // Stage2 Context Memory Pointer Status
+#define RMIXL_NAE_EH_PMEM_STATUS _RMIXL_OFFSET(0x382) // Exit Hold Context Memory Pointer Status
+#define RMIXL_NAE_FREE_PMEM_STATUS _RMIXL_OFFSET(0x383) // Free Context Memory Pointer Status
+#define RMIXL_NAE_TX_DDR_ACTVLIST_STATU S _RMIXL_OFFSET(0x384) // Transmit DRR Active List Status
+#define RMIXL_NAE_TX_IF_BURSTMAX_STATUS _RMIXL_OFFSET(0x385) // Transmit Interface Burst Max Status
+#define RMIXL_NAE_TX_PKTLEN_PMEM_STATUS _RMIXL_OFFSET(0x386) // Transmit Pktlen Pointer Memory Status
+#define RMIXL_NAE_TX_SCHED_MAP_STATUS0 _RMIXL_OFFSET(0x387) // Transmit Context Scheduling and Mapping Status0
+#define RMIXL_NAE_TX_SCHED_MAP_STATUS1 _RMIXL_OFFSET(0x388) // Transmit Context Scheduling and Mapping Status1
+#define RMIXL_NAE_TX_PKT_PMEM_STATUS _RMIXL_OFFSET(0x389) // Transmit Packet Pointer Memory Status
+#define RMIXL_NAE_STR_PMEM_STATUS _RMIXL_OFFSET(0x38A) // MicroStruct Pointer Memory Status
+#define RMIXL_NAE_EGR_NIOR_CAL_STATUS _RMIXL_OFFSET(0x38B) // Egress NetIOR Credit Calendar Status
+
+ // Interrupt Registers
+#define RMIXL_NAE_NET_IF_INTR_STATn(n) _RMIXL_OFFSET(0x280+2*(n)) // Interface 0-18 Interrupt Status Registers
+#define RMIXL_NAE_NET_IF_INTR_MASKn(n) _RMIXL_OFFSET(0x281+2*(n)) // Interface 0-18 Interrupt Mask Registers
+#define RMIXL_NAE_NET_COMMON0_INTR_STAT _RMIXL_OFFSET(0x2A8) // Common Interrupt Status Register 0
+#define RMIXL_NAE_NET_COMMON0_INTR_MASK _RMIXL_OFFSET(0x2A9) // Common Interrupt Mask Register 0
+#define RMIXL_NAE_NET_COMMON1_INTR_STAT _RMIXL_OFFSET(0x2AA) // Common Interrupt Status Register 1
+#define RMIXL_NAE_NET_COMMON1_INTR_MASK _RMIXL_OFFSET(0x2AB) // Common Interrupt Mask Register 1
+
+ // Note: In the following registers, registers IDs are in Interface 0xE.
+ // For Block/Interface/Register decoding, see Table 11-14.
+#define RMIXL_NAE_PHY_LANE<0-3>_STATUS _RMIXL_OFFSET(0-3) // PHY Lane <0-3> Status
+#define RMIXL_NAE_PHY_LANE<0-3>_CTRL _RMIXL_OFFSET(4-7) // PHY Lane <0-3> Control
+#define RMIXL_NAE_SYNCE_SEL_REFCLK _RMIXL_OFFSET(8) // Quad Sync-E Reference Clock Select Register
+
+ // Network Interface Top-Block Registers
+#define RMIXL_NAE_LANE_CFG_CPLX_0_1 _RMIXL_OFFSET(0x780) // Lane Configuration Complex 0 and 1
+#define RMIXL_NAE_LANE_CFG_CPLX_2_3 _RMIXL_OFFSET(0x781) // Lane Configuration Complex 2 and 3
+#define RMIXL_NAE_LANE_CFG_CPLX_4 _RMIXL_OFFSET(0x782) // Lane Configuration Complex 4
+
+#define RMIXL_NAE_SOFT_RESET _RMIXL_OFFSET(0x783) // Network Interface Soft Reset Register
+#define RMIXL_NAE_1588_PTP_OFFSET_HI _RMIXL_OFFSET(0x784) // IEEE 1588 Timer Offset High
+#define RMIXL_NAE_1588_PTP_OFFSET_LO _RMIXL_OFFSET(0x785) // IEEE 1588 Timer Offset Low
+#define RMIXL_NAE_1588_PTP_INC_DEN _RMIXL_OFFSET(0x786) // IEEE 1588 Incremental Denominator
+#define RMIXL_NAE_1588_PTP_INC_NUM _RMIXL_OFFSET(0x787) // IEEE 1588 Incremental Numerator
+#define RMIXL_NAE_1588_PTP_INC_INTG _RMIXL_OFFSET(0x788) // IEEE 1588 Incremental Integer
+#define RMIXL_NAE_1588_PTP_CONTROL _RMIXL_OFFSET(0x789) // IEEE 1588 Control
+#define RMIXL_NAE_1588_PTP_STATUS _RMIXL_OFFSET(0x78A) // IEEE 1588 Status
+#define RMIXL_NAE_1588_PTP_USER_VALUE_HI _RMIXL_OFFSET(0x78B) // IEEE 1588 User Value High
+#define RMIXL_NAE_1588_PTP_USER_VALUE_LO _RMIXL_OFFSET(0x78C) // IEEE 1588 User Value Low
+#define RMIXL_NAE_1588_PTP_TMR1_HI _RMIXL_OFFSET(0x78D) // IEEE 1588 Timer 1 High
+#define RMIXL_NAE_1588_PTP_TMR1_LOW _RMIXL_OFFSET(0x78E) // IEEE 1588 Timer 1 Low
+#define RMIXL_NAE_1588_PTP_TMR2_HI _RMIXL_OFFSET(0x78F) // IEEE 1588 Timer 2 High
+#define RMIXL_NAE_1588_PTP_TMR2_LOW _RMIXL_OFFSET(0x790) // IEEE 1588 Timer 2 Low
+#define RMIXL_NAE_1588_PTP_TMR3_HI _RMIXL_OFFSET(0x791) // IEEE 1588 Timer 3 High
+#define RMIXL_NAE_1588_PTP_TMR3_LOW _RMIXL_OFFSET(0x792) // IEEE 1588 Timer 3 Low
+#define RMIXL_NAE_TX_FC_CAL_IDX_TBL_CTRL _RMIXL_OFFSET(0x793) // Tx Flow Control Calendar Index Table Control
+#define RMIXL_NAE_TX_FC_CAL_TBL_CTRL _RMIXL_OFFSET(0x794) // Tx Flow Control Calendar Table Control
+#define RMIXL_NAE_TX_FC_CAL_TBL_DATA0 _RMIXL_OFFSET(0x795) // Tx Flow Control Table Data 0
+#define RMIXL_NAE_TX_FC_CAL_TBL_DATA1 _RMIXL_OFFSET(0x796) // Tx Flow Control Table Data 1
+#define RMIXL_NAE_TX_FC_CAL_TBL_DATA2 _RMIXL_OFFSET(0x797) // Tx Flow Control Table Data 2
+#define RMIXL_NAE_TX_FC_CAL_TBL_DATA3 _RMIXL_OFFSET(0x798) // Tx Flow Control Table Data 3
+#define RMIXL_NAE_INT_MDIO_CTRL _RMIXL_OFFSET(0x799) // Internal MDIO Master Control
+#define RMIXL_NAE_INT_MDIO_CTRL_DATA _RMIXL_OFFSET(0x79A) // Internal MDIO Control Data
+#define RMIXL_NAE_INT_MDIO_RD_STAT _RMIXL_OFFSET(0x79B) // Internal MDIO Read Status
+#define RMIXL_NAE_INT_MDIO_LINK_STAT _RMIXL_OFFSET(0x79C) // Internal MDIO MII Link Fail Status
+#define RMIXL_NAE_EXT_G0_MDIO_CTRL _RMIXL_OFFSET(0x79D) // External Gig 0 MDIO Master Control
+#define RMIXL_NAE_EXT_G0_MDIO_CTRL_DATA _RMIXL_OFFSET(0x79E) // External Gig 0 MDIO Master Control Data
+#define RMIXL_NAE_EXT_G0_MDIO_RD_STAT _RMIXL_OFFSET(0x79F) // External Gig 0 MDIO Master Read Status Data
+#define RMIXL_NAE_EXT_G0_MDIO_LINK_STAT _RMIXL_OFFSET(0x7A0) // External Gig 0 MDIO MII Link Fail Status
+#define RMIXL_NAE_EXT_G1_MDIO_CTRL _RMIXL_OFFSET(0x7A1) // External Gig 1 MDIO Master Control
+#define RMIXL_NAE_EXT_G1_MDIO_CTRL_DATA _RMIXL_OFFSET(0x7A2) // External Gig 1 MDIO Master Control Data
+#define RMIXL_NAE_EXT_G1_MDIO_RD_STAT _RMIXL_OFFSET(0x7A3) // External Gig 1 MDIO Master Read Status Data
+#define RMIXL_NAE_EXT_G1_MDIO_LINK_STAT _RMIXL_OFFSET(0x7A4) // External Gig 1 MDIO MII Link Fail Status
+#define RMIXL_NAE_EXT_XG0_MDIO_CTRL _RMIXL_OFFSET(0x7A5) // External XGig 0 MDIO Control
+#define RMIXL_NAE_EXT_XG0_MDIO_CTRL_DATA _RMIXL_OFFSET(0x7A6) // External XGig 0 MDIO Control Data
+#define RMIXL_NAE_EXT_XG0_MDIO_RD_STAT _RMIXL_OFFSET(0x7A7) // External XGig 0 MDIO Read Status
+#define RMIXL_NAE_EXT_XG0_MDIO_LINK_STAT _RMIXL_OFFSET(0x7A8) // External XGig 0 MDIO MII Link Fail Status
+#define RMIXL_NAE_EXT_XG1_MDIO_CTRL _RMIXL_OFFSET(0x7A9) // External XGig 1 MDIO Control
+#define RMIXL_NAE_EXT_XG1_MDIO_CTRL_DATA _RMIXL_OFFSET(0x7AA) // External XGig 1 MDIO Control Data
+#define RMIXL_NAE_EXT_XG1_MDIO_RD_STAT _RMIXL_OFFSET(0x7AB) // External XGig 1 MDIO Read Status
+#define RMIXL_NAE_EXT_XG1_MDIO_LINK_STAT _RMIXL_OFFSET(0x7AC) // External XGig 1 MDIO MII Link Fail Status
+#define RMIXL_NAE_GMAC_FC_SL0T0 _RMIXL_OFFSET(0x7AD) // GMAC Flow Control Slot 0
+#define RMIXL_NAE_GMAC_FC_SL0T1 _RMIXL_OFFSET(0x7AE) // GMAC Flow Control Slot 1
+#define RMIXL_NAE_GMAC_FC_SL0T2 _RMIXL_OFFSET(0x7AF) // GMAC Flow Control Slot 2
+#define RMIXL_NAE_GMAC_FC_SL0T3 _RMIXL_OFFSET(0x7B0) // GMAC Flow Control Slot 3
+#define RMIXL_NAE_NETIOR_NTB_SLOT _RMIXL_OFFSET(0x7B1) // Network Interface to NAE Ingress Bus Slot
+#define RMIXL_NAE_NETIOR_MISC_CTRL0 _RMIXL_OFFSET(0x7B2) // Miscellaneous Control 0
+#define RMIXL_NAE_NETIOR_INT0 _RMIXL_OFFSET(0x7B3) // Interrupt 0 - Lane Fault
+#define RMIXL_NAE_NETIOR_INT0_MASK _RMIXL_OFFSET(0x7B4) // Interrupt 0 Mask
+#define RMIXL_NAE_NETIOR_INT1 _RMIXL_OFFSET(0x7B5) // Interrupt 1 - Exception
+#define RMIXL_NAE_NETIOR_INT1_MASK _RMIXL_OFFSET(0x7B6) // Interrupt 1 Mask
+#define RMIXL_NAE_GMAC_PFC_REPEAT _RMIXL_OFFSET(0x7B7) // Priority Flow Control Repeat
+#define RMIXL_NAE_XGMAC_PFC_REPEAT _RMIXL_OFFSET(0x7B8) // XGMAC Priority Flow Control Repeat
+#define RMIXL_NAE_NETIOR_MISC_CTRL1 _RMIXL_OFFSET(0x7B9) // Miscellaneous Control 1
+#define RMIXL_NAE_NETIOR_MISC_CTRL2 _RMIXL_OFFSET(0x7BA) // Miscellaneous Control 2
+#define RMIXL_NAE_NETIOR_INT2 _RMIXL_OFFSET(0x7BB) // Interrupt 2 - Transition Not Detected
+#define RMIXL_NAE_NETIOR_INT2_MASK _RMIXL_OFFSET(0x7BC) // Interrupt 2 Mask
+#define RMIXL_NAE_NETIOR_MISC_CTRL3 _RMIXL_OFFSET(0x7BD) // Miscellaneous Control 3
+
+ // Receive Configuration (RX_CONFIG)
+
+ // Free-in descriptor Size Unique.
+ // Free In Descriptor Size is unique per Free-In LIFO pool.
+ // If this is set then FrInDescCLSize is not used.
+ // To program individual Free-In LIFO Sizes use the Free-In LIFO
+ // Descriptor Size Register (FREE_IN_LIFO_UNIQ_SZ_CFG).
+#define RMIXL_NAE_RX_CONFIG_FSU __BIT(31)
+ // Rx Status Mask.
+ // The 7 error status events mask. Set each bit for the error types
+ // shown below so that the Err bit in register
+ // Rx Packet Descriptor Format is set.
+#define RMIXL_NAE_RX_CONFIG_RSM __BITS(30,24)
+ // Bit 6: Truncated - If a packet overflows the NetIor ingress
+ // FIFOs, it will be truncated. This is the only place a packet
+ // can get truncated.
+#define RMIXL_NAE_RX_CONFIG_RSM_TRUNC __BIT(30)
+ // Bit 5: Pause - Only for SGMII/XAUI. Pause Frames can be directly
+ // understood and used by the hardware. If software does not want to
+ // decode these and drops them, then this bit needs to be set.
+#define RMIXL_NAE_RX_CONFIG_RSM_PAUSE __BIT(29)
+ // Bit 4: Rx OK - Good Packet
+#define RMIXL_NAE_RX_CONFIG_RSM_RX_OK __BIT(28)
+ // Bit 3: LengthOutOfRange - (legacy mode, should be 0)
+#define RMIXL_NAE_RX_CONFIG_RSM_LENGTH_RANGE __BIT(27)
+ // Bit 2: LengthCheckError - (legacy mode, should be 0)
+#define RMIXL_NAE_RX_CONFIG_RSM_LENGTH_CHECK __BIT(26)
+ // Bit 1: Link CRC error (bit 1 in INTR_STAT register)
+ // Could also be a "truncated packet"
+#define RMIXL_NAE_RX_CONFIG_RSM_LINK_CRC __BIT(25)
+ // Bit 0: Code Error (legacy mode; reserved)
+#define RMIXL_NAE_RX_CONFIG_RSM_CODE_ERROR __BIT(24)
+
+#define RMIXL_NAE_RX_CONFIG_PREPAD_SIZE __BITS(23,22) // Pre-pad Size in 16-byte units.
+#define RMIXL_NAE_RX_CONFIG_PREPAD_WORD3 __BITS(21,20) // Pre-pad Word 3
+#define RMIXL_NAE_RX_CONFIG_PREPAD_WORD2 __BITS(19,18) // Pre-pad Word 2
+#define RMIXL_NAE_RX_CONFIG_PREPAD_WORD1 __BITS(17,16) // Pre-pad Word 1
+#define RMIXL_NAE_RX_CONFIG_PREPAD_WORD0 __BITS(15,14) // Pre-pad Word 0
+#define RMIXL_NAE_RX_CONFIG_PREPAD_EN __BIT(13) // Pre-pad Enable
+
+#define RMIXL_NAE_RX_CONFIG_HPE __BIT(12) // H/W Parser Enable
+
+ // Free-In Descriptor Size (in 64-byte Cache Lines).
+ // If this field is set to 0, the descriptor size is 16 KB.
+#define RMIXL_NAE_RX_CONFIG_FREEIN_DESC_SIZE __BITS(11,4)
+
+#define RMIXL_NAE_RX_CONFIG_DED __BIT(3) // Device ECC Disable
+
+ // Receive Maximum Message Size minus one
+ // The POE adds its own descriptor to the number of descriptors
+#define RMIXL_NAE_RX_CONFIG_MMS __BITS(2,1)
+#define RMIXL_NAE_RX_CONFIG_MMS_ONE 0 // 1 descriptor
+#define RMIXL_NAE_RX_CONFIG_MMS_TWO 1 // 2 descriptors
+#define RMIXL_NAE_RX_CONFIG_MMS_THREE 2 // 3 descriptors
+#define RMIXL_NAE_RX_CONFIG_MMS_INVALID 3 // Invalid
+
+ // Rx Enable.
+#define RMIXL_NAE_RX_CONFIG_RE __BIT(0)
+
+ // Receive Interface Base Config <0-9> (RX_IF_BASE_CONFIG<0-9>)
+ // Block 7, Register 0x12..0x1b (8xx/4xx)
+ // Block 7, Register 0x12..0x16 (3xx)
+ // RX_IF_BASE_CONFIG0: Complex 0 phy0/phy1 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG1: Complex 0 phy2/phy3 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG2: Complex 1 phy0/phy1 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG3: Complex 1 phy2/phy3 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG4: Complex 2 phy0/phy1 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG5: Complex 2 phy2/phy3 (EVEN/ODD) Channel Offset,
+ // These are 8xx/4xx only:
+ // RX_IF_BASE_CONFIG6: Complex 3 phy0/phy1 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG7: Complex 3 phy2/phy3 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG8: Complex 4 phy0/phy1 (EVEN/ODD) Channel Offset,
+ // RX_IF_BASE_CONFIG9: Complex 4 phy2/phy3 (EVEN/ODD) Channel Offset,
+ // On XLP 800 and 400 processors, the valid range is 0-523.
+ // On XLP 300 and 300-Lite processors, the valid range is 0-127.
+#define RMIXL_NAE_RX_IF_BASE_CONFIG_ODD_LANE_BASE __BITS(25,16)
+#define RMIXL_NAE_RX_IF_BASE_CONFIG_EVEN_LANE_BASE __BITS(9,0)
+
#endif /* _MIPS_RMI_RMIXL_NAEREG_H */
Index: src/sys/arch/mips/rmi/rmixlp_pcie.c
diff -u src/sys/arch/mips/rmi/rmixlp_pcie.c:1.1.2.4 src/sys/arch/mips/rmi/rmixlp_pcie.c:1.1.2.5
--- src/sys/arch/mips/rmi/rmixlp_pcie.c:1.1.2.4 Fri Dec 30 06:42:29 2011
+++ src/sys/arch/mips/rmi/rmixlp_pcie.c Sat Dec 31 04:54:28 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: rmixlp_pcie.c,v 1.1.2.4 2011/12/30 06:42:29 matt Exp $ */
+/* $NetBSD: rmixlp_pcie.c,v 1.1.2.5 2011/12/31 04:54:28 matt Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rmixlp_pcie.c,v 1.1.2.4 2011/12/30 06:42:29 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rmixlp_pcie.c,v 1.1.2.5 2011/12/31 04:54:28 matt Exp $");
#include "opt_pci.h"
#include "pci.h"
@@ -655,7 +655,9 @@ rmixlp_pcie_configure_bus(struct rmixlp_
mem = rmixlp_pcie_set_bus0_bar0(sc, RMIXLP_OHCI3_PCITAG, mem);
mem = rmixlp_pcie_set_bus0_bar0(sc, RMIXLP_NAE_PCITAG, mem);
mem = rmixlp_pcie_set_bus0_bar0(sc, RMIXLP_POE_PCITAG, mem);
+ mem = rmixlp_pcie_set_bus0_bar0(sc, RMIXLP_AHCI_PCITAG, mem);
mem = rmixlp_pcie_set_bus0_bar0(sc, RMIXLP_FMN_PCITAG, mem);
+ mem = rmixlp_pcie_set_bus0_bar0(sc, RMIXLP_SRIO_PCITAG, mem);
} else {
rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_EHCI0_PCITAG);
rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_OHCI0_PCITAG);
@@ -665,7 +667,9 @@ rmixlp_pcie_configure_bus(struct rmixlp_
rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_OHCI3_PCITAG);
rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_NAE_PCITAG);
rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_POE_PCITAG);
+ rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_AHCI_PCITAG);
rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_FMN_PCITAG);
+ rmixlp_pcie_print_bus0_bar0(sc, RMIXLP_SRIO_PCITAG);
}
for (size_t i = 0; i < 4; i++) {
Index: src/sys/arch/mips/rmi/rmixlreg.h
diff -u src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.17 src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.18
--- src/sys/arch/mips/rmi/rmixlreg.h:1.1.2.17 Sat Dec 31 04:30:52 2011
+++ src/sys/arch/mips/rmi/rmixlreg.h Sat Dec 31 04:54:28 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: rmixlreg.h,v 1.1.2.17 2011/12/31 04:30:52 matt Exp $ */
+/* $NetBSD: rmixlreg.h,v 1.1.2.18 2011/12/31 04:54:28 matt Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -591,7 +591,6 @@
* lists "Reg ID" values not offsets
* Offsets are relative to RMIXL_IO_DEV_BRIDGE
*/
-#define RMIXL_PIC_PCITAG _RMIXL_PCITAG(0, 0, 4)
#define RMIXL_PIC_CONTROL _RMIXL_OFFSET(0x0)
#define RMIXL_PIC_IPIBASE _RMIXL_OFFSET(0x4)
#define RMIXL_PIC_INTRACK _RMIXL_OFFSET(0x6)
@@ -789,16 +788,8 @@
#define RMIXLP_PIC_INT_GPIO_PENDING_PICPENDB __BITS(11,0)
/*
- * RMIXLP Uart
- */
-#define RMIXLP_UART1_PCITAG _RMIXL_PCITAG(0, 6, 0)
-#define RMIXLP_UART2_PCITAG _RMIXL_PCITAG(0, 6, 1)
-
-/*
* GPIO Controller registers
*/
-#define RMIXLP_GPIO_PCITAG _RMIXL_PCITAG(0, 6, 4)
-
/* 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 */
@@ -1257,7 +1248,6 @@
/*
* XLP PCIe Host Bridge Registers
*/
-#define RMIXLP_SBC_PCITAG _RMIXL_PCITAG(0, 0, 0)
#ifndef RMIXLP_SBC_PCIE_ECFG_PBASE
#define RMIXLP_SBC_PCIE_ECFG_PBASE 0x18000000
#endif
@@ -1406,20 +1396,13 @@
#define RMIXLP_SBC_GPIO_TSW _RMIXL_OFFSET(0x309) /* General I/O Time Slot Weight Register */
#define RMIXLP_SBC_FLASH_TSW _RMIXL_OFFSET(0x30A) /* Flash Time Slot Weight Register (NAND/NOR/SPI/MMC/SD) */
#define RMIXLP_SBC_NAE_TSW _RMIXL_OFFSET(0x30B) /* Network Acceleration Engine Time Slot Weight Register */
-#define RMIXLP_SBC_FNM_TSW _RMIXL_OFFSET(0x30C) /* Fast Messaging Network Time Slot Weight Register */
+#define RMIXLP_SBC_FMN_TSW _RMIXL_OFFSET(0x30C) /* Fast Messaging Network Time Slot Weight Register */
#define RMIXLP_SBC_DMAENG_TSW _RMIXL_OFFSET(0x30D) /* Data Transfer and RAID Engine Slot Weight Register */
#define RMIXLP_SBC_SEC_TSW _RMIXL_OFFSET(0x30E) /* Security Engine Slot Weight Register */
#define RMIXLP_SBC_RSAECC_TSW _RMIXL_OFFSET(0x30F) /* RSA/ECC Engine Slot Weight Register */
#define RMIXLP_SBC_BRIDGE_DATA_COUNTER _RMIXL_OFFSET(0x310) /* Bridge Data Counter Register */
#define RMIXLP_SBC_BYTE_SWAP _RMIXL_OFFSET(0x311) /* Byte Swap Register */
-#define RMIXLP_EHCI0_PCITAG _RMIXL_PCITAG(0,2,0)
-#define RMIXLP_OHCI0_PCITAG _RMIXL_PCITAG(0,2,1)
-#define RMIXLP_OHCI1_PCITAG _RMIXL_PCITAG(0,2,2)
-#define RMIXLP_EHCI1_PCITAG _RMIXL_PCITAG(0,2,3)
-#define RMIXLP_OHCI2_PCITAG _RMIXL_PCITAG(0,2,4)
-#define RMIXLP_OHCI3_PCITAG _RMIXL_PCITAG(0,2,5)
-
#define RMIXLP_USB_CTL0 _RMIXL_OFFSET(0x41)
#define RMIXLP_USB_BYTE_SWAP_DIS _RMIXL_OFFSET(0x49)
#define RMIXLP_USB_PHY0 _RMIXL_OFFSET(0x4A)
@@ -1446,10 +1429,48 @@
#define RMIXLP_USB_PHY0_PHYDETVBUS __BIT(1)
#define RMIXLP_USB_PHY0_USBPHYRESET __BIT(0)
+#define RMIXLP_SBC_PCITAG _RMIXL_PCITAG(0,0,0)
+#define RMIXLP_ICI1_PCITAG _RMIXL_PCITAG(0,0,1)
+#define RMIXLP_ICI2_PCITAG _RMIXL_PCITAG(0,0,2)
+#define RMIXLP_ICI3_PCITAG _RMIXL_PCITAG(0,0,3)
+#define RMIXLP_PIC_PCITAG _RMIXL_PCITAG(0,0,4)
+
+#define RMIXLP_PCIPORT0_PCITAG _RMIXL_PCITAG(0,0,0)
+#define RMIXLP_PCIPORT1_PCITAG _RMIXL_PCITAG(0,1,0)
+#define RMIXLP_PCIPORT2_PCITAG _RMIXL_PCITAG(0,2,0)
+#define RMIXLP_PCIPORT3_PCITAG _RMIXL_PCITAG(0,3,0)
+
+#define RMIXLP_EHCI0_PCITAG _RMIXL_PCITAG(0,2,0)
+#define RMIXLP_OHCI0_PCITAG _RMIXL_PCITAG(0,2,1)
+#define RMIXLP_OHCI1_PCITAG _RMIXL_PCITAG(0,2,2)
+#define RMIXLP_EHCI1_PCITAG _RMIXL_PCITAG(0,2,3)
+#define RMIXLP_OHCI2_PCITAG _RMIXL_PCITAG(0,2,4)
+#define RMIXLP_OHCI3_PCITAG _RMIXL_PCITAG(0,2,5)
+
#define RMIXLP_NAE_PCITAG _RMIXL_PCITAG(0,3,0)
#define RMIXLP_POE_PCITAG _RMIXL_PCITAG(0,3,1)
+#define RMIXLP_AHCI_PCITAG _RMIXL_PCITAG(0,3,2)
+
#define RMIXLP_FMN_PCITAG _RMIXL_PCITAG(0,4,0)
+#define RMIXLP_DMA_PCITAG _RMIXL_PCITAG(0,5,0)
+#define RMIXLP_SAE_PCITAG _RMIXL_PCITAG(0,5,1)
+#define RMIXLP_PKE_PCITAG _RMIXL_PCITAG(0,5,2)
+#define RMIXLP_SRIO_PCITAG _RMIXL_PCITAG(0,5,3)
+#define RMIXLP_RXE_PCITAG _RMIXL_PCITAG(0,5,4)
+
+#define RMIXLP_UART1_PCITAG _RMIXL_PCITAG(0,6,0)
+#define RMIXLP_UART2_PCITAG _RMIXL_PCITAG(0,6,1)
+#define RMIXLP_I2C1_PCITAG _RMIXL_PCITAG(0,6,2)
+#define RMIXLP_I2C2_PCITAG _RMIXL_PCITAG(0,6,3)
+#define RMIXLP_GPIO_PCITAG _RMIXL_PCITAG(0,6,4)
+#define RMIXLP_SM_PCITAG _RMIXL_PCITAG(0,6,5)
+#define RMIXLP_JTAG_PCITAG _RMIXL_PCITAG(0,6,6)
+
+#define RMIXLP_NOR_PCITAG _RMIXL_PCITAG(0,7,0)
+#define RMIXLP_NAND_PCITAG _RMIXL_PCITAG(0,7,1)
+#define RMIXLP_SPI_PCITAG _RMIXL_PCITAG(0,7,2)
+#define RMIXLP_MMC_PCITAG _RMIXL_PCITAG(0,7,3)
/*
* PCI PCIe control (contains the IRT info)
*/
@@ -1465,7 +1486,6 @@
/*
* XLP System Management Registers
*/
-#define RMIXLP_SM_PCITAG _RMIXL_PCITAG(0, 6, 5)
#define RMIXLP_SM_CHIP_RESET _RMIXL_OFFSET(0x40)
#define RMIXLP_SM_POWER_ON_RESET_CFG _RMIXL_OFFSET(0x41)
#define RMIXLP_SM_EFUSE_DEVICE_CFG_STATUS0 _RMIXL_OFFSET(0x42)
@@ -1488,7 +1508,6 @@
#define RMIXLP_SM_POWER_ON_RESET_CFG_NORSP __BIT(4)
#define RMIXLP_SM_POWER_ON_RESET_CFG_BD __BITS(3,0)
-#define RMIXLP_NOR_PCITAG _RMIXL_PCITAG(0,7,0)
#define RMIXLP_NOR_NCS 8
#define RMIXLP_NOR_CS_BASEADDRESSn(n) _RMIXL_OFFSET(0x40+(n))
#define RMIXLP_NOR_CS_BASELIMITn(n) _RMIXL_OFFSET(0x48+(n))
@@ -1636,11 +1655,9 @@
// RDY/BSY Status. 1: NOR device is ready.
#define RMIXLP_NOR_STATUS_RDYBSY __BIT(0)
-#define RMIXLP_NAND_PCITAG _RMIXL_PCITAG(0,7,1)
#define RMIXLP_NAND_RDYBSY_SEL _RMIXL_OFFSET(0x81)
-#define RMIXLP_SPI_PCITAG _RMIXL_PCITAG(0,7,2)
#define RMIXLP_SPI_CS_CONFIG(n) _RMIXL_OFFSET(0x40+0x10*(n))
#define RMIXLP_SPI_CS_FDIV(n) _RMIXL_OFFSET(0x41+0x10*(n))
@@ -1700,7 +1717,6 @@
#define RMIXLP_SPI_GPIO_PINS __BITS(28,22)
-#define RMIXLP_MMC_PCITAG _RMIXL_PCITAG(0,7,3)
#define RMIXLP_MMC_SLOTSIZE _RMIXL_OFFSET(0x40)
#define RMIXLP_MMC_SLOT0 _RMIXL_OFFSET(0x40)