Warning, /bsps/m68k/gen68360/README.md is written in an unsupported language. File is not indexed.
0001 gen68360
0002 ========
0003
0004 This package requires a version of GCC that supports the `-mcpu32` option.
0005
0006 Copyright (c) 1996 Eric Norum <eric@norum.ca>
0007
0008 This board support package works with several different versions of
0009 MC68360 systems. See the conditional-compile tests in startup/init68360.c
0010 for examples.
0011
0012 Decisions made at compile time include:
0013 - If the CPU is a member of the 68040 family, the BSP is
0014 compiled for a generic 68040/68360 system as described
0015 in Chapter 9 of the MC68360 User's Manual. This version
0016 can be used with the Arnewsh SBC360 card.
0017 - If the preprocessor symbol M68360_ATLAS_HSB is defined,
0018 the BSP is compiled for an Atlas HSB card.
0019 - If the preprocessor symbol M68360_IMD_PGH is defined,
0020 the BSP is compiled for an IMD PGH360 card.
0021 - Otherwise, the BSP is compiled for a generic 68360 system
0022 as described in Chapter 9 of the MC68360 User's Manual. This
0023 version works with the Atlas ACE360 card.
0024
0025 ```
0026 BSP NAME: gen68360 or gen68360_040
0027 BOARD: Generic 68360 as described in Motorola MC68360 User's Manual
0028 BOARD: Atlas Computer Equipment Inc. High Speed Bridge (HSB)
0029 BOARD: Atlas Computer Equipment Inc. Advanced Communication Engine (ACE)
0030 BOARD: Arnewsh SBC360 68040/68360 card
0031 BOARD: IMD PGH Board (custom)
0032 BUS: none
0033 CPU FAMILY: Motorola CPU32+, Motorola 68040
0034 COPROCESSORS: none
0035 MODE: not applicable
0036
0037 DEBUG MONITOR: none (Hardware provides BDM)
0038 ```
0039
0040 PERIPHERALS
0041 -----------
0042 ```
0043 TIMERS: PIT, Watchdog, 4 general purpose, 16 RISC
0044 RESOLUTION: one microsecond
0045 SERIAL PORTS: 4 SCC, 2 SMC, 1 SPI
0046 REAL-TIME CLOCK:
0047 DMA: Each serial port, 2 general purpose
0048 VIDEO: none
0049 SCSI: none
0050 NETWORKING: Ethernet on SCC1.
0051 ```
0052
0053 DRIVER INFORMATION
0054 ------------------
0055 ```
0056 CLOCK DRIVER: Programmable Interval Timer
0057 IOSUPP DRIVER: Serial Management Controller 1
0058 SHMSUPP: none
0059 TIMER DRIVER: Timer 1
0060 ```
0061
0062 STDIO
0063 -----
0064 ```
0065 PORT: SMC1
0066 ELECTRICAL: EIA-232 (if board supplies level shifter)
0067 BAUD: 9600
0068 BITS PER CHARACTER: 8
0069 PARITY: None
0070 STOP BITS: 1
0071 ```
0072
0073 Board description
0074 -----------------
0075 clock rate: 25 MHz
0076 bus width: 8-bit PROM/FLASH, 32-bit DRAM
0077 ROM: To 1 MByte, 180 nsec (3 wait states), chip select 0
0078 RAM: 4 or 16 MBytes of 60 nsec parity DRAM (1Mx36) to RAS1*/CAS1*
0079
0080 Board description (IMD PGH)
0081 ---------------------------
0082 clock rate: 25 MHz
0083 bus width: 8-bit PROM/FLASH, 32-bit DRAM
0084 ROM: 512KByte, 180 nsec (3 wait states), chip select 0
0085 RAM: 16 MBytes of 60 nsec no-parity DRAM (1Mx32) to RAS1*/CAS1*
0086
0087 Host System
0088 -----------
0089 OPENSTEP 4.2 (Intel and Motorola), Solaris 2.5, Linux 2.0.29
0090
0091 Verification (Standalone 68360)
0092 -------------------------------
0093 ```
0094 Single processor tests: Passed
0095 Multi-processort tests: not applicable
0096 Timing tests:
0097 Context Switch
0098
0099 context switch: self 10
0100 context switch: to another task 11
0101 context switch: no floating point contexts 38
0102 fp context switch: restore 1st FP task 39
0103 fp context switch: save initialized, restore initialized 14
0104 fp context switch: save idle, restore initialized 15
0105 fp context switch: save idle, restore idle 41
0106
0107 Task Manager
0108
0109 rtems_task_create 202
0110 rtems_task_ident 390
0111 rtems_task_start 71
0112 rtems_task_restart: calling task 99
0113 rtems_task_restart: suspended task -- returns to caller 86
0114 rtems_task_restart: blocked task -- returns to caller 116
0115 rtems_task_restart: ready task -- returns to caller 88
0116 rtems_task_restart: suspended task -- preempts caller 132
0117 rtems_task_restart: blocked task -- preempts caller 153
0118 rtems_task_restart: ready task -- preempts caller 149
0119 rtems_task_delete: calling task 236
0120 rtems_task_delete: suspended task 191
0121 rtems_task_delete: blocked task 195
0122 rtems_task_delete: ready task 198
0123 rtems_task_suspend: calling task 78
0124 rtems_task_suspend: returns to caller 36
0125 rtems_task_resume: task readied -- returns to caller 39
0126 rtems_task_resume: task readied -- preempts caller 67
0127 rtems_task_set_priority: obtain current priority 26
0128 rtems_task_set_priority: returns to caller 59
0129 rtems_task_set_priority: preempts caller 110
0130 rtems_task_mode: obtain current mode 13
0131 rtems_task_mode: no reschedule 15
0132 rtems_task_mode: reschedule -- returns to caller 20
0133 rtems_task_mode: reschedule -- preempts caller 67
0134 rtems_task_wake_after: yield -- returns to caller 16
0135 rtems_task_wake_after: yields -- preempts caller 65
0136 rtems_task_wake_when 116
0137
0138 Interrupt Manager
0139
0140 interrupt entry overhead: returns to nested interrupt 10
0141 interrupt entry overhead: returns to interrupted task 10
0142 interrupt entry overhead: returns to preempting task 10
0143 interrupt exit overhead: returns to nested interrupt 8
0144 interrupt exit overhead: returns to interrupted task 10
0145 interrupt exit overhead: returns to preempting task 59
0146
0147 Clock Manager
0148
0149 rtems_clock_set 73
0150 rtems_clock_get 1
0151 rtems_clock_tick 16
0152
0153 Timer Manager
0154
0155 rtems_timer_create 31
0156 rtems_timer_ident 380
0157 rtems_timer_delete: inactive 43
0158 rtems_timer_delete: active 46
0159 rtems_timer_fire_after: inactive 53
0160 rtems_timer_fire_after: active 56
0161 rtems_timer_fire_when: inactive 72
0162 rtems_timer_fire_when: active 72
0163 rtems_timer_reset: inactive 47
0164 rtems_timer_reset: active 51
0165 rtems_timer_cancel: inactive 25
0166 rtems_timer_cancel: active 28
0167
0168 Semaphore Manager
0169
0170 rtems_semaphore_create 59
0171 rtems_semaphore_ident 438
0172 rtems_semaphore_delete 57
0173 rtems_semaphore_obtain: available 31
0174 rtems_semaphore_obtain: not available -- NO_WAIT 31
0175 rtems_semaphore_obtain: not available -- caller blocks 108
0176 rtems_semaphore_release: no waiting tasks 40
0177 rtems_semaphore_release: task readied -- returns to caller 56
0178 rtems_semaphore_release: task readied -- preempts caller 83
0179
0180 Message Queue Manager
0181
0182 rtems_message_queue_create 241
0183 rtems_message_queue_ident 379
0184 rtems_message_queue_delete 75
0185 rtems_message_queue_send: no waiting tasks 72
0186 rtems_message_queue_send: task readied -- returns to caller 72
0187 rtems_message_queue_send: task readied -- preempts caller 99
0188 rtems_message_queue_urgent: no waiting tasks 72
0189 rtems_message_queue_urgent: task readied -- returns to caller 72
0190 rtems_message_queue_urgent: task readied -- preempts caller 99
0191 rtems_message_queue_broadcast: no waiting tasks 43
0192 rtems_message_queue_broadcast: task readied -- returns to caller 82
0193 rtems_message_queue_broadcast: task readied -- preempts caller 109
0194 rtems_message_queue_receive: available 52
0195 rtems_message_queue_receive: not available -- NO_WAIT 34
0196 rtems_message_queue_receive: not available -- caller blocks 111
0197 rtems_message_queue_flush: no messages flushed 25
0198 rtems_message_queue_flush: messages flushed 34
0199
0200 Event Manager
0201
0202 rtems_event_send: no task readied 22
0203 rtems_event_send: task readied -- returns to caller 50
0204 rtems_event_send: task readied -- preempts caller 80
0205 rtems_event_receive: obtain current events -1
0206 rtems_event_receive: available 26
0207 rtems_event_receive: not available -- NO_WAIT 22
0208 rtems_event_receive: not available -- caller blocks 89
0209
0210 Signal Manager
0211
0212 rtems_signal_catch 16
0213 rtems_signal_send: returns to caller 32
0214 rtems_signal_send: signal to self 51
0215 exit ASR overhead: returns to calling task 42
0216 exit ASR overhead: returns to preempting task 58
0217
0218 Partition Manager
0219
0220 rtems_partition_create 74
0221 rtems_partition_ident 379
0222 rtems_partition_delete 40
0223 rtems_partition_get_buffer: available 29
0224 rtems_partition_get_buffer: not available 27
0225 rtems_partition_return_buffer 34
0226
0227 Region Manager
0228
0229 rtems_region_create 63
0230 rtems_region_ident 388
0231 rtems_region_delete 40
0232 rtems_region_get_segment: available 43
0233 rtems_region_get_segment: not available -- NO_WAIT 40
0234 rtems_region_get_segment: not available -- caller blocks 120
0235 rtems_region_return_segment: no waiting tasks 48
0236 rtems_region_return_segment: task readied -- returns to caller 98
0237 rtems_region_return_segment: task readied -- preempts caller 125
0238
0239 Dual-Ported Memory Manager
0240
0241 rtems_port_create 38
0242 rtems_port_ident 380
0243 rtems_port_delete 40
0244 rtems_port_internal_to_external 22
0245 rtems_port_external_to_internal 22
0246
0247 IO Manager
0248
0249 rtems_io_initialize 4
0250 rtems_io_open 1
0251 rtems_io_close 1
0252 rtems_io_read 1
0253 rtems_io_write 1
0254 rtems_io_control 1
0255
0256 Rate Monotonic Manager
0257
0258 rtems_rate_monotonic_create 36
0259 rtems_rate_monotonic_ident 380
0260 rtems_rate_monotonic_cancel 34
0261 rtems_rate_monotonic_delete: active 51
0262 rtems_rate_monotonic_delete: inactive 47
0263 rtems_rate_monotonic_period: obtain status 27
0264 rtems_rate_monotonic_period: initiate period -- returns to caller 50
0265 rtems_rate_monotonic_period: conclude periods -- caller blocks 72
0266
0267 Network tests:
0268 TCP throughput (as measured by ttcp):
0269 Receive: 1081 kbytes/sec
0270 Transmit: 953 kbytes/sec
0271 ```
0272
0273 Porting
0274 -------
0275 This board support package is written for a 68360 system similar to that
0276 described in chapter 9 of the Motorola MC68360 Quad Integrated Communication
0277 Processor Users' Manual. The salient features of this hardware are:
0278
0279 25 MHz external clock
0280 DRAM address multiplexing provided by 68360
0281 8-bit 180nsec PROM to CS0*
0282 4 MBytes of 60 nsec parity DRAM (1Mx36) to RAS1*/CAS1*
0283 Console serial port on SMC1
0284 Ethernet interface on SCC1
0285
0286 The board support package has been tested with:
0287 A home-built 68360 board
0288 An ACE360A and an HSB board produced by:
0289 Atlas Computer Equipment
0290 703 Colina Lane
0291 Santa Barbara, CA 93103
0292 A 68040/68360 board (SBC360) produced by:
0293 Arnewsh Inc.
0294 P.O. Box 270352
0295 Fort Collins, CO 80527-0352
0296 A custom 68360 board (PGH360) produced by IMD