Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/ofppc/firepower Memory map and system registers for...
details: https://anonhg.NetBSD.org/src/rev/c2eeaf2611e9
branches: trunk
changeset: 516540:c2eeaf2611e9
user: thorpej <thorpej%NetBSD.org@localhost>
date: Wed Oct 24 20:36:44 2001 +0000
description:
Memory map and system registers for the Firepower ES, MX, LX, and TX
systems.
diffstat:
sys/arch/ofppc/firepower/firepowerreg.h | 236 ++++++++++++++++++++++++++++++++
1 files changed, 236 insertions(+), 0 deletions(-)
diffs (240 lines):
diff -r d210944fbb0e -r c2eeaf2611e9 sys/arch/ofppc/firepower/firepowerreg.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/ofppc/firepower/firepowerreg.h Wed Oct 24 20:36:44 2001 +0000
@@ -0,0 +1,236 @@
+/* $NetBSD: firepowerreg.h,v 1.1 2001/10/24 20:36:44 thorpej Exp $ */
+
+/*
+ * Copyright 2001 Wasabi Systems, Inc.
+ * All rights reserved.
+ *
+ * Written by Jason R. Thorpe for Wasabi Systems, Inc.
+ *
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed for the NetBSD Project by
+ * Wasabi Systems, Inc.
+ * 4. The name of Wasabi Systems, Inc. may not be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``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 WASABI SYSTEMS, INC
+ * 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.
+ */
+
+/*
+ * Register definitions and memory map for the Firepower ES, MX, LX, and TX
+ * systems.
+ */
+
+/*****************************************************************************
+ * SYSTEM MEMORY MAP
+ *****************************************************************************/
+
+/*
+ * Note: This pretty much corresponds to the PReP Contiguous Memory Map.
+ */
+
+#define FP_MAP_SYSMEM_BASE 0x00000000 /* system memory base */
+#define FP_MAP_SYSMEM_SIZE 0x80000000 /* system memory size */
+
+#define FP_MAP_ISAIO_BASE 0x80000000 /* ISA I/O base */
+#define FP_MAP_ISAIO_SIZE 0x00010000 /* ISA I/O size */
+
+#define FP_MAP_PCICFG_BASE 0x80800000 /* PCI config base */
+#define FP_MAP_PCICFG_SIZE 0x00a00000 /* PCI config size */
+
+#define FP_MAP_PCIIO_BASE 0x81200000 /* PCI I/O base */
+#define FP_MAP_PCIIO_SIZE 0x3e800000 /* PCI I/O size */
+
+#define FP_MAP_PCIMEM_BASE 0xc0000000 /* PCI memory base */
+#define FP_MAP_PCIMEM_SIZE 0x3f000000 /* PCI memory size */
+
+/*****************************************************************************
+ * SYSTEM REGISTERS
+ *****************************************************************************/
+
+#define FPR_INTR_REQUEST 0xff000000 /* Interrupt Request */
+#define FPR_INTR_REQUEST_SET 0xff000008 /* Interrupt Request Set */
+#define FPR_INTR_MASK0 0xff000100 /* Interrupt Mask0 */
+#define FPR_INTR_MASK1 0xff000108 /* Interrupt Mask1 */
+#define FPR_INTR_MASK2 0xff000110 /* Interrupt Mask2 */
+#define FPR_INTR_MASK3 0xff000118 /* Interrupt Mask3 */
+#define FPR_INTR_PENDING0 0xff000200 /* Interrupt Pending0 */
+#define FPR_INTR_PENDING1 0xff000208 /* Interrupt Pending1 */
+#define FPR_INTR_PENDING2 0xff000210 /* Interrupt Pending2 */
+#define FPR_INTR_PENDING3 0xff000218 /* Interrupt Pending3 */
+
+#define INTR_ISA_IRQ(x) (1U << (x)) /* ISA IRQs 0-15 */
+#define INTR_SOFT(x) (1U << ((x) + 16))/* 4 software interrupts */
+#define INTR_PCI0 (1U << 22) /* PCI slot 0 */
+#define INTR_PCI1 (1U << 23) /* PCI slot 1 */
+#define INTR_SCSI (1U << 25) /* SCSI */
+#define INTR_ETHERNET (1U << 26) /* Ethernet */
+#define INTR_SIO_NMI (1U << 27) /* SIO NMI */
+#define INTR_CPU_ERR (1U << 28) /* CPU Bus Error */
+#define INTR_PCI_ERR (1U << 29) /* PCI Bus Error */
+#define INTR_MEM_ERR (1U << 30) /* Memory Error/Video Intr */
+#define INTR_CPU_MSG (1U << 31) /* CPU message */
+
+#define FPR_CPU_MSG_INTR 0xff000300 /* CPU Message Interrupt */
+#define FPR_CPU_MSG_INTR_SET 0xff000308 /* CPU Message Interrupt Set */
+
+#define CPU_MSG_INTR(x) (1U << (x)) /* interrupt CPU #x */
+
+#define FPR_PCI_ERR_CAUSE 0xff000400 /* PCI Error Cause */
+#define FPR_PCI_ERR_CAUSE_SET 0xff000408 /* PCI Error Cause Set */
+
+#define PCI_ERR_CAUSE_ADDRPAR (1U << 0) /* address parity error */
+#define PCI_ERR_CAUSE_DATAPAR (1U << 1) /* data parity error */
+#define PCI_ERR_CAUSE_DEVTOUT (1U << 2) /* device timeout */
+#define PCI_ERR_CAUSE_TABORT (1U << 3) /* target abort */
+
+#define FPR_PCI_ERR_ADDR 0xff000410 /* PCI Error Address */
+
+#define FPR_CPU_ERR_CAUSE 0xff000800 /* CPU Error Cause */
+#define FPR_CPU_ERR_CAUSE_SET 0xff000808 /* CPU Error Cause Set */
+
+#define CPU_ERR_CAUSE_ILLISA (1U << 0) /* illegal ISA access */
+#define CPU_ERR_CAUSE_ADDRPAR (1U << 1) /* address parity error */
+#define CPU_ERR_CAUSE_DISISA (1U << 2) /* discontig ISA error */
+
+#define FPR_CPU_ERR_ADDR 0xff000810 /* CPU Error Address */
+
+#define FPR_ERROR_STATUS0 0xff001000 /* errorStatus0 */
+#define FPR_ERROR_STATUS0_SET 0xff001008 /* errorStatus0 Set */
+#define FPR_ERROR_MASK0 0xff001010 /* errorMask0 */
+
+#define ERROR_STATUS_ECC_CORR (1U << 1) /* ECC error corrected */
+#define ERROR_STATUS_ECC_FAILED (1U << 2) /* ECC error uncorrected */
+#define ERROR_STATUS_DPE (1U << 4) /* data parity error */
+#define ERROR_STATUS_MEMPAR (1U << 5) /* memory parity error */
+#define ERROR_STATUS_INVXACT (1U << 6) /* invalid transaction */
+
+#define FPR_ERROR_ADDR0 0xff001120 /* errorAddr0 (MSB) */
+#define FPR_ERROR_ADDR1 0xff001128 /* errorAddr1 */
+#define FPR_ERROR_ADDR2 0xff001130 /* errorAddr2 */
+#define FPR_ERROR_ADDR3 0xff001138 /* errorAddr3 (LSB) */
+
+#define FPR_VID_INT 0xff001140 /* Video Interrupt */
+#define FPR_VID_INT_SET 0xff001148 /* Video Interrupt Set */
+#define FPR_VID_INT_MASK 0xff001150 /* Video Interrupt Mask */
+
+#define VID_INT_VIDINT (1U << 0) /* frame completed */
+#define VID_INT_VRAM_OFLO (1U << 1) /* frame data overflow */
+
+#define FPR_TSC_CONTROL 0xff100000 /* tscControl */
+
+#define TSC_CONTROL_L2_PRESENT (1U << 0) /* L2 cache present */
+#define TSC_CONTROL_MP_CONFIG (1U << 2) /* multiprocessor system */
+#define TSC_CONTROL_ECC_ENABLE (1U << 3) /* ECC enable */
+#define TSC_CONTROL_LITTLE_END (1U << 4) /* system is little-endian */
+#define TSC_CONTROL_BRIDGE_MODE (1U << 5) /* PCI-PCI bridge present */
+
+#define FPR_FB_CONTROL 0xff100008 /* fbControl */
+
+#define FPR_ESCC_CONTROL 0xff100010 /* esccControl */
+
+#define ESCC_CONTROL_L2DIS_L (1U << 0) /* 0 = disable L2 cache opt. */
+#define ESCC_CONTROL_L2MISIN_L (1U << 1) /* 0 = inhibit L2 upd.on miss */
+#define ESCC_CONTROL_MRMPAR_EN (1U << 3) /* memory parity enable */
+#define ESCC_CONTROL_LITTLE_END (1U << 4) /* system is little-endian */
+#define ESCC_CONTROL_LDBADPAR (1U << 5) /* load bad parity */
+
+#define FPR_ESCC_L2_FLUSH 0xff100018 /* esccL2Flush */
+
+#define FPR_SCRATCH_PAD0 0xff100020 /* scratchPad0 */
+#define FPR_SCRATCH_PAD1 0xff100028 /* scratchPad1 */
+#define FPR_SCRATCH_PAD2 0xff100030 /* scratchPad2 */
+#define FPR_SCRATCH_PAD3 0xff100038 /* scartchPad3 */
+
+#define FPR_LOW_POWER_CONTROL 0xff100080 /* lowPowerControl */
+
+#define LOW_POWER_CONTROL_QACK_L (1U << 0) /* cpuQack_L signal */
+#define LOW_POWER_CONTROL_QREQ_L (1U << 1) /* cpuQreq_L signal */
+
+#define FPR_ROM_CONTROL 0xff100100 /* romControl */
+
+#define ROM_CONTROL_CS_L (1U << 0) /* # chip select */
+#define ROM_CONTROL_WE_L (1U << 1) /* # write enable */
+#define ROM_CONTROL_WR_CMPL (1U << 2) /* terminate ROM write cycle */
+
+#define FPR_TSC_STATUS0 0xff100200 /* tscControl */
+
+#define TSC_STATUS0_ROMBSY (1U << 0) /* ROM busy */
+#define TSC_STATUS0_WRQFULL (1U << 1) /* write queue full */
+#define TSC_STATUS0_L2QFULL (1U << 2) /* read queue full */
+#define TSC_STATUS0_WRQEMPTY (1U << 3) /* write queue empty */
+#define TSC_STATUS0_L2QEMPTY (1U << 4) /* read queue empty */
+#define TSC_STATUS0_CPU(x) ((x) >> 6) /* which CPU is reading it */
+
+#define FPR_TSC_REVISION 0xff100300 /* tscRevision */
+
+#define FPR_MEM_BANK0_CONFIG 0xff100400 /* memBank0Config */
+#define FPR_MEM_BANK1_CONFIG 0xff100408 /* memBank1Config */
+#define FPR_MEM_BANK2_CONFIG 0xff100410 /* memBank2Config */
+#define FPR_MEM_BANK3_CONFIG 0xff100418 /* memBank3Config */
+#define FPR_MEM_BANK4_CONFIG 0xff100420 /* memBank4Config */
+#define FPR_MEM_BANK5_CONFIG 0xff100428 /* memBank5Config */
+#define FPR_MEM_BANK6_CONFIG 0xff100430 /* memBank6Config */
+#define FPR_MEM_BANK7_CONFIG 0xff100438 /* memBank7Config */
+
+#define FPR_MEM_DRAM_TIMING 0xff100500 /* memDramTiming */
+
+#define FPR_MEM_VRAM_TIMING 0xff100508 /* memVramTiming */
+
+#define FPR_MEM_REFRESH 0xff100510 /* memRefresh */
+
+#define FPR_VID_CONTROL 0xff100518 /* vidControl */
+
+#define FPR_VID_PIX_LINE_LO 0xff100520 /* vidPixelsPerLineLo */
+
+#define FPR_VID_PIX_LINE_HI 0xff100528 /* vidPixelsPerLineHi */
+
+#define FPR_IO_CONTROL 0xff101000 /* ioControl */
+#define IO_CONTROL_LE_ADDR (1U << 0) /* little-endian addresses */
+#define IO_CONTROL_LE_DATA (1U << 1) /* little-endian data */
+#define IO_CONTROL_CONTIG_ISA (1U << 2) /* contig memory map */
+#define IO_CONTROL_EXT_PCI_INTS (1U << 3) /* PCI interrupt grouping */
+
+#define FPR_PCI_CONFIG_TYPE 0xff101100 /* PCI Config Type */
+#define PCI_CONFIG_TYPE_0 0
+#define PCI_CONFIG_TYPE_1 1
+
+#define FPR_PIO_PENDING_CNT 0xff101200 /* PIO pending count */
+#define PIO_PENDING_CNT(x) ((x) & 0x7f)
+#define PIO_PENDING_CNT_BRIDGE (1U << 7) /* enable PCI-PCI bridges */
+
+#define FPR_DMA_PENDING_CNT 0xff101300 /* DMA pending count */
+#define DMA_PENDING_CNT(x) ((x) & 0xff)
+
+#deifne FPR_PCI_VENDOR_ID 0xff400100 /* PCI vendor ID */
+
+#define FPR_PCI_DEVICE_ID 0xff400108 /* PCI device ID */
+
+#define FPR_PCI_COMMAND 0xff400110 /* PCI command */
+
+#define FPR_PCI_STATUS 0xff400118 /* PCI status */
+
+#define FPR_PCI_REVISION 0xff400120 /* PCI revision */
+
+#define FPR_PCI_CLASS 0xff400128 /* PCI class */
+
+#define FPR_PCI_HEADERTYPE 0xff400140 /* PCI header type */
Home |
Main Index |
Thread Index |
Old Index