Memory map and system registers for the Firepower ES, MX, LX, and TX
systems.
This commit is contained in:
parent
adca9c589f
commit
678788904a
|
@ -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 */
|
Loading…
Reference in New Issue