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

4.104.114.84.95
Last change on this file since 28e7d7fa was 28e7d7fa, checked in by Joel Sherrill <joel.sherrill@…>, on 08/20/98 at 22:04:22

Patches from Eric Norum

  • Property mode set to 100644
File size: 9.3 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.  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
42BSP NAME:           gen68360 or gen68360_040
43BOARD:              Generic 68360 as described in Motorola MC68360 User's Manual
44BOARD:              Atlas Computer Equipment Inc. High Speed Bridge (HSB)
45BOARD:              Atlas Computer Equipment Inc. Advanced Communication Engine (ACE)
46BOARD:              Arnewsh SBC360 68040/68360 card
47BUS:                none
48CPU FAMILY:         Motorola CPU32+, Motorola 68040
49COPROCESSORS:       none
50MODE:               not applicable
51
52DEBUG MONITOR:      none (Hardware provides BDM)
53
54PERIPHERALS
55===========
56TIMERS:             PIT, Watchdog, 4 general purpose, 16 RISC
57  RESOLUTION:       one microsecond
58SERIAL PORTS:       4 SCC, 2 SMC, 1 SPI
59REAL-TIME CLOCK:
60DMA:                Each serial port, 2 general purpose
61VIDEO:              none
62SCSI:               none
63NETWORKING:         Ethernet on SCC1.
64
65DRIVER INFORMATION
66==================
67CLOCK DRIVER:       Programmable Interval Timer
68IOSUPP DRIVER:      Serial Management Controller 1
69SHMSUPP:            none
70TIMER DRIVER:       Timer 1
71
72STDIO
73=====
74PORT:               SMC1
75ELECTRICAL:         EIA-232 (if board supplies level shifter)
76BAUD:               9600
77BITS PER CHARACTER: 8
78PARITY:             None
79STOP BITS:          1
80
81NOTES
82=====
83
84Board description
85-----------------
86clock rate:     25 MHz
87bus width:      8-bit PROM, 32-bit DRAM
88ROM:            To 1 MByte, 180 nsec (3 wait states), chip select 0
89RAM:            1 to 16 MByte DRAM SIMM, 60 nsec (0 wait states), parity or nonparity
90
91Host System
92-----------
93OPENSTEP 4.2 (Intel and Motorola), Solaris 2.5, Linux 2.0.29
94
95Verification (Standalone 68360)
96-------------------------------
97Single processor tests:  Passed
98Multi-processort tests:  not applicable
99Timing 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
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.