1 |
30 |
unneback |
#
|
2 |
|
|
# $Id: README,v 1.2 2001-09-27 12:00:35 chris Exp $
|
3 |
|
|
#
|
4 |
|
|
|
5 |
|
|
#
|
6 |
|
|
# This package requires a version of GCC that supports the `-mcpu32' option.
|
7 |
|
|
#
|
8 |
|
|
|
9 |
|
|
#
|
10 |
|
|
# Please send any comments, improvements, or bug reports to:
|
11 |
|
|
# W. Eric Norum
|
12 |
|
|
# Saskatchewan Accelerator Laboratory
|
13 |
|
|
# 107 North Road
|
14 |
|
|
# University of Saskatchewan
|
15 |
|
|
# Saskatoon, Saskatchewan, CANADA
|
16 |
|
|
# S7N 5C6
|
17 |
|
|
# eric@skatter.usask.ca
|
18 |
|
|
#
|
19 |
|
|
|
20 |
|
|
#
|
21 |
|
|
# This board support package works with several different versions of
|
22 |
|
|
# MC68360 systems. The choice of hardware is made at the final link-edit
|
23 |
|
|
# phase by setting the Makefile CLAGS_LD definition appropriately.
|
24 |
|
|
#
|
25 |
|
|
# Decisions made at compile time include:
|
26 |
|
|
# - If the CPU is a member of the 68040 family, the BSP is
|
27 |
|
|
# compiled for a generic 68040/68360 system as described
|
28 |
|
|
# in Chapter 9 of the MC68360 User's Manual.
|
29 |
|
|
# - If the preprocessor symbol M68360_ATLAS_HSB is defined,
|
30 |
|
|
# the BSP is compiled for an Atlas HSB card.
|
31 |
|
|
# - Otherwise, the BSP is compiled for a generic 68360 system
|
32 |
|
|
# as described in Chapter 9 of the MC68360 User's Manual.
|
33 |
|
|
#
|
34 |
|
|
# Decisions to be made a link-edit time are:
|
35 |
|
|
# - The size of the memory allocator heap. The default value is
|
36 |
|
|
# 64 kbytes. If the network package is used the heap
|
37 |
|
|
# should be at least 256 kbytes. If your network is large, or
|
38 |
|
|
# busy, the heap should be even larger.
|
39 |
|
|
# To choose a heap size of 256 kbytes,
|
40 |
|
|
# CFLAGS_LD += -Wl,--defsym -Wl,HeapSize=0x40000
|
41 |
|
|
|
42 |
|
|
BSP NAME: gen68360 or gen68360_040
|
43 |
|
|
BOARD: Generic 68360 as described in Motorola MC68360 User's Manual
|
44 |
|
|
BOARD: Atlas Computer Equipment Inc. High Speed Bridge (HSB)
|
45 |
|
|
BOARD: Atlas Computer Equipment Inc. Advanced Communication Engine (ACE)
|
46 |
|
|
BOARD: Arnewsh SBC360 68040/68360 card
|
47 |
|
|
BUS: none
|
48 |
|
|
CPU FAMILY: Motorola CPU32+, Motorola 68040
|
49 |
|
|
COPROCESSORS: none
|
50 |
|
|
MODE: not applicable
|
51 |
|
|
|
52 |
|
|
DEBUG MONITOR: none (Hardware provides BDM)
|
53 |
|
|
|
54 |
|
|
PERIPHERALS
|
55 |
|
|
===========
|
56 |
|
|
TIMERS: PIT, Watchdog, 4 general purpose, 16 RISC
|
57 |
|
|
RESOLUTION: one microsecond
|
58 |
|
|
SERIAL PORTS: 4 SCC, 2 SMC, 1 SPI
|
59 |
|
|
REAL-TIME CLOCK:
|
60 |
|
|
DMA: Each serial port, 2 general purpose
|
61 |
|
|
VIDEO: none
|
62 |
|
|
SCSI: none
|
63 |
|
|
NETWORKING: Ethernet on SCC1.
|
64 |
|
|
|
65 |
|
|
DRIVER INFORMATION
|
66 |
|
|
==================
|
67 |
|
|
CLOCK DRIVER: Programmable Interval Timer
|
68 |
|
|
IOSUPP DRIVER: Serial Management Controller 1
|
69 |
|
|
SHMSUPP: none
|
70 |
|
|
TIMER DRIVER: Timer 1
|
71 |
|
|
|
72 |
|
|
STDIO
|
73 |
|
|
=====
|
74 |
|
|
PORT: SMC1
|
75 |
|
|
ELECTRICAL: EIA-232 (if board supplies level shifter)
|
76 |
|
|
BAUD: 9600
|
77 |
|
|
BITS PER CHARACTER: 8
|
78 |
|
|
PARITY: None
|
79 |
|
|
STOP BITS: 1
|
80 |
|
|
|
81 |
|
|
NOTES
|
82 |
|
|
=====
|
83 |
|
|
|
84 |
|
|
Board description
|
85 |
|
|
-----------------
|
86 |
|
|
clock rate: 25 MHz
|
87 |
|
|
bus width: 8-bit PROM, 32-bit DRAM
|
88 |
|
|
ROM: To 1 MByte, 180 nsec (3 wait states), chip select 0
|
89 |
|
|
RAM: 1 to 16 MByte DRAM SIMM, 60 nsec (0 wait states), parity or nonparity
|
90 |
|
|
|
91 |
|
|
Host System
|
92 |
|
|
-----------
|
93 |
|
|
OPENSTEP 4.2 (Intel and Motorola), Solaris 2.5, Linux 2.0.29
|
94 |
|
|
|
95 |
|
|
Verification (Standalone 68360)
|
96 |
|
|
-------------------------------
|
97 |
|
|
Single processor tests: Passed
|
98 |
|
|
Multi-processort tests: not applicable
|
99 |
|
|
Timing tests:
|
100 |
|
|
Context Switch
|
101 |
|
|
|
102 |
|
|
context switch: self 10
|
103 |
|
|
context switch: to another task 11
|
104 |
|
|
context switch: no floating point contexts 40
|
105 |
|
|
fp context switch: restore 1st FP task 41
|
106 |
|
|
fp context switch: save initialized, restore initialized 14
|
107 |
|
|
fp context switch: save idle, restore initialized 14
|
108 |
|
|
fp context switch: save idle, restore idle 43
|
109 |
|
|
|
110 |
|
|
Task Manager
|
111 |
|
|
|
112 |
|
|
rtems_task_create 133
|
113 |
|
|
rtems_task_ident 351
|
114 |
|
|
rtems_task_start 77
|
115 |
|
|
rtems_task_restart: calling task 93
|
116 |
|
|
rtems_task_restart: suspended task -- returns to caller 90
|
117 |
|
|
rtems_task_restart: blocked task -- returns to caller 120
|
118 |
|
|
rtems_task_restart: ready task -- returns to caller 92
|
119 |
|
|
rtems_task_restart: suspended task -- preempts caller 121
|
120 |
|
|
rtems_task_restart: blocked task -- preempts caller 143
|
121 |
|
|
rtems_task_restart: ready task -- preempts caller 138
|
122 |
|
|
rtems_task_delete: calling task 158
|
123 |
|
|
rtems_task_delete: suspended task 129
|
124 |
|
|
rtems_task_delete: blocked task 134
|
125 |
|
|
rtems_task_delete: ready task 136
|
126 |
|
|
rtems_task_suspend: calling task 71
|
127 |
|
|
rtems_task_suspend: returns to caller 47
|
128 |
|
|
rtems_task_resume: task readied -- returns to caller 48
|
129 |
|
|
rtems_task_resume: task readied -- preempts caller 67
|
130 |
|
|
rtems_task_set_priority: obtain current priority 36
|
131 |
|
|
rtems_task_set_priority: returns to caller 65
|
132 |
|
|
rtems_task_set_priority: preempts caller 102
|
133 |
|
|
rtems_task_mode: obtain current mode 13
|
134 |
|
|
rtems_task_mode: no reschedule 15
|
135 |
|
|
rtems_task_mode: reschedule -- returns to caller 22
|
136 |
|
|
rtems_task_mode: reschedule -- preempts caller 61
|
137 |
|
|
rtems_task_get_note 38
|
138 |
|
|
rtems_task_set_note 37
|
139 |
|
|
rtems_task_wake_after: yield -- returns to caller 22
|
140 |
|
|
rtems_task_wake_after: yields -- preempts caller 56
|
141 |
|
|
rtems_task_wake_when 110
|
142 |
|
|
|
143 |
|
|
Interrupt Manager
|
144 |
|
|
|
145 |
|
|
interrupt entry overhead: returns to nested interrupt 8
|
146 |
|
|
interrupt entry overhead: returns to interrupted task 8
|
147 |
|
|
interrupt entry overhead: returns to preempting task 8
|
148 |
|
|
interrupt exit overhead: returns to nested interrupt 7
|
149 |
|
|
interrupt exit overhead: returns to interrupted task 8
|
150 |
|
|
interrupt exit overhead: returns to preempting task 52
|
151 |
|
|
|
152 |
|
|
Clock Manager
|
153 |
|
|
|
154 |
|
|
rtems_clock_set 82
|
155 |
|
|
rtems_clock_get 2
|
156 |
|
|
rtems_clock_tick 15
|
157 |
|
|
|
158 |
|
|
Timer Manager
|
159 |
|
|
|
160 |
|
|
rtems_timer_create 33
|
161 |
|
|
rtems_timer_ident 343
|
162 |
|
|
rtems_timer_delete: inactive 47
|
163 |
|
|
rtems_timer_delete: active 50
|
164 |
|
|
rtems_timer_fire_after: inactive 59
|
165 |
|
|
rtems_timer_fire_after: active 63
|
166 |
|
|
rtems_timer_fire_when: inactive 83
|
167 |
|
|
rtems_timer_fire_when: active 83
|
168 |
|
|
rtems_timer_reset: inactive 55
|
169 |
|
|
rtems_timer_reset: active 58
|
170 |
|
|
rtems_timer_cancel: inactive 35
|
171 |
|
|
rtems_timer_cancel: active 38
|
172 |
|
|
|
173 |
|
|
Semaphore Manager
|
174 |
|
|
|
175 |
|
|
rtems_semaphore_create 62
|
176 |
|
|
rtems_semaphore_ident 368
|
177 |
|
|
rtems_semaphore_delete 61
|
178 |
|
|
rtems_semaphore_obtain: available 42
|
179 |
|
|
rtems_semaphore_obtain: not available -- NO_WAIT 42
|
180 |
|
|
rtems_semaphore_obtain: not available -- caller blocks 105
|
181 |
|
|
rtems_semaphore_release: no waiting tasks 46
|
182 |
|
|
rtems_semaphore_release: task readied -- returns to caller 64
|
183 |
|
|
rtems_semaphore_release: task readied -- preempts caller 84
|
184 |
|
|
|
185 |
|
|
Message Queue Manager
|
186 |
|
|
|
187 |
|
|
rtems_message_queue_create 240
|
188 |
|
|
rtems_message_queue_ident 342
|
189 |
|
|
rtems_message_queue_delete 79
|
190 |
|
|
rtems_message_queue_send: no waiting tasks 93
|
191 |
|
|
rtems_message_queue_send: task readied -- returns to caller 96
|
192 |
|
|
rtems_message_queue_send: task readied -- preempts caller 116
|
193 |
|
|
rtems_message_queue_urgent: no waiting tasks 93
|
194 |
|
|
rtems_message_queue_urgent: task readied -- returns to caller 97
|
195 |
|
|
rtems_message_queue_urgent: task readied -- preempts caller 117
|
196 |
|
|
rtems_message_queue_broadcast: no waiting tasks 54
|
197 |
|
|
rtems_message_queue_broadcast: task readied -- returns to caller 106
|
198 |
|
|
rtems_message_queue_broadcast: task readied -- preempts caller 126
|
199 |
|
|
rtems_message_queue_receive: available 79
|
200 |
|
|
rtems_message_queue_receive: not available -- NO_WAIT 48
|
201 |
|
|
rtems_message_queue_receive: not available -- caller blocks 111
|
202 |
|
|
rtems_message_queue_flush: no messages flushed 35
|
203 |
|
|
rtems_message_queue_flush: messages flushed 44
|
204 |
|
|
|
205 |
|
|
Event Manager
|
206 |
|
|
|
207 |
|
|
rtems_event_send: no task readied 30
|
208 |
|
|
rtems_event_send: task readied -- returns to caller 59
|
209 |
|
|
rtems_event_send: task readied -- preempts caller 81
|
210 |
|
|
rtems_event_receive: obtain current events 1
|
211 |
|
|
rtems_event_receive: available 34
|
212 |
|
|
rtems_event_receive: not available -- NO_WAIT 31
|
213 |
|
|
rtems_event_receive: not available -- caller blocks 84
|
214 |
|
|
|
215 |
|
|
Signal Manager
|
216 |
|
|
|
217 |
|
|
rtems_signal_catch 24
|
218 |
|
|
rtems_signal_send: returns to caller 42
|
219 |
|
|
rtems_signal_send: signal to self 47
|
220 |
|
|
exit ASR overhead: returns to calling task 33
|
221 |
|
|
exit ASR overhead: returns to preempting task 58
|
222 |
|
|
|
223 |
|
|
Partition Manager
|
224 |
|
|
|
225 |
|
|
rtems_partition_create 78
|
226 |
|
|
rtems_partition_ident 342
|
227 |
|
|
rtems_partition_delete 46
|
228 |
|
|
rtems_partition_get_buffer: available 40
|
229 |
|
|
rtems_partition_get_buffer: not available 39
|
230 |
|
|
rtems_partition_return_buffer 47
|
231 |
|
|
|
232 |
|
|
Region Manager
|
233 |
|
|
|
234 |
|
|
rtems_region_create 65
|
235 |
|
|
rtems_region_ident 349
|
236 |
|
|
rtems_region_delete 45
|
237 |
|
|
rtems_region_get_segment: available 55
|
238 |
|
|
rtems_region_get_segment: not available -- NO_WAIT 52
|
239 |
|
|
rtems_region_get_segment: not available -- caller blocks 119
|
240 |
|
|
rtems_region_return_segment: no waiting tasks 57
|
241 |
|
|
rtems_region_return_segment: task readied -- returns to caller 106
|
242 |
|
|
rtems_region_return_segment: task readied -- preempts caller 127
|
243 |
|
|
|
244 |
|
|
Dual-Ported Memory Manager
|
245 |
|
|
|
246 |
|
|
rtems_port_create 40
|
247 |
|
|
rtems_port_ident 342
|
248 |
|
|
rtems_port_delete 44
|
249 |
|
|
rtems_port_internal_to_external 32
|
250 |
|
|
rtems_port_external_to_internal 32
|
251 |
|
|
|
252 |
|
|
IO Manager
|
253 |
|
|
|
254 |
|
|
rtems_io_initialize 4
|
255 |
|
|
rtems_io_open 1
|
256 |
|
|
rtems_io_close 1
|
257 |
|
|
rtems_io_read 1
|
258 |
|
|
rtems_io_write 1
|
259 |
|
|
rtems_io_control 1
|
260 |
|
|
|
261 |
|
|
Rate Monotonic Manager
|
262 |
|
|
|
263 |
|
|
rtems_rate_monotonic_create 39
|
264 |
|
|
rtems_rate_monotonic_ident 343
|
265 |
|
|
rtems_rate_monotonic_cancel 43
|
266 |
|
|
rtems_rate_monotonic_delete: active 54
|
267 |
|
|
rtems_rate_monotonic_delete: inactive 52
|
268 |
|
|
rtems_rate_monotonic_period: obtain status 37
|
269 |
|
|
rtems_rate_monotonic_period: initiate period -- returns to caller 58
|
270 |
|
|
rtems_rate_monotonic_period: conclude periods -- caller blocks 75
|
271 |
|
|
|
272 |
|
|
Porting
|
273 |
|
|
-------
|
274 |
|
|
This board support package is written for a 68360 system similar to that
|
275 |
|
|
described in chapter 9 of the Motorola MC68360 Quad Integrated Communication
|
276 |
|
|
Processor Users' Manual. The salient features of this hardware are:
|
277 |
|
|
|
278 |
|
|
25 MHz external clock
|
279 |
|
|
DRAM address multiplexing provided by 68360
|
280 |
|
|
8-bit 180nsec PROM to CS0*
|
281 |
|
|
4 MBytes of 60 nsec parity DRAM (1Mx36) to RAS1*/CAS1*
|
282 |
|
|
Console serial port on SMC1
|
283 |
|
|
Ethernet interface on SCC1
|
284 |
|
|
|
285 |
|
|
The board support package has been tested with:
|
286 |
|
|
A home-built 68360 board
|
287 |
|
|
An ACE360A and an HSB board produced by:
|
288 |
|
|
Atlas Computer Equipment
|
289 |
|
|
703 Colina Lane
|
290 |
|
|
Santa Barbara, CA 93103
|
291 |
|
|
A 68040/68360 board (SBC360) produced by:
|
292 |
|
|
Arnewsh Inc.
|
293 |
|
|
P.O. Box 270352
|
294 |
|
|
Fort Collins, CO 80527-0352
|