summaryrefslogtreecommitdiffstats
path: root/sys/mips/nlm/hal/bridge.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/mips/nlm/hal/bridge.h')
-rw-r--r--sys/mips/nlm/hal/bridge.h177
1 files changed, 177 insertions, 0 deletions
diff --git a/sys/mips/nlm/hal/bridge.h b/sys/mips/nlm/hal/bridge.h
new file mode 100644
index 0000000..d91ccd6
--- /dev/null
+++ b/sys/mips/nlm/hal/bridge.h
@@ -0,0 +1,177 @@
+/*-
+ * Copyright 2003-2011 Netlogic Microsystems (Netlogic). All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Netlogic Microsystems ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NETLOGIC OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ * NETLOGIC_BSD */
+
+#ifndef __NLM_BRIDGE_H__
+#define __NLM_BRIDGE_H__
+
+/**
+* @file_name mio.h
+* @author Netlogic Microsystems
+* @brief Basic definitions of XLP memory and io subsystem
+*/
+
+/* BRIDGE specific registers */
+#define XLP_BRIDGE_MODE_REG 0x40
+#define XLP_BRIDGE_PCI_CFG_BASE_REG 0x41
+#define XLP_BRIDGE_PCI_CFG_LIMIT_REG 0x42
+#define XLP_BRIDGE_PCIE_CFG_BASE_REG 0x43
+#define XLP_BRIDGE_PCIE_CFG_LIMIT_REG 0x44
+#define XLP_BRIDGE_BUSNUM_BAR0_REG 0x45
+#define XLP_BRIDGE_BUSNUM_BAR1_REG 0x46
+#define XLP_BRIDGE_BUSNUM_BAR2_REG 0x47
+#define XLP_BRIDGE_BUSNUM_BAR3_REG 0x48
+#define XLP_BRIDGE_BUSNUM_BAR4_REG 0x49
+#define XLP_BRIDGE_BUSNUM_BAR5_REG 0x4a
+#define XLP_BRIDGE_BUSNUM_BAR6_REG 0x4b
+#define XLP_BRIDGE_FLASH_BAR0_REG 0x4c
+#define XLP_BRIDGE_FLASH_BAR1_REG 0x4d
+#define XLP_BRIDGE_FLASH_BAR2_REG 0x4e
+#define XLP_BRIDGE_FLASH_BAR3_REG 0x4f
+#define XLP_BRIDGE_FLASH_LIMIT0_REG 0x50
+#define XLP_BRIDGE_FLASH_LIMIT1_REG 0x51
+#define XLP_BRIDGE_FLASH_LIMIT2_REG 0x52
+#define XLP_BRIDGE_FLASH_LIMIT3_REG 0x53
+
+#define XLP_BRIDGE_DRAM_BAR_REG(i) (0x54 + (i))
+#define XLP_BRIDGE_DRAM_BAR0_REG 0x54
+#define XLP_BRIDGE_DRAM_BAR1_REG 0x55
+#define XLP_BRIDGE_DRAM_BAR2_REG 0x56
+#define XLP_BRIDGE_DRAM_BAR3_REG 0x57
+#define XLP_BRIDGE_DRAM_BAR4_REG 0x58
+#define XLP_BRIDGE_DRAM_BAR5_REG 0x59
+#define XLP_BRIDGE_DRAM_BAR6_REG 0x5a
+#define XLP_BRIDGE_DRAM_BAR7_REG 0x5b
+
+#define XLP_BRIDGE_DRAM_LIMIT_REG(i) (0x5c + (i))
+#define XLP_BRIDGE_DRAM_LIMIT0_REG 0x5c
+#define XLP_BRIDGE_DRAM_LIMIT1_REG 0x5d
+#define XLP_BRIDGE_DRAM_LIMIT2_REG 0x5e
+#define XLP_BRIDGE_DRAM_LIMIT3_REG 0x5f
+#define XLP_BRIDGE_DRAM_LIMIT4_REG 0x60
+#define XLP_BRIDGE_DRAM_LIMIT5_REG 0x61
+#define XLP_BRIDGE_DRAM_LIMIT6_REG 0x62
+#define XLP_BRIDGE_DRAM_LIMIT7_REG 0x63
+
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN0_REG 0x64
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN1_REG 0x65
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN2_REG 0x66
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN3_REG 0x67
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN4_REG 0x68
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN5_REG 0x69
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN6_REG 0x6a
+#define XLP_BRIDGE_DRAM_NODE_TRANSLN7_REG 0x6b
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN0_REG 0x6c
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN1_REG 0x6d
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN2_REG 0x6e
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN3_REG 0x6f
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN4_REG 0x70
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN5_REG 0x71
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN6_REG 0x72
+#define XLP_BRIDGE_DRAM_CHNL_TRANSLN7_REG 0x73
+#define XLP_BRIDGE_PCIEMEM_BASE0_REG 0x74
+#define XLP_BRIDGE_PCIEMEM_BASE1_REG 0x75
+#define XLP_BRIDGE_PCIEMEM_BASE2_REG 0x76
+#define XLP_BRIDGE_PCIEMEM_BASE3_REG 0x77
+#define XLP_BRIDGE_PCIEMEM_LIMIT0_REG 0x78
+#define XLP_BRIDGE_PCIEMEM_LIMIT1_REG 0x79
+#define XLP_BRIDGE_PCIEMEM_LIMIT2_REG 0x7a
+#define XLP_BRIDGE_PCIEMEM_LIMIT3_REG 0x7b
+#define XLP_BRIDGE_PCIEIO_BASE0_REG 0x7c
+#define XLP_BRIDGE_PCIEIO_BASE1_REG 0x7d
+#define XLP_BRIDGE_PCIEIO_BASE2_REG 0x7e
+#define XLP_BRIDGE_PCIEIO_BASE3_REG 0x7f
+#define XLP_BRIDGE_PCIEIO_LIMIT0_REG 0x80
+#define XLP_BRIDGE_PCIEIO_LIMIT1_REG 0x81
+#define XLP_BRIDGE_PCIEIO_LIMIT2_REG 0x82
+#define XLP_BRIDGE_PCIEIO_LIMIT3_REG 0x83
+#define XLP_BRIDGE_PCIEMEM_BASE4_REG 0x84
+#define XLP_BRIDGE_PCIEMEM_BASE5_REG 0x85
+#define XLP_BRIDGE_PCIEMEM_BASE6_REG 0x86
+#define XLP_BRIDGE_PCIEMEM_LIMIT4_REG 0x87
+#define XLP_BRIDGE_PCIEMEM_LIMIT5_REG 0x88
+#define XLP_BRIDGE_PCIEMEM_LIMIT6_REG 0x89
+#define XLP_BRIDGE_PCIEIO_BASE4_REG 0x8a
+#define XLP_BRIDGE_PCIEIO_BASE5_REG 0x8b
+#define XLP_BRIDGE_PCIEIO_BASE6_REG 0x8c
+#define XLP_BRIDGE_PCIEIO_LIMIT4_REG 0x8d
+#define XLP_BRIDGE_PCIEIO_LIMIT5_REG 0x8e
+#define XLP_BRIDGE_PCIEIO_LIMIT6_REG 0x8f
+#define XLP_BRIDGE_NBU_EVENT_CNT_CTL_REG 0x90
+#define XLP_BRIDGE_EVNTCTR1_LOW_REG 0x91
+#define XLP_BRIDGE_EVNTCTR1_HI_REG 0x92
+#define XLP_BRIDGE_EVNT_CNT_CTL2_REG 0x93
+#define XLP_BRIDGE_EVNTCTR2_LOW_REG 0x94
+#define XLP_BRIDGE_EVNTCTR2_HI_REG 0x95
+#define XLP_BRIDGE_TRACEBUF_MATCH_REG0 0x96
+#define XLP_BRIDGE_TRACEBUF_MATCH_REG1 0x97
+#define XLP_BRIDGE_TRACEBUF_MATCH_LOW_REG 0x98
+#define XLP_BRIDGE_TRACEBUF_MATCH_HI_REG 0x99
+#define XLP_BRIDGE_TRACEBUF_CTRL_REG 0x9a
+#define XLP_BRIDGE_TRACEBUF_INIT_REG 0x9b
+#define XLP_BRIDGE_TRACEBUF_ACCESS_REG 0x9c
+#define XLP_BRIDGE_TRACEBUF_READ_DATA_REG0 0x9d
+#define XLP_BRIDGE_TRACEBUF_READ_DATA_REG1 0x9d
+#define XLP_BRIDGE_TRACEBUF_READ_DATA_REG2 0x9f
+#define XLP_BRIDGE_TRACEBUF_READ_DATA_REG3 0xa0
+#define XLP_BRIDGE_TRACEBUF_STATUS_REG 0xa1
+#define XLP_BRIDGE_ADDRESS_ERROR0_REG 0xa2
+#define XLP_BRIDGE_ADDRESS_ERROR1_REG 0xa3
+#define XLP_BRIDGE_ADDRESS_ERROR2_REG 0xa4
+#define XLP_BRIDGE_TAG_ECC_ADDR_ERROR0_REG 0xa5
+#define XLP_BRIDGE_TAG_ECC_ADDR_ERROR1_REG 0xa6
+#define XLP_BRIDGE_TAG_ECC_ADDR_ERROR2_REG 0xa7
+#define XLP_BRIDGE_LINE_FLUSH_REG0 0xa8
+#define XLP_BRIDGE_LINE_FLUSH_REG1 0xa9
+#define XLP_BRIDGE_NODE_ID_REG 0xaa
+#define XLP_BRIDGE_ERROR_INTERRUPT_EN_REG 0xab
+#define XLP_BRIDGE_PCIE0_WEIGHT_REG 0x300
+#define XLP_BRIDGE_PCIE1_WEIGHT_REG 0x301
+#define XLP_BRIDGE_PCIE2_WEIGHT_REG 0x302
+#define XLP_BRIDGE_PCIE3_WEIGHT_REG 0x303
+#define XLP_BRIDGE_USB_WEIGHT_REG 0x304
+#define XLP_BRIDGE_NET_WEIGHT_REG 0x305
+#define XLP_BRIDGE_POE_WEIGHT_REG 0x306
+#define XLP_BRIDGE_CMS_WEIGHT_REG 0x307
+#define XLP_BRIDGE_DMAENG_WEIGHT_REG 0x308
+#define XLP_BRIDGE_SEC_WEIGHT_REG 0x309
+#define XLP_BRIDGE_COMP_WEIGHT_REG 0x30a
+#define XLP_BRIDGE_GIO_WEIGHT_REG 0x30b
+#define XLP_BRIDGE_FLASH_WEIGHT_REG 0x30c
+
+#if !defined(LOCORE) && !defined(__ASSEMBLY__)
+
+#define nlm_rdreg_bridge(b, r) nlm_read_reg_kseg(b, r)
+#define nlm_wreg_bridge(b, r, v) nlm_write_reg_kseg(b, r, v)
+#define nlm_pcibase_bridge(node) nlm_pcicfg_base(XLP_IO_BRIDGE_OFFSET(node))
+#define nlm_regbase_bridge(node) nlm_pcibase_bridge(node)
+
+#endif
+
+#endif
OpenPOWER on IntegriCloud