source: rtems/bsps/m68k/gen68360/README @ 753873e5

Last change on this file since 753873e5 was 753873e5, checked in by Joel Sherrill <joel@…>, on 03/22/22 at 20:03:30

Update Eric Norum contact info and start to normalize file headers

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