2 * MCF5272 Internal Memory Map
4 * Copyright (c) 2003 Josef Baumgartner <josef.baumgartner@telex.de>
6 * See file CREDITS for list of people who contributed to this
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
25 #ifndef __IMMAP_5272__
26 #define __IMMAP_5272__
28 /* System configuration registers
30 typedef struct sys_ctrl {
41 /* Interrupt module registers
43 typedef struct int_ctrl {
55 /* Chip select module registers.
57 typedef struct cs_ctlr {
76 /* GPIO port registers
78 typedef struct gpio_ctrl {
92 /* QSPI module registers
94 typedef struct qspi_ctrl {
109 /* PWM module registers
111 typedef struct pwm_ctrl {
126 /* DMA module registers
128 typedef struct dma_ctrl {
138 /* UART module registers
140 typedef struct uart_ctrl {
149 uchar uart_uipcr_uacr;
151 uchar uart_uisr_uimr;
175 /* SDRAM controller registers, offset: 0x180
177 typedef struct sdram_ctrl {
185 /* Timer module registers
187 typedef struct timer_ctrl {
200 /* Watchdog registers
202 typedef struct wdog_ctrl {
213 /* PLIC module registers
215 typedef struct plic_ctrl {
292 /* Fast ethernet controller registers
295 uint fec_ecntrl; /* ethernet control register */
296 uint fec_ievent; /* interrupt event register */
297 uint fec_imask; /* interrupt mask register */
298 uint fec_ivec; /* interrupt level and vector status */
299 uint fec_r_des_active; /* Rx ring updated flag */
300 uint fec_x_des_active; /* Tx ring updated flag */
301 uint res3[10]; /* reserved */
302 uint fec_mii_data; /* MII data register */
303 uint fec_mii_speed; /* MII speed control register */
304 uint res4[17]; /* reserved */
305 uint fec_r_bound; /* end of RAM (read-only) */
306 uint fec_r_fstart; /* Rx FIFO start address */
307 uint res5[6]; /* reserved */
308 uint fec_x_fstart; /* Tx FIFO start address */
309 uint res7[21]; /* reserved */
310 uint fec_r_cntrl; /* Rx control register */
311 uint fec_r_hash; /* Rx hash register */
312 uint res8[14]; /* reserved */
313 uint fec_x_cntrl; /* Tx control register */
314 uint res9[0x9e]; /* reserved */
315 uint fec_addr_low; /* lower 32 bits of station address */
316 uint fec_addr_high; /* upper 16 bits of station address */
317 uint fec_hash_table_high; /* upper 32-bits of hash table */
318 uint fec_hash_table_low; /* lower 32-bits of hash table */
319 uint fec_r_des_start; /* beginning of Rx descriptor ring */
320 uint fec_x_des_start; /* beginning of Tx descriptor ring */
321 uint fec_r_buff_size; /* Rx buffer size */
322 uint res2[9]; /* reserved */
323 uchar fec_fifo[960]; /* fifo RAM */
326 /* USB module registers
425 uchar usb_cfgram[1024];
428 /* Internal memory map.
430 typedef struct immap {
431 sysctrl_t sysctrl_reg; /* System configuration registers */
432 intctrl_t intctrl_reg; /* Interrupt controller registers */
433 csctrl_t csctrl_reg; /* Chip select controller registers */
434 gpio_t gpio_reg; /* GPIO controller registers */
435 qspi_t qspi_reg; /* QSPI controller registers */
436 pwm_t pwm_reg; /* Pulse width modulation registers */
437 dma_t dma_reg; /* DMA registers */
438 uart_t uart_reg[2]; /* UART registers */
439 sdramctrl_t sdram_reg; /* SDRAM controller registers */
440 timer_t timer_reg[4]; /* Timer registers */
441 wdog_t wdog_reg; /* Watchdog registers */
442 plic_t plic_reg; /* Physical layer interface registers */
443 fec_t fec_reg; /* Fast ethernet controller registers */
444 usb_t usb_reg; /* USB controller registers */
447 #endif /* __IMMAP_5272__ */