RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
bsp.h
Go to the documentation of this file.
1
9/*
10 * Board Support Package for CSB360 evaluation board
11 * BSP definitions
12 *
13 * Copyright 2004 Cogent Computer Systems
14 * Author: Jay Monkman <jtm@lopingdog.com>
15 *
16 * Derived from mcf5206elite BSP:
17 * Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia
18 * Author: Victor V. Vengerov <vvv@oktet.ru>
19 *
20 * The license and distribution terms for this file may be
21 * found in the file LICENSE in this distribution or at
22 *
23 * http://www.rtems.org/license/LICENSE.
24 */
25
26#ifndef LIBBSP_M68K_CSB360_BSP_H
27#define LIBBSP_M68K_CSB360_BSP_H
28
39#include <mcf5272/mcf5272.h>
40
41/*** Board resources allocation ***/
42#define BSP_MEM_ADDR_SRAM 0x20000000
43#define BSP_MEM_SIZE_SRAM 4096
44
45/* Location and size of sdram. Note this includes space used by
46 * umon.
47 */
48#define BSP_MEM_ADDR_SDRAM 0x00000000
49#define BSP_MEM_MASK_SDRAM 0x01ffffff
50#define BSP_MEM_SIZE_SDRAM (32 * 1024 * 1024)
51
52/* Address to put SIM Modules */
53#define BSP_MBAR 0x10000000
54
55/* Address to put SRAM */
56#define BSP_RAMBAR BSP_MEM_ADDR_SRAM
57
58/* Interrupt Vectors */
59#define BSP_INTVEC_INT1 65
60#define BSP_INTVEC_INT2 66
61#define BSP_INTVEC_INT3 67
62#define BSP_INTVEC_INT4 68
63#define BSP_INTVEC_TMR0 69
64#define BSP_INTVEC_TMR1 70
65#define BSP_INTVEC_TMR2 71
66#define BSP_INTVEC_TMR3 72
67#define BSP_INTVEC_UART1 73
68#define BSP_INTVEC_UART2 74
69#define BSP_INTVEC_PLIP 75
70#define BSP_INTVEC_PLIA 76
71#define BSP_INTVEC_USB0 77
72#define BSP_INTVEC_USB1 78
73#define BSP_INTVEC_USB2 79
74#define BSP_INTVEC_USB3 80
75#define BSP_INTVEC_USB4 81
76#define BSP_INTVEC_USB5 82
77#define BSP_INTVEC_USB6 83
78#define BSP_INTVEC_USB7 84
79#define BSP_INTVEC_DMA 85
80#define BSP_INTVEC_ERX 86
81#define BSP_INTVEC_ETX 87
82#define BSP_INTVEC_ENTC 88
83#define BSP_INTVEC_QSPI 89
84#define BSP_INTVEC_INT5 90
85#define BSP_INTVEC_INT6 91
86#define BSP_INTVEC_SWTO 92
87
88#define BSP_INTLVL_INT1 1
89#define BSP_INTLVL_INT2 1
90#define BSP_INTLVL_INT3 1
91#define BSP_INTLVL_INT4 1
92#define BSP_INTLVL_TMR0 1
93#define BSP_INTLVL_TMR1 1
94#define BSP_INTLVL_TMR2 1
95#define BSP_INTLVL_TMR3 1
96#define BSP_INTLVL_UART1 1
97#define BSP_INTLVL_UART2 1
98#define BSP_INTLVL_PLIP 1
99#define BSP_INTLVL_PLIA 1
100#define BSP_INTLVL_USB0 1
101#define BSP_INTLVL_USB1 1
102#define BSP_INTLVL_USB2 1
103#define BSP_INTLVL_USB3 1
104#define BSP_INTLVL_USB4 1
105#define BSP_INTLVL_USB5 1
106#define BSP_INTLVL_USB6 1
107#define BSP_INTLVL_USB7 1
108#define BSP_INTLVL_DMA 1
109#define BSP_INTLVL_ERX 1
110#define BSP_INTLVL_ETX 1
111#define BSP_INTLVL_ENTC 1
112#define BSP_INTLVL_QSPI 1
113#define BSP_INTLVL_INT5 1
114#define BSP_INTLVL_INT6 1
115#define BSP_INTLVL_SWTO 1
116
117
118
119#ifndef ASM
120
121#include <bspopts.h>
122#include <rtems.h>
124
125#ifdef __cplusplus
126extern "C" {
127#endif
128
129struct rtems_bsdnet_ifconfig;
130extern int rtems_enet_driver_attach (struct rtems_bsdnet_ifconfig *config);
131#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
132#define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_enet_driver_attach
133
134/* System frequency */
135#define BSP_SYSTEM_FREQUENCY (66 * 1000 * 1000)
136
137/*
138 * Simple spin delay in microsecond units for device drivers.
139 * This is very dependent on the clock speed of the target.
140 */
141
142#define rtems_bsp_delay( microseconds ) \
143 { register uint32_t _delay=(microseconds); \
144 register uint32_t _tmp=123; \
145 __asm__ volatile( "0: \
146 nbcd %0 ; \
147 nbcd %0 ; \
148 dbf %1,0b" \
149 : "=d" (_tmp), "=d" (_delay) \
150 : "0" (_tmp), "1" (_delay) ); \
151 }
152
153/*
154 * Real-Time Clock Driver Table Entry
155 * NOTE: put this entry to the device driver table AFTER I2C bus driver!
156 */
157#define RTC_DRIVER_TABLE_ENTRY \
158 { rtc_initialize, NULL, NULL, NULL, NULL, NULL }
160 rtems_device_major_number major,
161 rtems_device_minor_number minor,
162 void *arg
163);
164
165/* miscellaneous stuff assumed to exist */
166
167extern rtems_isr_entry M68Kvec[]; /* vector table address */
168
169extern rtems_isr (*rtems_clock_hook)(rtems_vector_number);
170
171/* functions */
172
173rtems_isr_entry set_vector(
174 rtems_isr_entry handler,
175 rtems_vector_number vector,
176 int type
177);
178
179/*
180 * Prototypes for BSP methods which cross file boundaries
181 */
182void init5272(void);
183
184#ifdef __cplusplus
185}
186#endif
187
188#endif /* ASM */
189
192#endif
DEFAULT_INITIAL_EXTENSION Support.
ISR_Handler rtems_isr
Return type for interrupt handler.
Definition: intr.h:52
ISR_Vector_number rtems_vector_number
Control block type used to manage the vectors.
Definition: intr.h:47
rtems_status_code
Classic API Status.
Definition: status.h:43
rtems_isr_entry set_vector(rtems_isr_entry handler, rtems_vector_number vector, int type)
Install an interrupt handler.
Definition: setvec.c:28
rtems_device_driver rtc_initialize(rtems_device_major_number major, rtems_device_minor_number minor_arg, void *arg)
Definition: rtc.c:160
Definition: deflate.c:115