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

4.104.114.84.95
Last change on this file since 7068e246 was 110136a, checked in by Joel Sherrill <joel.sherrill@…>, on 01/03/00 at 16:53:07

Updated times.

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