[457b6ae] | 1 | # |
---|
| 2 | # $Id$ |
---|
| 3 | # |
---|
| 4 | |
---|
| 5 | # |
---|
| 6 | # This package requires a version of GCC that has been modified |
---|
| 7 | # to support the `-m68360' argument. I have submitted the required changes |
---|
| 8 | # to the GCC maintainers. Should they choose to use a different argument |
---|
| 9 | # (-mcpu32 perhaps) this board support package will have to be changed. |
---|
| 10 | # |
---|
| 11 | |
---|
| 12 | # |
---|
| 13 | # Please send any comments, improvements, or bug reports to: |
---|
| 14 | # W. Eric Norum |
---|
| 15 | # Saskatchewan Accelerator Laboratory |
---|
| 16 | # 107 North Road |
---|
| 17 | # University of Saskatchewan |
---|
| 18 | # Saskatoon, Saskatchewan, CANADA |
---|
| 19 | # S7N 5C6 |
---|
| 20 | # eric@skatter.usask.ca |
---|
| 21 | # |
---|
| 22 | |
---|
| 23 | BSP NAME: gen68360 |
---|
| 24 | BOARD: home-built |
---|
| 25 | BUS: none |
---|
| 26 | CPU FAMILY: Motorola CPU32+ |
---|
| 27 | COPROCESSORS: none |
---|
| 28 | MODE: not applicable |
---|
| 29 | |
---|
| 30 | DEBUG MONITOR: none (Hardware provides BDM) |
---|
| 31 | |
---|
| 32 | PERIPHERALS |
---|
| 33 | =========== |
---|
| 34 | TIMERS: PIT, Watchdog, 4 general purpose, 16 RISC |
---|
| 35 | RESOLUTION: one microsecond |
---|
| 36 | SERIAL PORTS: 4 SCC, 2 SMC, 1 SPI |
---|
| 37 | REAL-TIME CLOCK: |
---|
| 38 | DMA: Each serial port, 2 general purpose |
---|
| 39 | VIDEO: none |
---|
| 40 | SCSI: none |
---|
| 41 | NETWORKING: Ethernet on SCC1. |
---|
| 42 | |
---|
| 43 | DRIVER INFORMATION |
---|
| 44 | ================== |
---|
| 45 | CLOCK DRIVER: Programmable Interval Timer |
---|
| 46 | IOSUPP DRIVER: Serial Management Controller 1 |
---|
| 47 | SHMSUPP: none |
---|
| 48 | TIMER DRIVER: Timer 1 |
---|
| 49 | |
---|
| 50 | STDIO |
---|
| 51 | ===== |
---|
| 52 | PORT: SMC1 |
---|
| 53 | ELECTRICAL: EIA-232 (if board supplies level shifter) |
---|
| 54 | BAUD: 9600 |
---|
| 55 | BITS PER CHARACTER: 8 |
---|
| 56 | PARITY: None |
---|
| 57 | STOP BITS: 1 |
---|
| 58 | |
---|
| 59 | NOTES |
---|
| 60 | ===== |
---|
| 61 | |
---|
| 62 | Board description |
---|
| 63 | ----------------- |
---|
| 64 | clock rate: 25 MHz |
---|
| 65 | bus width: 8-bit PROM, 32-bit DRAM |
---|
| 66 | ROM: To 1 MByte, 180 nsec (3 wait states), chip select 0 |
---|
| 67 | RAM: 4 MByte DRAM SIMM, 60 nsec (0 wait states), parity |
---|
| 68 | |
---|
| 69 | Host System |
---|
| 70 | ----------- |
---|
| 71 | NEXTSTEP 3.3 (Intel and Motorola), Solaris 2.5 |
---|
| 72 | gcc-2.7.2 |
---|
| 73 | binutils-2.6 |
---|
| 74 | |
---|
| 75 | Verification |
---|
| 76 | ------------ |
---|
| 77 | Single processor tests: Passed |
---|
| 78 | Multi-processort tests: not applicable |
---|
| 79 | Timing tests: |
---|
| 80 | Context Switch |
---|
| 81 | |
---|
| 82 | context switch: self 10 |
---|
| 83 | context switch: to another task 11 |
---|
| 84 | context switch: no floating point contexts 40 |
---|
| 85 | fp context switch: restore 1st FP task 41 |
---|
| 86 | fp context switch: save initialized, restore initialized 14 |
---|
| 87 | fp context switch: save idle, restore initialized 14 |
---|
| 88 | fp context switch: save idle, restore idle 43 |
---|
| 89 | |
---|
| 90 | Task Manager |
---|
| 91 | |
---|
| 92 | rtems_task_create 133 |
---|
| 93 | rtems_task_ident 351 |
---|
| 94 | rtems_task_start 77 |
---|
| 95 | rtems_task_restart: calling task 93 |
---|
| 96 | rtems_task_restart: suspended task -- returns to caller 90 |
---|
| 97 | rtems_task_restart: blocked task -- returns to caller 120 |
---|
| 98 | rtems_task_restart: ready task -- returns to caller 92 |
---|
| 99 | rtems_task_restart: suspended task -- preempts caller 121 |
---|
| 100 | rtems_task_restart: blocked task -- preempts caller 143 |
---|
| 101 | rtems_task_restart: ready task -- preempts caller 138 |
---|
| 102 | rtems_task_delete: calling task 158 |
---|
| 103 | rtems_task_delete: suspended task 129 |
---|
| 104 | rtems_task_delete: blocked task 134 |
---|
| 105 | rtems_task_delete: ready task 136 |
---|
| 106 | rtems_task_suspend: calling task 71 |
---|
| 107 | rtems_task_suspend: returns to caller 47 |
---|
| 108 | rtems_task_resume: task readied -- returns to caller 48 |
---|
| 109 | rtems_task_resume: task readied -- preempts caller 67 |
---|
| 110 | rtems_task_set_priority: obtain current priority 36 |
---|
| 111 | rtems_task_set_priority: returns to caller 65 |
---|
| 112 | rtems_task_set_priority: preempts caller 102 |
---|
| 113 | rtems_task_mode: obtain current mode 13 |
---|
| 114 | rtems_task_mode: no reschedule 15 |
---|
| 115 | rtems_task_mode: reschedule -- returns to caller 22 |
---|
| 116 | rtems_task_mode: reschedule -- preempts caller 61 |
---|
| 117 | rtems_task_get_note 38 |
---|
| 118 | rtems_task_set_note 37 |
---|
| 119 | rtems_task_wake_after: yield -- returns to caller 22 |
---|
| 120 | rtems_task_wake_after: yields -- preempts caller 56 |
---|
| 121 | rtems_task_wake_when 110 |
---|
| 122 | |
---|
| 123 | Interrupt Manager |
---|
| 124 | |
---|
| 125 | interrupt entry overhead: returns to nested interrupt 8 |
---|
| 126 | interrupt entry overhead: returns to interrupted task 8 |
---|
| 127 | interrupt entry overhead: returns to preempting task 8 |
---|
| 128 | interrupt exit overhead: returns to nested interrupt 7 |
---|
| 129 | interrupt exit overhead: returns to interrupted task 8 |
---|
| 130 | interrupt exit overhead: returns to preempting task 52 |
---|
| 131 | |
---|
| 132 | Clock Manager |
---|
| 133 | |
---|
| 134 | rtems_clock_set 82 |
---|
| 135 | rtems_clock_get 2 |
---|
| 136 | rtems_clock_tick 15 |
---|
| 137 | |
---|
| 138 | Timer Manager |
---|
| 139 | |
---|
| 140 | rtems_timer_create 33 |
---|
| 141 | rtems_timer_ident 343 |
---|
| 142 | rtems_timer_delete: inactive 47 |
---|
| 143 | rtems_timer_delete: active 50 |
---|
| 144 | rtems_timer_fire_after: inactive 59 |
---|
| 145 | rtems_timer_fire_after: active 63 |
---|
| 146 | rtems_timer_fire_when: inactive 83 |
---|
| 147 | rtems_timer_fire_when: active 83 |
---|
| 148 | rtems_timer_reset: inactive 55 |
---|
| 149 | rtems_timer_reset: active 58 |
---|
| 150 | rtems_timer_cancel: inactive 35 |
---|
| 151 | rtems_timer_cancel: active 38 |
---|
| 152 | |
---|
| 153 | Semaphore Manager |
---|
| 154 | |
---|
| 155 | rtems_semaphore_create 62 |
---|
| 156 | rtems_semaphore_ident 368 |
---|
| 157 | rtems_semaphore_delete 61 |
---|
| 158 | rtems_semaphore_obtain: available 42 |
---|
| 159 | rtems_semaphore_obtain: not available -- NO_WAIT 42 |
---|
| 160 | rtems_semaphore_obtain: not available -- caller blocks 105 |
---|
| 161 | rtems_semaphore_release: no waiting tasks 46 |
---|
| 162 | rtems_semaphore_release: task readied -- returns to caller 64 |
---|
| 163 | rtems_semaphore_release: task readied -- preempts caller 84 |
---|
| 164 | |
---|
| 165 | Message Queue Manager |
---|
| 166 | |
---|
| 167 | rtems_message_queue_create 240 |
---|
| 168 | rtems_message_queue_ident 342 |
---|
| 169 | rtems_message_queue_delete 79 |
---|
| 170 | rtems_message_queue_send: no waiting tasks 93 |
---|
| 171 | rtems_message_queue_send: task readied -- returns to caller 96 |
---|
| 172 | rtems_message_queue_send: task readied -- preempts caller 116 |
---|
| 173 | rtems_message_queue_urgent: no waiting tasks 93 |
---|
| 174 | rtems_message_queue_urgent: task readied -- returns to caller 97 |
---|
| 175 | rtems_message_queue_urgent: task readied -- preempts caller 117 |
---|
| 176 | rtems_message_queue_broadcast: no waiting tasks 54 |
---|
| 177 | rtems_message_queue_broadcast: task readied -- returns to caller 106 |
---|
| 178 | rtems_message_queue_broadcast: task readied -- preempts caller 126 |
---|
| 179 | rtems_message_queue_receive: available 79 |
---|
| 180 | rtems_message_queue_receive: not available -- NO_WAIT 48 |
---|
| 181 | rtems_message_queue_receive: not available -- caller blocks 111 |
---|
| 182 | rtems_message_queue_flush: no messages flushed 35 |
---|
| 183 | rtems_message_queue_flush: messages flushed 44 |
---|
| 184 | |
---|
| 185 | Event Manager |
---|
| 186 | |
---|
| 187 | rtems_event_send: no task readied 30 |
---|
| 188 | rtems_event_send: task readied -- returns to caller 59 |
---|
| 189 | rtems_event_send: task readied -- preempts caller 81 |
---|
| 190 | rtems_event_receive: obtain current events 1 |
---|
| 191 | rtems_event_receive: available 34 |
---|
| 192 | rtems_event_receive: not available -- NO_WAIT 31 |
---|
| 193 | rtems_event_receive: not available -- caller blocks 84 |
---|
| 194 | |
---|
| 195 | Signal Manager |
---|
| 196 | |
---|
| 197 | rtems_signal_catch 24 |
---|
| 198 | rtems_signal_send: returns to caller 42 |
---|
| 199 | rtems_signal_send: signal to self 47 |
---|
| 200 | exit ASR overhead: returns to calling task 33 |
---|
| 201 | exit ASR overhead: returns to preempting task 58 |
---|
| 202 | |
---|
| 203 | Partition Manager |
---|
| 204 | |
---|
| 205 | rtems_partition_create 78 |
---|
| 206 | rtems_partition_ident 342 |
---|
| 207 | rtems_partition_delete 46 |
---|
| 208 | rtems_partition_get_buffer: available 40 |
---|
| 209 | rtems_partition_get_buffer: not available 39 |
---|
| 210 | rtems_partition_return_buffer 47 |
---|
| 211 | |
---|
| 212 | Region Manager |
---|
| 213 | |
---|
| 214 | rtems_region_create 65 |
---|
| 215 | rtems_region_ident 349 |
---|
| 216 | rtems_region_delete 45 |
---|
| 217 | rtems_region_get_segment: available 55 |
---|
| 218 | rtems_region_get_segment: not available -- NO_WAIT 52 |
---|
| 219 | rtems_region_get_segment: not available -- caller blocks 119 |
---|
| 220 | rtems_region_return_segment: no waiting tasks 57 |
---|
| 221 | rtems_region_return_segment: task readied -- returns to caller 106 |
---|
| 222 | rtems_region_return_segment: task readied -- preempts caller 127 |
---|
| 223 | |
---|
| 224 | Dual-Ported Memory Manager |
---|
| 225 | |
---|
| 226 | rtems_port_create 40 |
---|
| 227 | rtems_port_ident 342 |
---|
| 228 | rtems_port_delete 44 |
---|
| 229 | rtems_port_internal_to_external 32 |
---|
| 230 | rtems_port_external_to_internal 32 |
---|
| 231 | |
---|
| 232 | IO Manager |
---|
| 233 | |
---|
| 234 | rtems_io_initialize 4 |
---|
| 235 | rtems_io_open 1 |
---|
| 236 | rtems_io_close 1 |
---|
| 237 | rtems_io_read 1 |
---|
| 238 | rtems_io_write 1 |
---|
| 239 | rtems_io_control 1 |
---|
| 240 | |
---|
| 241 | Rate Monotonic Manager |
---|
| 242 | |
---|
| 243 | rtems_rate_monotonic_create 39 |
---|
| 244 | rtems_rate_monotonic_ident 343 |
---|
| 245 | rtems_rate_monotonic_cancel 43 |
---|
| 246 | rtems_rate_monotonic_delete: active 54 |
---|
| 247 | rtems_rate_monotonic_delete: inactive 52 |
---|
| 248 | rtems_rate_monotonic_period: obtain status 37 |
---|
| 249 | rtems_rate_monotonic_period: initiate period -- returns to caller 58 |
---|
| 250 | rtems_rate_monotonic_period: conclude periods -- caller blocks 75 |
---|
| 251 | |
---|
| 252 | Porting |
---|
| 253 | ------- |
---|
| 254 | This board support package is written for a 68360 system similar to that |
---|
| 255 | described in chapter 9 of the Motorola MC68360 Quad Integrated Communication |
---|
| 256 | Processor Users' Manual. The salient details of this hardware are: |
---|
| 257 | |
---|
| 258 | 25 MHz external clock |
---|
| 259 | DRAM address multiplexing provided by 68360 |
---|
| 260 | 8-bit 180nsec PROM to CS0* |
---|
| 261 | 4 MBytes of 60 nsec parity DRAM (1Mx36) to RAS1*/CAS1* |
---|
| 262 | Console serial port on SMC1 |
---|
| 263 | |
---|
| 264 | The board support package has been tested with a home-built board and with an |
---|
| 265 | ACE360A board produced by: |
---|
| 266 | Atlas Computer Equipment |
---|
| 267 | 703 Colina Lane |
---|
| 268 | Santa Barbara, CA 93103 |
---|