3 * MPC8xx Internal Memory Map
4 * Copyright (c) 1997 Dan Malek (dmalek@jlc.net)
6 * The I/O on the MPC860 is comprised of blocks of special registers
7 * and the dual port ram for the Communication Processor Module.
8 * Within this space are functional units such as the SIU, memory
9 * controller, system timers, and other control functions. It is
10 * a combination that I found difficult to separate into logical
11 * functional files.....but anyone else is welcome to try. -- Dan
16 /* System configuration registers.
18 typedef struct sys_conf
{
34 /* PCMCIA configuration registers.
36 typedef struct pcmcia_conf
{
64 /* Memory controller registers.
66 typedef struct mem_ctlr
{
95 /* System Integration Timers.
97 typedef struct sys_int_timers
{
114 #define TBSCR_TBIRQ_MASK ((ushort)0xff00)
115 #define TBSCR_REFA ((ushort)0x0080)
116 #define TBSCR_REFB ((ushort)0x0040)
117 #define TBSCR_REFAE ((ushort)0x0008)
118 #define TBSCR_REFBE ((ushort)0x0004)
119 #define TBSCR_TBF ((ushort)0x0002)
120 #define TBSCR_TBE ((ushort)0x0001)
122 #define RTCSC_RTCIRQ_MASK ((ushort)0xff00)
123 #define RTCSC_SEC ((ushort)0x0080)
124 #define RTCSC_ALR ((ushort)0x0040)
125 #define RTCSC_38K ((ushort)0x0010)
126 #define RTCSC_SIE ((ushort)0x0008)
127 #define RTCSC_ALE ((ushort)0x0004)
128 #define RTCSC_RTF ((ushort)0x0002)
129 #define RTCSC_RTE ((ushort)0x0001)
131 #define PISCR_PIRQ_MASK ((ushort)0xff00)
132 #define PISCR_PS ((ushort)0x0080)
133 #define PISCR_PIE ((ushort)0x0004)
134 #define PISCR_PTF ((ushort)0x0002)
135 #define PISCR_PTE ((ushort)0x0001)
139 typedef struct clk_and_reset
{
143 char res
[0x74]; /* Reserved area */
146 /* System Integration Timers keys.
148 typedef struct sitk
{
164 /* Clocks and reset keys.
166 typedef struct cark
{
173 /* The key to unlock registers maintained by keep-alive power.
175 #define KAPWR_KEY ((unsigned int)0x55ccaa33)
177 /* LCD interface. MPC821 Only.
180 ushort lcd_lcolr
[16];
209 /* DMA control/status registers.
211 typedef struct sdma_csr
{
228 /* Communication Processor Module Interrupt Controller.
230 typedef struct cpm_ic
{
239 /* Input/Output Port control/status registers.
241 typedef struct io_port
{
260 /* Communication Processor Module Timers
262 typedef struct cpm_timers
{
288 /* Finally, the Communication Processor stuff.....
290 typedef struct scc
{ /* Serial communication channels */
305 typedef struct smc
{ /* Serial management channels */
315 /* MPC860T Fast Ethernet Controller. It isn't part of the CPM, but
316 * it fits within the address space.
319 uint fec_addr_low
; /* LS 32 bits of station address */
320 ushort fec_addr_high
; /* MS 16 bits of address */
322 uint fec_hash_table_high
;
323 uint fec_hash_table_low
;
324 uint fec_r_des_start
;
325 uint fec_x_des_start
;
326 uint fec_r_buff_size
;
332 uint fec_r_des_active
;
333 uint fec_x_des_active
;
352 typedef struct comm_proc
{
353 /* General control and status registers.
369 /* Baud rate generators.
376 /* Serial Communication Channels.
380 /* Serial Management Channels.
384 /* Serial Peripheral Interface.
395 /* Parallel Interface Port.
408 /* Serial Interface and Time Slot Assignment.
419 u_char cp_siram
[0x200];
421 /* The fast ethernet controller is not really part of the CPM,
422 * but it resides in the address space.
427 /* Dual Ported RAM follows.
428 * There are many different formats for this memory area
429 * depending upon the devices used and options chosen.
431 u_char cp_dpmem
[0x1000]; /* BD / Data / ucode */
433 u_char cp_dparam
[0x400]; /* Parameter RAM */
436 /* Internal memory map.
438 typedef struct immap
{
439 sysconf8xx_t im_siu_conf
; /* SIU Configuration */
440 pcmconf8xx_t im_pcmcia
; /* PCMCIA Configuration */
441 memctl8xx_t im_memctl
; /* Memory Controller */
442 sit8xx_t im_sit
; /* System integration timers */
443 car8xx_t im_clkrst
; /* Clocks and reset */
444 sitk8xx_t im_sitk
; /* Sys int timer keys */
445 cark8xx_t im_clkrstk
; /* Clocks and reset keys */
446 lcd8xx_t im_lcd
; /* LCD (821 only) */
447 i2c8xx_t im_i2c
; /* I2C control/status */
448 sdma8xx_t im_sdma
; /* SDMA control/status */
449 cpic8xx_t im_cpic
; /* CPM Interrupt Controller */
450 iop8xx_t im_ioport
; /* IO Port control/status */
451 cpmtimer8xx_t im_cpmtimer
; /* CPM timers */
452 cpm8xx_t im_cpm
; /* Communication processor */
455 #endif /* __IMMAP_8XX__ */