source: rtems/c/src/lib/libbsp/m68k/gen68360/README @ b04a2b3

4.104.114.84.95
Last change on this file since b04a2b3 was abde5688, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 19, 2001 at 5:40:51 PM

2001-09-19 Eric Norum <eric.norum@…>

  • README: Bring it more in line with reality.
  • Property mode set to 100644
File size: 9.2 KB
Line 
1#
2#  $Id$
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#       Deparment of Electrical Engineering
13#       53 Campus Driver
14#       University of Saskatchewan
15#       Saskatoon, Saskatchewan, CANADA
16#       S7N 5A9
17# eric.norum@usask.ca
18#
19
20#
21# This board support package works with several different versions of
22# MC68360 systems.  See the conditional-compile tests in startup/init68360.c
23# for examples.
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.  This version
29#         can be used with the Arnewsh SBC360 card.
30#       - If the preprocessor symbol M68360_ATLAS_HSB is defined,
31#         the BSP is compiled for an Atlas HSB card.
32#       - Otherwise, the BSP is compiled for a generic 68360 system
33#         as described in Chapter 9 of the MC68360 User's Manual.  This
34#         version works with the Atlas ACE360 card.
35#
36
37BSP NAME:           gen68360 or gen68360_040
38BOARD:              Generic 68360 as described in Motorola MC68360 User's Manual
39BOARD:              Atlas Computer Equipment Inc. High Speed Bridge (HSB)
40BOARD:              Atlas Computer Equipment Inc. Advanced Communication Engine (ACE)
41BOARD:              Arnewsh SBC360 68040/68360 card
42BUS:                none
43CPU FAMILY:         Motorola CPU32+, Motorola 68040
44COPROCESSORS:       none
45MODE:               not applicable
46
47DEBUG MONITOR:      none (Hardware provides BDM)
48
49PERIPHERALS
50===========
51TIMERS:             PIT, Watchdog, 4 general purpose, 16 RISC
52  RESOLUTION:       one microsecond
53SERIAL PORTS:       4 SCC, 2 SMC, 1 SPI
54REAL-TIME CLOCK:
55DMA:                Each serial port, 2 general purpose
56VIDEO:              none
57SCSI:               none
58NETWORKING:         Ethernet on SCC1.
59
60DRIVER INFORMATION
61==================
62CLOCK DRIVER:       Programmable Interval Timer
63IOSUPP DRIVER:      Serial Management Controller 1
64SHMSUPP:            none
65TIMER DRIVER:       Timer 1
66
67STDIO
68=====
69PORT:               SMC1
70ELECTRICAL:         EIA-232 (if board supplies level shifter)
71BAUD:               9600
72BITS PER CHARACTER: 8
73PARITY:             None
74STOP BITS:          1
75
76NOTES
77=====
78
79Board description
80-----------------
81clock rate:     25 MHz
82bus width:      8-bit PROM/FLASH, 32-bit DRAM
83ROM:            To 1 MByte, 180 nsec (3 wait states), chip select 0
84RAM:            4 or 16 MBytes of 60 nsec parity DRAM (1Mx36) to RAS1*/CAS1*
85
86Host System
87-----------
88OPENSTEP 4.2 (Intel and Motorola), Solaris 2.5, Linux 2.0.29
89
90Verification (Standalone 68360)
91-------------------------------
92Single processor tests:  Passed
93Multi-processort tests:  not applicable
94Timing tests:
95        Context Switch
96       
97        context switch: self 10
98        context switch: to another task 11
99        context switch: no floating point contexts 38
100        fp context switch: restore 1st FP task 39
101        fp context switch: save initialized, restore initialized 14
102        fp context switch: save idle, restore initialized 15
103        fp context switch: save idle, restore idle 41
104       
105        Task Manager
106       
107        rtems_task_create 202
108        rtems_task_ident 390
109        rtems_task_start 71
110        rtems_task_restart: calling task 99
111        rtems_task_restart: suspended task -- returns to caller 86
112        rtems_task_restart: blocked task -- returns to caller 116
113        rtems_task_restart: ready task -- returns to caller 88
114        rtems_task_restart: suspended task -- preempts caller 132
115        rtems_task_restart: blocked task -- preempts caller 153
116        rtems_task_restart: ready task -- preempts caller 149
117        rtems_task_delete: calling task 236
118        rtems_task_delete: suspended task 191
119        rtems_task_delete: blocked task 195
120        rtems_task_delete: ready task 198
121        rtems_task_suspend: calling task 78
122        rtems_task_suspend: returns to caller 36
123        rtems_task_resume: task readied -- returns to caller 39
124        rtems_task_resume: task readied -- preempts caller 67
125        rtems_task_set_priority: obtain current priority 26
126        rtems_task_set_priority: returns to caller 59
127        rtems_task_set_priority: preempts caller 110
128        rtems_task_mode: obtain current mode 13
129        rtems_task_mode: no reschedule 15
130        rtems_task_mode: reschedule -- returns to caller 20
131        rtems_task_mode: reschedule -- preempts caller 67
132        rtems_task_get_note 28
133        rtems_task_set_note 27
134        rtems_task_wake_after: yield -- returns to caller 16
135        rtems_task_wake_after: yields -- preempts caller 65
136        rtems_task_wake_when 116
137       
138        Interrupt Manager
139       
140        interrupt entry overhead: returns to nested interrupt 10
141        interrupt entry overhead: returns to interrupted task 10
142        interrupt entry overhead: returns to preempting task 10
143        interrupt exit overhead: returns to nested interrupt 8
144        interrupt exit overhead: returns to interrupted task 10
145        interrupt exit overhead: returns to preempting task 59
146       
147        Clock Manager
148       
149        rtems_clock_set 73
150        rtems_clock_get 1
151        rtems_clock_tick 16
152       
153        Timer Manager
154       
155        rtems_timer_create 31
156        rtems_timer_ident 380
157        rtems_timer_delete: inactive 43
158        rtems_timer_delete: active 46
159        rtems_timer_fire_after: inactive 53
160        rtems_timer_fire_after: active 56
161        rtems_timer_fire_when: inactive 72
162        rtems_timer_fire_when: active 72
163        rtems_timer_reset: inactive 47
164        rtems_timer_reset: active 51
165        rtems_timer_cancel: inactive 25
166        rtems_timer_cancel: active 28
167       
168        Semaphore Manager
169       
170        rtems_semaphore_create 59
171        rtems_semaphore_ident 438
172        rtems_semaphore_delete 57
173        rtems_semaphore_obtain: available 31
174        rtems_semaphore_obtain: not available -- NO_WAIT 31
175        rtems_semaphore_obtain: not available -- caller blocks 108
176        rtems_semaphore_release: no waiting tasks 40
177        rtems_semaphore_release: task readied -- returns to caller 56
178        rtems_semaphore_release: task readied -- preempts caller 83
179       
180        Message Queue Manager
181       
182        rtems_message_queue_create 241
183        rtems_message_queue_ident 379
184        rtems_message_queue_delete 75
185        rtems_message_queue_send: no waiting tasks 72
186        rtems_message_queue_send: task readied -- returns to caller 72
187        rtems_message_queue_send: task readied -- preempts caller 99
188        rtems_message_queue_urgent: no waiting tasks 72
189        rtems_message_queue_urgent: task readied -- returns to caller 72
190        rtems_message_queue_urgent: task readied -- preempts caller 99
191        rtems_message_queue_broadcast: no waiting tasks 43
192        rtems_message_queue_broadcast: task readied -- returns to caller 82
193        rtems_message_queue_broadcast: task readied -- preempts caller 109
194        rtems_message_queue_receive: available 52
195        rtems_message_queue_receive: not available -- NO_WAIT 34
196        rtems_message_queue_receive: not available -- caller blocks 111
197        rtems_message_queue_flush: no messages flushed 25
198        rtems_message_queue_flush: messages flushed 34
199       
200        Event Manager
201       
202        rtems_event_send: no task readied 22
203        rtems_event_send: task readied -- returns to caller 50
204        rtems_event_send: task readied -- preempts caller 80
205        rtems_event_receive: obtain current events -1
206        rtems_event_receive: available 26
207        rtems_event_receive: not available -- NO_WAIT 22
208        rtems_event_receive: not available -- caller blocks 89
209       
210        Signal Manager
211       
212        rtems_signal_catch 16
213        rtems_signal_send: returns to caller 32
214        rtems_signal_send: signal to self 51
215        exit ASR overhead: returns to calling task 42
216        exit ASR overhead: returns to preempting task 58
217       
218        Partition Manager
219       
220        rtems_partition_create 74
221        rtems_partition_ident 379
222        rtems_partition_delete 40
223        rtems_partition_get_buffer: available 29
224        rtems_partition_get_buffer: not available 27
225        rtems_partition_return_buffer 34
226       
227        Region Manager
228       
229        rtems_region_create 63
230        rtems_region_ident 388
231        rtems_region_delete 40
232        rtems_region_get_segment: available 43
233        rtems_region_get_segment: not available -- NO_WAIT 40
234        rtems_region_get_segment: not available -- caller blocks 120
235        rtems_region_return_segment: no waiting tasks 48
236        rtems_region_return_segment: task readied -- returns to caller 98
237        rtems_region_return_segment: task readied -- preempts caller 125
238       
239        Dual-Ported Memory Manager
240       
241        rtems_port_create 38
242        rtems_port_ident 380
243        rtems_port_delete 40
244        rtems_port_internal_to_external 22
245        rtems_port_external_to_internal 22
246       
247        IO Manager
248       
249        rtems_io_initialize 4
250        rtems_io_open 1
251        rtems_io_close 1
252        rtems_io_read 1
253        rtems_io_write 1
254        rtems_io_control 1
255       
256        Rate Monotonic Manager
257       
258        rtems_rate_monotonic_create 36
259        rtems_rate_monotonic_ident 380
260        rtems_rate_monotonic_cancel 34
261        rtems_rate_monotonic_delete: active 51
262        rtems_rate_monotonic_delete: inactive 47
263        rtems_rate_monotonic_period: obtain status 27
264        rtems_rate_monotonic_period: initiate period -- returns to caller 50
265        rtems_rate_monotonic_period: conclude periods -- caller blocks 72
266
267Network tests:
268       TCP throughput (as measured by ttcp):
269               Receive: 1081 kbytes/sec
270               Transmit: 953 kbytes/sec
271
272Porting
273-------
274This board support package is written for a 68360 system similar to that
275described in chapter 9 of the Motorola MC68360 Quad Integrated Communication
276Processor 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
285The 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
Note: See TracBrowser for help on using the repository browser.