Back to home page

LXR

 
 

    


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