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

4.104.114.84.95
Last change on this file since f8f370b6 was f8f370b6, checked in by Joel Sherrill <joel.sherrill@…>, on Apr 16, 1997 at 5:45:35 PM

Update from Eric Norum.

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