summaryrefslogtreecommitdiff
path: root/system/alpha/h/cia.h
diff options
context:
space:
mode:
Diffstat (limited to 'system/alpha/h/cia.h')
-rw-r--r--system/alpha/h/cia.h457
1 files changed, 457 insertions, 0 deletions
diff --git a/system/alpha/h/cia.h b/system/alpha/h/cia.h
new file mode 100644
index 000000000..737e3fb05
--- /dev/null
+++ b/system/alpha/h/cia.h
@@ -0,0 +1,457 @@
+#ifndef __CIA_H_LOADED
+#define __CIA_H_LOADED
+/*****************************************************************************
+
+ Copyright 1993, 1994, 1995 Digital Equipment Corporation,
+ Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the copyright notice and this permission notice appear in all copies
+of software and supporting documentation, and that the name of Digital not
+be used in advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Digital grants this permission
+provided that you prominently mark, as not part of the original, any
+modifications made to this software or documentation.
+
+Digital Equipment Corporation disclaims all warranties and/or guarantees
+with regard to this software, including all implied warranties of fitness for
+a particular purpose and merchantability, and makes no representations
+regarding the use of, or the results of the use of, the software and
+documentation in terms of correctness, accuracy, reliability, currentness or
+otherwise; and you rely on the software, documentation and results solely at
+your own risk.
+
+******************************************************************************/
+
+/*
+ * $Id: cia.h,v 1.1.1.1 1997/10/30 23:27:14 verghese Exp $;
+ */
+
+/*
+ * $Log: cia.h,v $
+ * Revision 1.1.1.1 1997/10/30 23:27:14 verghese
+ * current 10/29/97
+ *
+ * Revision 1.3 1995/04/20 16:37:22 cruz
+ * Made some deletions and modifications.
+ *
+ * Revision 1.2 1994/12/19 18:33:02 cruz
+ * Added some new constants.
+ *
+ * Revision 1.1 1994/11/23 19:49:39 cruz
+ * Initial revision
+ *
+ *
+ */
+
+/*
+ ******************************** WARNING *******************************
+ * BE EXTREMELY CAREFUL WHEN USING OFFSETS LARGER THAN 0x8000 WITH
+ * AN "LDA" INSTRUCTION BECAUSE THEY WILL CAUSE AN UNWANTED SIGN
+ * EXTENSION.
+ ******************************** WARNING *******************************
+*/
+
+/* ======================================================================
+ * = BASE ADDRESSES =
+ * ======================================================================
+ *
+ * Define the base address for registers accessing the memory
+ * controller
+*/
+#define MC_GCR_BASE 0x874 /* General Control Register */
+#define MC_GCR_BASE_SHIFT 28 /* Shift base by this # of bits */
+#define MC_DIAG_BASE 0x874 /* Diagnostic Registers */
+#define MC_DIAG_BASE_SHIFT 28
+#define MC_PERFMON_BASE 0x874 /* Performance monitoring regs */
+#define MC_PERFMON_BASE_SHIFT 28
+#define MC_ERROR_BASE 0x874 /* Error Registers */
+#define MC_ERROR_BASE_SHIFT 28
+#define MC_MCR_BASE 0x875 /* Memory Configuration Registers*/
+#define MC_MCR_BASE_SHIFT 28
+#define MC_PCI_BASE 0x876 /* PCI Configuration Registers */
+#define MC_PCI_BASE_SHIFT 28
+
+
+/* ======================================================================
+ * = OFFSETS FOR THE GENERAL CONTROL REGISTERS (87.4000.0000) =
+ * ======================================================================
+*/
+#define MC_PCI_REV 0x80 /* Revision of CIA ASIC. */
+#define MC_PCI_LAT 0xC0 /* PCI Master Latency Timer. */
+#define MC_CIA_CTRL 0x100 /* CIA Control Register. */
+#define MC_CIA_CNFG 0x200 /* CIA Configuration Register. */
+#define MC_HAE_MEM 0x400 /* HW Address Extension (Sparse)*/
+#define MC_HAE_IO 0x440 /* HW Addr. Ext. for sparse IO. */
+#define MC_CFG 0x480 /* Configuration reg for bridges*/
+#define MC_CACK_EN 0x600 /* Acknowledgement Control Reg. */
+
+
+/* ======================================================================
+ * = OFFSETS FOR THE DIAGNOSTIC REGISTERS (87.4000.0000) =
+ * ======================================================================
+*/
+#define MC_CIA_DIAG 0x2000 /* Diagnostic control register */
+#define MC_DIAG_CHECK 0x3000 /* Diagnostic check register */
+
+
+/* ======================================================================
+ * = OFFSETS FOR THE PERFORMANCE MONITORING REGISTERS (87.4000.0000) =
+ * ======================================================================
+*/
+#define MC_PERF_MONITOR 0x4000 /* Performance monitor register */
+#define MC_PERF_CONTROL 0x4040 /* Perf. Mon. Control register */
+
+
+/* ======================================================================
+ * = OFFSETS FOR THE ERROR REGISTERS (87.4000.0000) =
+ * ======================================================================
+*/
+#define MC_CPU_ERR0 0x8000 /* CPU Error Info Register 0. */
+#define MC_CPU_ERR1 0x8040 /* CPU Error Info Register 1. */
+#define MC_CIA_ERR 0x8200 /* CIA Error Register. */
+#define MC_CIA_STAT 0x8240 /* CIA Status Register. */
+#define MC_ERR_MASK 0x8280 /* CIA Error Mask Register. */
+#define MC_CIA_SYN 0x8300 /* CIA Syndrome Register. */
+#define MC_MEM_ERR0 0x8400 /* Memory Port Status Register 0*/
+#define MC_MEM_ERR1 0x8440 /* Memory Port Status Register 1*/
+#define MC_PCI_ERR0 0x8800 /* PCI Error Status Register 0. */
+#define MC_PCI_ERR1 0x8840 /* PCI Error Status Register 1. */
+
+
+/* ======================================================================
+ * = OFFSETS FOR THE MEMORY CONFIGURATION REGISTERS (87.5000.0000) =
+ * ======================================================================
+*/
+#define MC_MCR 0x0 /* Memory Configuration Register*/
+#define MC_MBA0 0x600 /* Memory Base Address Register */
+#define MC_MBA2 0x680 /* Memory Base Address Register */
+#define MC_MBA4 0x700 /* Memory Base Address Register */
+#define MC_MBA6 0x780 /* Memory Base Address Register */
+#define MC_MBA8 0x800 /* Memory Base Address Register */
+#define MC_MBAA 0x880 /* Memory Base Address Register */
+#define MC_MBAC 0x900 /* Memory Base Address Register */
+#define MC_MBAE 0x980 /* Memory Base Address Register */
+#define MC_TMG0 0xB00 /* Memory Timing Register */
+#define MC_TMG1 0xB40 /* Memory Timing Register */
+#define MC_TMG2 0xB80 /* Memory Timing Register */
+
+
+/* ======================================================================
+ * = OFFSETS FOR THE PCI CONFIGURATION REGISTERS (87.6000.0000) =
+ * ======================================================================
+*/
+#define MC_TBIA 0x100 /* S/G Translation Buffer Inval.*/
+#define MC_W0_BASE 0x400 /* Window Base 0. */
+#define MC_W0_MASK 0x440 /* Window Mask 0. */
+#define MC_T0_BASE 0x480 /* Translated Base 0. */
+#define MC_W1_BASE 0x500 /* Window Base 1. */
+#define MC_W1_MASK 0x540 /* Window Mask 1. */
+#define MC_T1_BASE 0x580 /* Translated Base 1. */
+#define MC_W2_BASE 0x600 /* Window Base 2. */
+#define MC_W2_MASK 0x640 /* Window Mask 2. */
+#define MC_T2_BASE 0x680 /* Translated Base 2. */
+#define MC_W3_BASE 0x700 /* Window Base 3. */
+#define MC_W3_MASK 0x740 /* Window Mask 3. */
+#define MC_T3_BASE 0x780 /* Translated Base 3. */
+#define MC_DAC 0x7C0 /* Window DAC Base. */
+#define MC_LTB_TAG0 0x800 /* Lockable Translation Buffer. */
+#define MC_LTB_TAG1 0x840 /* Lockable Translation Buffer. */
+#define MC_LTB_TAG2 0x880 /* Lockable Translation Buffer. */
+#define MC_LTB_TAG3 0x8C0 /* Lockable Translation Buffer. */
+#define MC_TB_TAG0 0x900 /* Translation Buffer Tag. */
+#define MC_TB_TAG1 0x940 /* Translation Buffer Tag. */
+#define MC_TB_TAG2 0x980 /* Translation Buffer Tag. */
+#define MC_TB_TAG3 0x9C0 /* Translation Buffer Tag. */
+#define MC_TB0_PAGE0 0x1000 /* Translation Buffer 0 Page. */
+#define MC_TB0_PAGE1 0x1040 /* Translation Buffer 0 Page. */
+#define MC_TB0_PAGE2 0x1080 /* Translation Buffer 0 Page. */
+#define MC_TB0_PAGE3 0x10C0 /* Translation Buffer 0 Page. */
+#define MC_TB1_PAGE0 0x1100 /* Translation Buffer 1 Page. */
+#define MC_TB1_PAGE1 0x1140 /* Translation Buffer 1 Page. */
+#define MC_TB1_PAGE2 0x1180 /* Translation Buffer 1 Page. */
+#define MC_TB1_PAGE3 0x11C0 /* Translation Buffer 1 Page. */
+#define MC_TB2_PAGE0 0x1200 /* Translation Buffer 2 Page. */
+#define MC_TB2_PAGE1 0x1240 /* Translation Buffer 2 Page. */
+#define MC_TB2_PAGE2 0x1280 /* Translation Buffer 2 Page. */
+#define MC_TB2_PAGE3 0x12C0 /* Translation Buffer 2 Page. */
+#define MC_TB3_PAGE0 0x1300 /* Translation Buffer 3 Page. */
+#define MC_TB3_PAGE1 0x1340 /* Translation Buffer 3 Page. */
+#define MC_TB3_PAGE2 0x1380 /* Translation Buffer 3 Page. */
+#define MC_TB3_PAGE3 0x13C0 /* Translation Buffer 3 Page. */
+#define MC_TB4_PAGE0 0x1400 /* Translation Buffer 4 Page. */
+#define MC_TB4_PAGE1 0x1440 /* Translation Buffer 4 Page. */
+#define MC_TB4_PAGE2 0x1480 /* Translation Buffer 4 Page. */
+#define MC_TB4_PAGE3 0x14C0 /* Translation Buffer 4 Page. */
+#define MC_TB5_PAGE0 0x1500 /* Translation Buffer 5 Page. */
+#define MC_TB5_PAGE1 0x1540 /* Translation Buffer 5 Page. */
+#define MC_TB5_PAGE2 0x1580 /* Translation Buffer 5 Page. */
+#define MC_TB5_PAGE3 0x15C0 /* Translation Buffer 5 Page. */
+#define MC_TB6_PAGE0 0x1600 /* Translation Buffer 6 Page. */
+#define MC_TB6_PAGE1 0x1640 /* Translation Buffer 6 Page. */
+#define MC_TB6_PAGE2 0x1680 /* Translation Buffer 6 Page. */
+#define MC_TB6_PAGE3 0x16C0 /* Translation Buffer 6 Page. */
+#define MC_TB7_PAGE0 0x1700 /* Translation Buffer 7 Page. */
+#define MC_TB7_PAGE1 0x1740 /* Translation Buffer 7 Page. */
+#define MC_TB7_PAGE2 0x1780 /* Translation Buffer 7 Page. */
+#define MC_TB7_PAGE3 0x17C0 /* Translation Buffer 7 Page. */
+
+
+/* ======================================================================
+ * = BIT EXTENT FOR CIA_CTRL REGISTER (87.4000.0100) =
+ * ======================================================================
+*/
+#define MC_CIA_CTRL_V_PCI_EN 0
+#define MC_CIA_CTRL_M_PCI_EN (1 << MC_CIA_CTRL_V_PCI_EN)
+#define MC_CIA_CTRL_V_PCI_LOCK_EN 1
+#define MC_CIA_CTRL_M_PCI_LOCK_EN (1 << MC_CIA_CTRL_V_PCI_LOCK_EN)
+#define MC_CIA_CTRL_V_PCI_LOOP_EN 2
+#define MC_CIA_CTRL_M_PCI_LOOP_EN (1 << MC_CIA_CTRL_V_PCI_LOOP_EN)
+#define MC_CIA_CTRL_V_FST_BB_EN 3
+#define MC_CIA_CTRL_M_FST_BB_EN (1 << MC_CIA_CTRL_V_FST_BB_EN)
+#define MC_CIA_CTRL_V_PCI_MST_EN 4
+#define MC_CIA_CTRL_M_PCI_MST_EN (1 << MC_CIA_CTRL_V_PCI_MST_EN)
+#define MC_CIA_CTRL_V_PCI_MEM_EN 5
+#define MC_CIA_CTRL_M_PCI_MEM_EN (1 << MC_CIA_CTRL_V_PCI_MEM_EN)
+#define MC_CIA_CTRL_V_PCI_REQ64_EN 6
+#define MC_CIA_CTRL_M_PCI_REQ64_EN (1 << MC_CIA_CTRL_V_PCI_REQ64_EN)
+#define MC_CIA_CTRL_V_PCI_ACK64_EN 7
+#define MC_CIA_CTRL_M_PCI_ACK64_EN (1 << MC_CIA_CTRL_V_PCI_ACK64_EN)
+#define MC_CIA_CTRL_V_ADDR_PE_EN 8
+#define MC_CIA_CTRL_M_ADDR_PE_EN (1 << MC_CIA_CTRL_V_ADDR_PE_EN)
+#define MC_CIA_CTRL_V_PERR_EN 9
+#define MC_CIA_CTRL_M_PERR_EN (1 << MC_CIA_CTRL_V_PERR_EN)
+#define MC_CIA_CTRL_V_FILLERR_EN 10
+#define MC_CIA_CTRL_M_FILLERR_EN (1 << MC_CIA_CTRL_V_FILLERR_EN)
+#define MC_CIA_CTRL_V_MCHKERR_EN 11
+#define MC_CIA_CTRL_M_MCHKERR_EN (1 << MC_CIA_CTRL_V_MCHKERR_EN)
+#define MC_CIA_CTRL_V_ECC_CHK_EN 12
+#define MC_CIA_CTRL_M_ECC_CHK_EN (1 << MC_CIA_CTRL_V_ECC_CHK_EN)
+#define MC_CIA_CTRL_V_ASSERT_IDLE_BC 13
+#define MC_CIA_CTRL_M_ASSERT_IDLE_BC (1 << MC_CIA_CTRL_V_ASSERT_IDLE_BC)
+#define MC_CIA_CTRL_V_CON_IDLE_BC 14
+#define MC_CIA_CTRL_M_CON_IDLE_BC (1 << MC_CIA_CTRL_V_CON_IDLE_BC)
+#define MC_CIA_CTRL_V_CSR_IOA_BYPASS 15
+#define MC_CIA_CTRL_M_CSR_IOA_BYPASS (1 << MC_CIA_CTRL_V_CSR_IOA_BYPASS )
+#define MC_CIA_CTRL_V_IO_FLUSHREQ_EN 16
+#define MC_CIA_CTRL_M_IO_FLUSHREQ_EN (1 << MC_CIA_CTRL_V_IO_FLUSHREQ_EN )
+#define MC_CIA_CTRL_V_CPU_FLUSHREQ_EN 17
+#define MC_CIA_CTRL_M_CPU_FLUSHREQ_EN (1 << MC_CIA_CTRL_V_CPU_FLUSHREQ_EN )
+#define MC_CIA_CTRL_V_ARB_EV5_EN 18
+#define MC_CIA_CTRL_M_ARB_EV5_EN (1 << MC_CIA_CTRL_V_ARB_EV5_EN)
+#define MC_CIA_CTRL_V_EN_ARB_LINK 19
+#define MC_CIA_CTRL_M_EN_ARB_LINK (1 << MC_CIA_CTRL_V_EN_ARB_LINK)
+#define MC_CIA_CTRL_V_RD_TYPE 20
+#define MC_CIA_CTRL_M_RD_TYPE (3 << MC_CIA_CTRL_V_RD_TYPE)
+#define MC_CIA_CTRL_V_RL_TYPE 24
+#define MC_CIA_CTRL_M_RL_TYPE (3 << MC_CIA_CTRL_V_RL_TYPE)
+#define MC_CIA_CTRL_V_RM_TYPE 28
+#define MC_CIA_CTRL_M_RM_TYPE (3 << MC_CIA_CTRL_V_RM_TYPE)
+
+
+/* ======================================================================
+ * = BIT EXTENT FOR CACK_EN REGISTER (87.4000.0600) =
+ * ======================================================================
+*/
+#define MC_CACK_EN_V_MEM_LOCK 0x0 /* Controls LOCK enable. */
+#define MC_CACK_EN_V_MB 0x1 /* Controls MB enable. */
+#define MC_CACK_EN_V_SET_DIRTY 0x2 /* Controls SET_DIRTY enable. */
+#define MC_CACK_EN_V_BC_VICTIM 0x3 /* Controls BC_VICTIM enable. */
+
+
+/* ======================================================================
+ * = BIT SIZES FOR CACK_EN REGISTER (87.4000.0600) =
+ * ======================================================================
+*/
+#define MC_CACK_EN_S_MEM_LOCK 1 /* Controls LOCK enable. */
+#define MC_CACK_EN_S_MB 1 /* Controls MB enable. */
+#define MC_CACK_EN_S_SET_DIRTY 1 /* Controls SET_DIRTY enable. */
+#define MC_CACK_EN_S_BC_VICTIM 1 /* Controls BC_VICTIM enable. */
+
+/* ======================================================================
+ * = BIT MASKS FOR CACK_EN REGISTER (87.4000.0600) =
+ * ======================================================================
+*/
+#define MC_CACK_EN_M_MEM_LOCK (((1<<MC_CACK_EN_S_MEM_LOCK)-1) << MC_CACK_EN_V_MEM_LOCK)
+#define MC_CACK_EN_M_MB (((1<<MC_CACK_EN_S_MB)-1) << MC_CACK_EN_V_MB)
+#define MC_CACK_EN_M_SET_DIRTY (((1<<MC_CACK_EN_S_SET_DIRTY)-1) << MC_CACK_EN_V_SET_DIRTY)
+#define MC_CACK_EN_M_BC_VICTIM (((1<<MC_CACK_EN_S_BC_VICTIM)-1) << MC_CACK_EN_V_BC_VICTIM)
+
+
+/* ======================================================================
+ * = BIT EXTENT FOR MCR REGISTER (87.5000.0000) =
+ * ======================================================================
+*/
+#define MC_MCR_V_MEM_SIZE 0x0 /* 1 = 256-bit data, 0 = 128-bit*/
+#define MC_MCR_V_CACHE_SIZE 0x4 /* Set to match CPU's cache size*/
+#define MC_MCR_V_REF_RATE 0x8 /* Refresh rate counter. */
+#define MC_MCR_V_REF_BURST 0x18 /* Refresh burst. */
+#define MC_MCR_V_TMG_R0 0x20 /* Row address setup. */
+#define MC_MCR_V_LONG_CBR_CAS 0x22 /* Refresh CAS pulse width. */
+#define MC_MCR_V_DLY_IDLE_BC 0x26 /* ??. */
+#define MC_MCR_V_EARLY_IDLE_BC 0x29 /* ??. */
+
+
+/* ======================================================================
+ * = BIT SIZES FOR MCR REGISTER (87.5000.0000) =
+ * ======================================================================
+*/
+#define MC_MCR_S_MEM_SIZE 1
+#define MC_MCR_S_CACHE_SIZE 3
+#define MC_MCR_S_REF_RATE 10
+#define MC_MCR_S_REF_BURST 2
+#define MC_MCR_S_TMG_R0 2
+#define MC_MCR_S_LONG_CBR_CAS 1
+#define MC_MCR_S_DLY_IDLE_BC 2
+#define MC_MCR_S_EARLY_IDLE_BC 1
+
+/* ======================================================================
+ * = BIT MASKS FOR MCR REGISTER (87.5000.0000) =
+ * ======================================================================
+*/
+#define MC_MCR_M_MEM_SIZE (((1<<MC_MCR_S_MEM_SIZE)-1) << MC_MCR_V_MEM_SIZE)
+#define MC_MCR_M_CACHE_SIZE (((1<<MC_MCR_S_CACHE_SIZE)-1) << MC_MCR_V_CACHE_SIZE)
+#define MC_MCR_M_REF_RATE (((1<<MC_MCR_S_REF_RATE)-1) << MC_MCR_V_REF_RATE)
+#define MC_MCR_M_REF_BURST (((1<<MC_MCR_S_REF_BURST)-1) << MC_MCR_V_REF_BURST)
+#define MC_MCR_M_TMG_R0 (((1<<MC_MCR_S_TMG_R0)-1) << MC_MCR_V_TMG_R0)
+#define MC_MCR_M_LONG_CBR_CAS (((1<<MC_MCR_S_LONG_CBR_CAS)-1) << MC_MCR_V_LONG_CBR_CAS)
+#define MC_MCR_M_DLY_IDLE_BC (((1<<MC_MCR_S_DLY_IDLE_BC)-1) << MC_MCR_V_DLY_IDLE_BC)
+#define MC_MCR_M_EARLY_IDLE_BC (((1<<MC_MCR_S_EARLY_IDLE_BC)-1) << MC_MCR_V_EARLY_IDLE_BC)
+
+/* ======================================================================
+ * = BIT EXTENT FOR TIMING REGISTERS =
+ * ======================================================================
+*/
+#define MC_TMG_V_R1 0 /* [1:0] row address hold */
+#define MC_TMG_V_R2 2 /* [3:2] row address hold */
+#define MC_TMG_V_R3 4 /* [5:4] read, cycle time */
+#define MC_TMG_V_R4 6 /* [7:6] read, delay from */
+ /* MEM_RD_RDY to CAS assertion */
+#define MC_TMG_V_R5 8 /* [9:8] read, cas pulse width */
+#define MC_TMG_V_R6 10 /* [11:10] read, column address hold*/
+#define MC_TMG_V_W1 12 /* [13:12] writes, non-linked */
+ /* victim, delay from start to MEM_WR */
+#define MC_TMG_V_W4 14 /*[16:14] writes, MEM_WR to CAS assert*/
+#define MC_TMG_V_PRE 17 /* [17] RAS Pre-charge delay */
+ /* __0=no delay, 1=delay 30 ns */
+#define MC_TMG_V_V3 18 /* [19:18] write, cycle time */
+#define MC_TMG_V_V4 20 /* [22:20] linked victim, */
+ /* MEM_WR to CAS assertion */
+#define MC_TMG_V_V5 24 /* [25:24] write, victim, CAS */
+ /* pulse width */
+#define MC_TMG_V_V6 26 /* [27:26] victim/write, column*/
+ /* address hold */
+#define MC_TMG_V_RV 28 /* [29:28] read-victim, delay */
+ /* from MEM_RD_RDY de-assertion*/
+ /* to MEM_WR */
+#define MC_TMG_V_RD_DLY 30 /* [31:30] select clk the dsw */
+ /* will use to capture memory */
+ /* data 0=CLK, 1=CLK2X */
+
+
+/* ======================================================================
+ * = BIT EXTENT FOR MBA REGISTERS (87.5000.0600 + n*80) =
+ * ======================================================================
+*/
+#define MC_MBA_V_S0_VALID 0 /* Side 0 for the bank is valid */
+#define MC_MBA_V_ROW_TYPE 1 /* Row and Column configuration */
+#define MC_MBA_V_MASK 4 /* Indicates size of mem SIMMs */
+#define MC_MBA_V_S1_VALID 15 /* Side 1 for the bank is valid */
+#define MC_MBA_V_PATTERN 16 /* Base address of the bank */
+#define MC_MBA_V_TMG_SEL 28 /* Select timing register. */
+
+/* ======================================================================
+ * = BIT FIELD VALUES FOR MBA REGISTERS (87.5000.0600 + n*80) =
+ * ======================================================================
+*/
+#define MC_MBA_V_ROW_TYPE_10X10 0 /* 10 row, 10 column */
+#define MC_MBA_V_ROW_TYPE_12X10 1 /* 12 row, 10 column */
+#define MC_MBA_V_ROW_TYPE_11X11 1 /* 11 row, 11 column */
+#define MC_MBA_V_ROW_TYPE_13X11 2 /* 13 row, 11 column */
+#define MC_MBA_V_ROW_TYPE_12X12 2 /* 12 row, 12 column */
+
+#define MC_MBA_V_TMG_SEL_TMG0 0 /* Select timing register 0. */
+#define MC_MBA_V_TMG_SEL_TMG1 1 /* Select timing register 1. */
+#define MC_MBA_V_TMG_SEL_TMG2 2 /* Select timing register 2. */
+
+
+/* ======================================================================
+ * = BIT SIZES FOR MBA REGISTERS (87.5000.0600 + n*80) =
+ * ======================================================================
+*/
+#define MC_MBA_S_S0_VALID 1
+#define MC_MBA_S_ROW_TYPE 2
+#define MC_MBA_S_MASK 5
+#define MC_MBA_S_S1_VALID 1
+#define MC_MBA_S_PATTERN 10
+#define MC_MBA_S_TMG_SEL 2
+
+/* ======================================================================
+ * = BIT MASKS FOR MBA REGISTERS (87.5000.0600 + n*80) =
+ * ======================================================================
+*/
+#define MC_MBA_M_S0_VALID (((1<<MC_MBA_S_S0_VALID)-1) << MC_MBA_V_S0_VALID)
+#define MC_MBA_M_ROW_TYPE (((1<<MC_MBA_S_ROW_TYPE)-1) << MC_MBA_V_ROW_TYPE)
+#define MC_MBA_M_MASK (((1<<MC_MBA_S_MASK)-1) << MC_MBA_V_MASK)
+#define MC_MBA_M_S1_VALID (((1<<MC_MBA_S_S1_VALID)-1) << MC_MBA_V_S1_VALID)
+#define MC_MBA_M_PATTERN (((1<<MC_MBA_S_PATTERN)-1) << MC_MBA_V_PATTERN)
+#define MC_MBA_M_TMG_SEL (((1<<MC_MBA_S_TMG_SEL)-1) << MC_MBA_V_TMG_SEL)
+
+
+
+#define cia_k_main_csr_base 0x0874 /* CIA General Control Register Base*/
+#define cia_v_main_csr_base 28 /* Shift base by this # of bits */
+
+/* Offsets from CIA control base register. */
+
+#define hae_mem 0x0400
+#define hae_io 0x0440
+
+#define cia_err 0x8200
+#define cia_err_mask 0x8280
+#define cia_err_v_rcvd_mas_abt 7
+#define cia_err_m_rcvd_mas_abt (1 << cia_err_v_rcvd_mas_abt)
+#define cia_err_mask_v_mas_abt 7
+#define cia_err_mask_m_mas_abt (1 << cia_err_mask_v_mas_abt)
+
+#define cia_k_addr_trans 0x876 /* CIA's PCI Address Translation Regs*/
+#define cia_v_addr_trans 28 /* Shift base by this # of bits */
+
+/* Offsets from PCI address translation base register. Must be < 0x8000 */
+/* if they are to be used with LDA instructions! */
+#define w_base0 0x0400
+#define w_mask0 0x0440
+#define t_base0 0x0480
+#define w_base1 0x0500
+#define w_mask1 0x0540
+#define t_base1 0x0580
+#define w_base2 0x0600
+#define w_mask2 0x0640
+#define t_base2 0x0680
+#define w_base3 0x0700
+#define w_mask3 0x0740
+#define t_base3 0x0780
+
+#define w_v_en 0x0
+#define w_m_en (1 << w_v_en)
+
+
+
+/* CIA Memory Control Register. */
+#define mcr 0
+#define mba 0x600
+#define mba_v_disp 0x7
+#define mba_k_disp 0x80 /* 1 << mba_v_disp */
+
+
+
+/* The following constants define which bits are provided by the HAE_MEM*/
+/* register for each of the three sparse regions. */
+#define hae_sp1_bits 0xE0000000
+#define hae_sp2_bits 0xF8000000
+#define hae_sp3_bits 0xFC000000
+
+#endif /* __CIA_H_LOADED */