|
@@ -1396,3 +1396,183 @@
|
|
|
* fcpu, Tcpu Frequency, period of the CPU core clock (CCLK).
|
|
|
* fmem, Tmem Frequency, period of the memory clock (fmem = fcpu/2).
|
|
|
* fcas, Tcas Frequency, period of the DRAM CAS shift registers.
|
|
|
+ */
|
|
|
+
|
|
|
+#define MDCNFG __REG(0xA0000000) /* DRAM CoNFiGuration reg. */
|
|
|
+#define MDCAS0 __REG(0xA0000004) /* DRAM CAS shift reg. 0 */
|
|
|
+#define MDCAS1 __REG(0xA0000008) /* DRAM CAS shift reg. 1 */
|
|
|
+#define MDCAS2 __REG(0xA000000c) /* DRAM CAS shift reg. 2 */
|
|
|
+
|
|
|
+/* SA1100 MDCNFG values */
|
|
|
+#define MDCNFG_DE(Nb) /* DRAM Enable bank [0..3] */ \
|
|
|
+ (0x00000001 << (Nb))
|
|
|
+#define MDCNFG_DE0 MDCNFG_DE (0) /* DRAM Enable bank 0 */
|
|
|
+#define MDCNFG_DE1 MDCNFG_DE (1) /* DRAM Enable bank 1 */
|
|
|
+#define MDCNFG_DE2 MDCNFG_DE (2) /* DRAM Enable bank 2 */
|
|
|
+#define MDCNFG_DE3 MDCNFG_DE (3) /* DRAM Enable bank 3 */
|
|
|
+#define MDCNFG_DRAC Fld (2, 4) /* DRAM Row Address Count - 9 */
|
|
|
+#define MDCNFG_RowAdd(Add) /* Row Address count [9..12] */ \
|
|
|
+ (((Add) - 9) << FShft (MDCNFG_DRAC))
|
|
|
+#define MDCNFG_CDB2 0x00000040 /* shift reg. Clock Divide By 2 */
|
|
|
+ /* (fcas = fcpu/2) */
|
|
|
+#define MDCNFG_TRP Fld (4, 7) /* Time RAS Pre-charge - 1 [Tmem] */
|
|
|
+#define MDCNFG_PrChrg(Tcpu) /* Pre-Charge time [2..32 Tcpu] */ \
|
|
|
+ (((Tcpu) - 2)/2 << FShft (MDCNFG_TRP))
|
|
|
+#define MDCNFG_CeilPrChrg(Tcpu) /* Ceil. of PrChrg [2..32 Tcpu] */ \
|
|
|
+ (((Tcpu) - 1)/2 << FShft (MDCNFG_TRP))
|
|
|
+#define MDCNFG_TRASR Fld (4, 11) /* Time RAS Refresh - 1 [Tmem] */
|
|
|
+#define MDCNFG_Ref(Tcpu) /* Refresh time [2..32 Tcpu] */ \
|
|
|
+ (((Tcpu) - 2)/2 << FShft (MDCNFG_TRASR))
|
|
|
+#define MDCNFG_CeilRef(Tcpu) /* Ceil. of Ref [2..32 Tcpu] */ \
|
|
|
+ (((Tcpu) - 1)/2 << FShft (MDCNFG_TRASR))
|
|
|
+#define MDCNFG_TDL Fld (2, 15) /* Time Data Latch [Tcpu] */
|
|
|
+#define MDCNFG_DataLtch(Tcpu) /* Data Latch delay [0..3 Tcpu] */ \
|
|
|
+ ((Tcpu) << FShft (MDCNFG_TDL))
|
|
|
+#define MDCNFG_DRI Fld (15, 17) /* min. DRAM Refresh Interval/4 */
|
|
|
+ /* [Tmem] */
|
|
|
+#define MDCNFG_RefInt(Tcpu) /* min. Refresh Interval */ \
|
|
|
+ /* [0..262136 Tcpu] */ \
|
|
|
+ ((Tcpu)/8 << FShft (MDCNFG_DRI))
|
|
|
+
|
|
|
+/* SA1110 MDCNFG values */
|
|
|
+#define MDCNFG_SA1110_DE0 0x00000001 /* DRAM Enable bank 0 */
|
|
|
+#define MDCNFG_SA1110_DE1 0x00000002 /* DRAM Enable bank 1 */
|
|
|
+#define MDCNFG_SA1110_DTIM0 0x00000004 /* DRAM timing type 0/1 */
|
|
|
+#define MDCNFG_SA1110_DWID0 0x00000008 /* DRAM bus width 0/1 */
|
|
|
+#define MDCNFG_SA1110_DRAC0 Fld(3, 4) /* DRAM row addr bit count */
|
|
|
+ /* bank 0/1 */
|
|
|
+#define MDCNFG_SA1110_CDB20 0x00000080 /* Mem Clock divide by 2 0/1 */
|
|
|
+#define MDCNFG_SA1110_TRP0 Fld(3, 8) /* RAS precharge 0/1 */
|
|
|
+#define MDCNFG_SA1110_TDL0 Fld(2, 12) /* Data input latch after CAS*/
|
|
|
+ /* deassertion 0/1 */
|
|
|
+#define MDCNFG_SA1110_TWR0 Fld(2, 14) /* SDRAM write recovery 0/1 */
|
|
|
+#define MDCNFG_SA1110_DE2 0x00010000 /* DRAM Enable bank 0 */
|
|
|
+#define MDCNFG_SA1110_DE3 0x00020000 /* DRAM Enable bank 1 */
|
|
|
+#define MDCNFG_SA1110_DTIM2 0x00040000 /* DRAM timing type 0/1 */
|
|
|
+#define MDCNFG_SA1110_DWID2 0x00080000 /* DRAM bus width 0/1 */
|
|
|
+#define MDCNFG_SA1110_DRAC2 Fld(3, 20) /* DRAM row addr bit count */
|
|
|
+ /* bank 0/1 */
|
|
|
+#define MDCNFG_SA1110_CDB22 0x00800000 /* Mem Clock divide by 2 0/1 */
|
|
|
+#define MDCNFG_SA1110_TRP2 Fld(3, 24) /* RAS precharge 0/1 */
|
|
|
+#define MDCNFG_SA1110_TDL2 Fld(2, 28) /* Data input latch after CAS*/
|
|
|
+ /* deassertion 0/1 */
|
|
|
+#define MDCNFG_SA1110_TWR2 Fld(2, 30) /* SDRAM write recovery 0/1 */
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * Static memory control registers
|
|
|
+ *
|
|
|
+ * Registers
|
|
|
+ * MSC0 Memory system: Static memory Control register 0
|
|
|
+ * (read/write).
|
|
|
+ * MSC1 Memory system: Static memory Control register 1
|
|
|
+ * (read/write).
|
|
|
+ *
|
|
|
+ * Clocks
|
|
|
+ * fcpu, Tcpu Frequency, period of the CPU core clock (CCLK).
|
|
|
+ * fmem, Tmem Frequency, period of the memory clock (fmem = fcpu/2).
|
|
|
+ */
|
|
|
+
|
|
|
+#define MSC0 __REG(0xa0000010) /* Static memory Control reg. 0 */
|
|
|
+#define MSC1 __REG(0xa0000014) /* Static memory Control reg. 1 */
|
|
|
+#define MSC2 __REG(0xa000002c) /* Static memory Control reg. 2, not contiguous */
|
|
|
+
|
|
|
+#define MSC_Bnk(Nb) /* static memory Bank [0..3] */ \
|
|
|
+ Fld (16, ((Nb) Modulo 2)*16)
|
|
|
+#define MSC0_Bnk0 MSC_Bnk (0) /* static memory Bank 0 */
|
|
|
+#define MSC0_Bnk1 MSC_Bnk (1) /* static memory Bank 1 */
|
|
|
+#define MSC1_Bnk2 MSC_Bnk (2) /* static memory Bank 2 */
|
|
|
+#define MSC1_Bnk3 MSC_Bnk (3) /* static memory Bank 3 */
|
|
|
+
|
|
|
+#define MSC_RT Fld (2, 0) /* ROM/static memory Type */
|
|
|
+#define MSC_NonBrst /* Non-Burst static memory */ \
|
|
|
+ (0 << FShft (MSC_RT))
|
|
|
+#define MSC_SRAM /* 32-bit byte-writable SRAM */ \
|
|
|
+ (1 << FShft (MSC_RT))
|
|
|
+#define MSC_Brst4 /* Burst-of-4 static memory */ \
|
|
|
+ (2 << FShft (MSC_RT))
|
|
|
+#define MSC_Brst8 /* Burst-of-8 static memory */ \
|
|
|
+ (3 << FShft (MSC_RT))
|
|
|
+#define MSC_RBW 0x0004 /* ROM/static memory Bus Width */
|
|
|
+#define MSC_32BitStMem (MSC_RBW*0) /* 32-Bit Static Memory */
|
|
|
+#define MSC_16BitStMem (MSC_RBW*1) /* 16-Bit Static Memory */
|
|
|
+#define MSC_RDF Fld (5, 3) /* ROM/static memory read Delay */
|
|
|
+ /* First access - 1(.5) [Tmem] */
|
|
|
+#define MSC_1stRdAcc(Tcpu) /* 1st Read Access time (burst */ \
|
|
|
+ /* static memory) [3..65 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 3)/2) << FShft (MSC_RDF))
|
|
|
+#define MSC_Ceil1stRdAcc(Tcpu) /* Ceil. of 1stRdAcc [3..65 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 2)/2) << FShft (MSC_RDF))
|
|
|
+#define MSC_RdAcc(Tcpu) /* Read Access time (non-burst */ \
|
|
|
+ /* static memory) [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 2)/2) << FShft (MSC_RDF))
|
|
|
+#define MSC_CeilRdAcc(Tcpu) /* Ceil. of RdAcc [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 1)/2) << FShft (MSC_RDF))
|
|
|
+#define MSC_RDN Fld (5, 8) /* ROM/static memory read Delay */
|
|
|
+ /* Next access - 1 [Tmem] */
|
|
|
+#define MSC_NxtRdAcc(Tcpu) /* Next Read Access time (burst */ \
|
|
|
+ /* static memory) [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 2)/2) << FShft (MSC_RDN))
|
|
|
+#define MSC_CeilNxtRdAcc(Tcpu) /* Ceil. of NxtRdAcc [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 1)/2) << FShft (MSC_RDN))
|
|
|
+#define MSC_WrAcc(Tcpu) /* Write Access time (non-burst */ \
|
|
|
+ /* static memory) [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 2)/2) << FShft (MSC_RDN))
|
|
|
+#define MSC_CeilWrAcc(Tcpu) /* Ceil. of WrAcc [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 1)/2) << FShft (MSC_RDN))
|
|
|
+#define MSC_RRR Fld (3, 13) /* ROM/static memory RecoveRy */
|
|
|
+ /* time/2 [Tmem] */
|
|
|
+#define MSC_Rec(Tcpu) /* Recovery time [0..28 Tcpu] */ \
|
|
|
+ (((Tcpu)/4) << FShft (MSC_RRR))
|
|
|
+#define MSC_CeilRec(Tcpu) /* Ceil. of Rec [0..28 Tcpu] */ \
|
|
|
+ ((((Tcpu) + 3)/4) << FShft (MSC_RRR))
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * Personal Computer Memory Card International Association (PCMCIA) control
|
|
|
+ * register
|
|
|
+ *
|
|
|
+ * Register
|
|
|
+ * MECR Memory system: Expansion memory bus (PCMCIA)
|
|
|
+ * Configuration Register (read/write).
|
|
|
+ *
|
|
|
+ * Clocks
|
|
|
+ * fcpu, Tcpu Frequency, period of the CPU core clock (CCLK).
|
|
|
+ * fmem, Tmem Frequency, period of the memory clock (fmem = fcpu/2).
|
|
|
+ * fbclk, Tbclk Frequency, period of the PCMCIA clock (BCLK).
|
|
|
+ */
|
|
|
+
|
|
|
+ /* Memory system: */
|
|
|
+#define MECR __REG(0xA0000018) /* Expansion memory bus (PCMCIA) Configuration Reg. */
|
|
|
+
|
|
|
+#define MECR_PCMCIA(Nb) /* PCMCIA [0..1] */ \
|
|
|
+ Fld (15, (Nb)*16)
|
|
|
+#define MECR_PCMCIA0 MECR_PCMCIA (0) /* PCMCIA 0 */
|
|
|
+#define MECR_PCMCIA1 MECR_PCMCIA (1) /* PCMCIA 1 */
|
|
|
+
|
|
|
+#define MECR_BSIO Fld (5, 0) /* BCLK Select I/O - 1 [Tmem] */
|
|
|
+#define MECR_IOClk(Tcpu) /* I/O Clock [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 2)/2) << FShft (MECR_BSIO))
|
|
|
+#define MECR_CeilIOClk(Tcpu) /* Ceil. of IOClk [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 1)/2) << FShft (MECR_BSIO))
|
|
|
+#define MECR_BSA Fld (5, 5) /* BCLK Select Attribute - 1 */
|
|
|
+ /* [Tmem] */
|
|
|
+#define MECR_AttrClk(Tcpu) /* Attribute Clock [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 2)/2) << FShft (MECR_BSA))
|
|
|
+#define MECR_CeilAttrClk(Tcpu) /* Ceil. of AttrClk [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 1)/2) << FShft (MECR_BSA))
|
|
|
+#define MECR_BSM Fld (5, 10) /* BCLK Select Memory - 1 [Tmem] */
|
|
|
+#define MECR_MemClk(Tcpu) /* Memory Clock [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 2)/2) << FShft (MECR_BSM))
|
|
|
+#define MECR_CeilMemClk(Tcpu) /* Ceil. of MemClk [2..64 Tcpu] */ \
|
|
|
+ ((((Tcpu) - 1)/2) << FShft (MECR_BSM))
|
|
|
+
|
|
|
+/*
|
|
|
+ * On SA1110 only
|
|
|
+ */
|
|
|
+
|
|
|
+#define MDREFR __REG(0xA000001C)
|
|
|
+
|
|
|
+#define MDREFR_TRASR Fld (4, 0)
|
|
|
+#define MDREFR_DRI Fld (12, 4)
|
|
|
+#define MDREFR_E0PIN (1 << 16)
|