|
@@ -0,0 +1,174 @@
|
|
|
+/****************************************************************************/
|
|
|
+
|
|
|
+/*
|
|
|
+ * m532xsim.h -- ColdFire 5329 registers
|
|
|
+ */
|
|
|
+
|
|
|
+/****************************************************************************/
|
|
|
+#ifndef m532xsim_h
|
|
|
+#define m532xsim_h
|
|
|
+/****************************************************************************/
|
|
|
+
|
|
|
+#define CPU_NAME "COLDFIRE(m532x)"
|
|
|
+#define CPU_INSTR_PER_JIFFY 3
|
|
|
+#define MCF_BUSCLK (MCF_CLK / 3)
|
|
|
+
|
|
|
+#include <asm/m53xxacr.h>
|
|
|
+
|
|
|
+#define MCFINT_VECBASE 64
|
|
|
+#define MCFINT_UART0 26 /* Interrupt number for UART0 */
|
|
|
+#define MCFINT_UART1 27 /* Interrupt number for UART1 */
|
|
|
+#define MCFINT_UART2 28 /* Interrupt number for UART2 */
|
|
|
+#define MCFINT_QSPI 31 /* Interrupt number for QSPI */
|
|
|
+#define MCFINT_FECRX0 36 /* Interrupt number for FEC */
|
|
|
+#define MCFINT_FECTX0 40 /* Interrupt number for FEC */
|
|
|
+#define MCFINT_FECENTC0 42 /* Interrupt number for FEC */
|
|
|
+
|
|
|
+#define MCF_IRQ_UART0 (MCFINT_VECBASE + MCFINT_UART0)
|
|
|
+#define MCF_IRQ_UART1 (MCFINT_VECBASE + MCFINT_UART1)
|
|
|
+#define MCF_IRQ_UART2 (MCFINT_VECBASE + MCFINT_UART2)
|
|
|
+
|
|
|
+#define MCF_IRQ_FECRX0 (MCFINT_VECBASE + MCFINT_FECRX0)
|
|
|
+#define MCF_IRQ_FECTX0 (MCFINT_VECBASE + MCFINT_FECTX0)
|
|
|
+#define MCF_IRQ_FECENTC0 (MCFINT_VECBASE + MCFINT_FECENTC0)
|
|
|
+
|
|
|
+#define MCF_IRQ_QSPI (MCFINT_VECBASE + MCFINT_QSPI)
|
|
|
+
|
|
|
+#define MCF_WTM_WCR 0xFC098000
|
|
|
+
|
|
|
+/*
|
|
|
+ * Define the 532x SIM register set addresses.
|
|
|
+ */
|
|
|
+#define MCFSIM_IPRL 0xFC048004
|
|
|
+#define MCFSIM_IPRH 0xFC048000
|
|
|
+#define MCFSIM_IPR MCFSIM_IPRL
|
|
|
+#define MCFSIM_IMRL 0xFC04800C
|
|
|
+#define MCFSIM_IMRH 0xFC048008
|
|
|
+#define MCFSIM_IMR MCFSIM_IMRL
|
|
|
+#define MCFSIM_ICR0 0xFC048040
|
|
|
+#define MCFSIM_ICR1 0xFC048041
|
|
|
+#define MCFSIM_ICR2 0xFC048042
|
|
|
+#define MCFSIM_ICR3 0xFC048043
|
|
|
+#define MCFSIM_ICR4 0xFC048044
|
|
|
+#define MCFSIM_ICR5 0xFC048045
|
|
|
+#define MCFSIM_ICR6 0xFC048046
|
|
|
+#define MCFSIM_ICR7 0xFC048047
|
|
|
+#define MCFSIM_ICR8 0xFC048048
|
|
|
+#define MCFSIM_ICR9 0xFC048049
|
|
|
+#define MCFSIM_ICR10 0xFC04804A
|
|
|
+#define MCFSIM_ICR11 0xFC04804B
|
|
|
+
|
|
|
+/*
|
|
|
+ * Some symbol defines for the above...
|
|
|
+ */
|
|
|
+#define MCFSIM_SWDICR MCFSIM_ICR0 /* Watchdog timer ICR */
|
|
|
+#define MCFSIM_TIMER1ICR MCFSIM_ICR1 /* Timer 1 ICR */
|
|
|
+#define MCFSIM_TIMER2ICR MCFSIM_ICR2 /* Timer 2 ICR */
|
|
|
+#define MCFSIM_UART1ICR MCFSIM_ICR4 /* UART 1 ICR */
|
|
|
+#define MCFSIM_UART2ICR MCFSIM_ICR5 /* UART 2 ICR */
|
|
|
+#define MCFSIM_DMA0ICR MCFSIM_ICR6 /* DMA 0 ICR */
|
|
|
+#define MCFSIM_DMA1ICR MCFSIM_ICR7 /* DMA 1 ICR */
|
|
|
+#define MCFSIM_DMA2ICR MCFSIM_ICR8 /* DMA 2 ICR */
|
|
|
+#define MCFSIM_DMA3ICR MCFSIM_ICR9 /* DMA 3 ICR */
|
|
|
+
|
|
|
+
|
|
|
+#define MCFINTC0_SIMR 0xFC04801C
|
|
|
+#define MCFINTC0_CIMR 0xFC04801D
|
|
|
+#define MCFINTC0_ICR0 0xFC048040
|
|
|
+#define MCFINTC1_SIMR 0xFC04C01C
|
|
|
+#define MCFINTC1_CIMR 0xFC04C01D
|
|
|
+#define MCFINTC1_ICR0 0xFC04C040
|
|
|
+#define MCFINTC2_SIMR (0)
|
|
|
+#define MCFINTC2_CIMR (0)
|
|
|
+#define MCFINTC2_ICR0 (0)
|
|
|
+
|
|
|
+#define MCFSIM_ICR_TIMER1 (0xFC048040+32)
|
|
|
+#define MCFSIM_ICR_TIMER2 (0xFC048040+33)
|
|
|
+
|
|
|
+/*
|
|
|
+ * Define system peripheral IRQ usage.
|
|
|
+ */
|
|
|
+#define MCF_IRQ_TIMER (64 + 32) /* Timer0 */
|
|
|
+#define MCF_IRQ_PROFILER (64 + 33) /* Timer1 */
|
|
|
+
|
|
|
+/*
|
|
|
+ * UART module.
|
|
|
+ */
|
|
|
+#define MCFUART_BASE0 0xFC060000 /* Base address of UART1 */
|
|
|
+#define MCFUART_BASE1 0xFC064000 /* Base address of UART2 */
|
|
|
+#define MCFUART_BASE2 0xFC068000 /* Base address of UART3 */
|
|
|
+
|
|
|
+/*
|
|
|
+ * FEC module.
|
|
|
+ */
|
|
|
+#define MCFFEC_BASE0 0xFC030000 /* Base address of FEC0 */
|
|
|
+#define MCFFEC_SIZE0 0x800 /* Size of FEC0 region */
|
|
|
+
|
|
|
+/*
|
|
|
+ * QSPI module.
|
|
|
+ */
|
|
|
+#define MCFQSPI_BASE 0xFC058000 /* Base address of QSPI */
|
|
|
+#define MCFQSPI_SIZE 0x40 /* Size of QSPI region */
|
|
|
+
|
|
|
+#define MCFQSPI_CS0 84
|
|
|
+#define MCFQSPI_CS1 85
|
|
|
+#define MCFQSPI_CS2 86
|
|
|
+
|
|
|
+/*
|
|
|
+ * Timer module.
|
|
|
+ */
|
|
|
+#define MCFTIMER_BASE1 0xFC070000 /* Base address of TIMER1 */
|
|
|
+#define MCFTIMER_BASE2 0xFC074000 /* Base address of TIMER2 */
|
|
|
+#define MCFTIMER_BASE3 0xFC078000 /* Base address of TIMER3 */
|
|
|
+#define MCFTIMER_BASE4 0xFC07C000 /* Base address of TIMER4 */
|
|
|
+
|
|
|
+/*********************************************************************
|
|
|
+ *
|
|
|
+ * Reset Controller Module
|
|
|
+ *
|
|
|
+ *********************************************************************/
|
|
|
+
|
|
|
+#define MCF_RCR 0xFC0A0000
|
|
|
+#define MCF_RSR 0xFC0A0001
|
|
|
+
|
|
|
+#define MCF_RCR_SWRESET 0x80 /* Software reset bit */
|
|
|
+#define MCF_RCR_FRCSTOUT 0x40 /* Force external reset */
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * Power Management
|
|
|
+ */
|
|
|
+#define MCFPM_WCR 0xfc040013
|
|
|
+#define MCFPM_PPMSR0 0xfc04002c
|
|
|
+#define MCFPM_PPMCR0 0xfc04002d
|
|
|
+#define MCFPM_PPMSR1 0xfc04002e
|
|
|
+#define MCFPM_PPMCR1 0xfc04002f
|
|
|
+#define MCFPM_PPMHR0 0xfc040030
|
|
|
+#define MCFPM_PPMLR0 0xfc040034
|
|
|
+#define MCFPM_PPMHR1 0xfc040038
|
|
|
+#define MCFPM_LPCR 0xec090007
|
|
|
+
|
|
|
+/*
|
|
|
+ * The M5329EVB board needs a help getting its devices initialized
|
|
|
+ * at kernel start time if dBUG doesn't set it up (for example
|
|
|
+ * it is not used), so we need to do it manually.
|
|
|
+ */
|
|
|
+#ifdef __ASSEMBLER__
|
|
|
+.macro m5329EVB_setup
|
|
|
+ movel #0xFC098000, %a7
|
|
|
+ movel #0x0, (%a7)
|
|
|
+#define CORE_SRAM 0x80000000
|
|
|
+#define CORE_SRAM_SIZE 0x8000
|
|
|
+ movel #CORE_SRAM, %d0
|
|
|
+ addl #0x221, %d0
|
|
|
+ movec %d0,%RAMBAR1
|
|
|
+ movel #CORE_SRAM, %sp
|
|
|
+ addl #CORE_SRAM_SIZE, %sp
|
|
|
+ jsr sysinit
|
|
|
+.endm
|
|
|
+#define PLATFORM_SETUP m5329EVB_setup
|
|
|
+
|
|
|
+#endif /* __ASSEMBLER__ */
|
|
|
+
|
|
|
+/*********************************************************************
|
|
|
+ *
|