123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- /****************************************************************************/
- /*
- * 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__ */
- /*********************************************************************
- *
|