diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-25 15:06:08 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-26 07:17:57 +0200 |
commit | eb36d1198cdf9dc1e2f776ef6e1e38755f6d13c5 (patch) | |
tree | 14177ad7a58c06a3c537d1e55dae7bc369a1a4b9 /bsps/m68k/gen68360 | |
parent | bsps: Remove unmaintained times files (diff) | |
download | rtems-eb36d1198cdf9dc1e2f776ef6e1e38755f6d13c5.tar.bz2 |
bsps: Move documentation, etc. files to bsps
This patch is a part of the BSP source reorganization.
Update #3285.
Diffstat (limited to 'bsps/m68k/gen68360')
-rw-r--r-- | bsps/m68k/gen68360/README | 299 |
1 files changed, 299 insertions, 0 deletions
diff --git a/bsps/m68k/gen68360/README b/bsps/m68k/gen68360/README new file mode 100644 index 0000000000..0c595deb77 --- /dev/null +++ b/bsps/m68k/gen68360/README @@ -0,0 +1,299 @@ +# +# This package requires a version of GCC that supports the `-mcpu32' option. +# + +# +# Please send any comments, improvements, or bug reports to: +# W. Eric Norum +# Deparment of Electrical Engineering +# 53 Campus Driver +# University of Saskatchewan +# Saskatoon, Saskatchewan, CANADA +# S7N 5A9 +# eric.norum@usask.ca +# + +# +# This board support package works with several different versions of +# MC68360 systems. See the conditional-compile tests in startup/init68360.c +# for examples. +# +# Decisions made at compile time include: +# - If the CPU is a member of the 68040 family, the BSP is +# compiled for a generic 68040/68360 system as described +# in Chapter 9 of the MC68360 User's Manual. This version +# can be used with the Arnewsh SBC360 card. +# - If the preprocessor symbol M68360_ATLAS_HSB is defined, +# the BSP is compiled for an Atlas HSB card. +# - If the preprocessor symbol M68360_IMD_PGH is defined, +# the BSP is compiled for an IMD PGH360 card. +# - Otherwise, the BSP is compiled for a generic 68360 system +# as described in Chapter 9 of the MC68360 User's Manual. This +# version works with the Atlas ACE360 card. +# + +BSP NAME: gen68360 or gen68360_040 +BOARD: Generic 68360 as described in Motorola MC68360 User's Manual +BOARD: Atlas Computer Equipment Inc. High Speed Bridge (HSB) +BOARD: Atlas Computer Equipment Inc. Advanced Communication Engine (ACE) +BOARD: Arnewsh SBC360 68040/68360 card +BOARD: IMD PGH Board (custom) +BUS: none +CPU FAMILY: Motorola CPU32+, Motorola 68040 +COPROCESSORS: none +MODE: not applicable + +DEBUG MONITOR: none (Hardware provides BDM) + +PERIPHERALS +=========== +TIMERS: PIT, Watchdog, 4 general purpose, 16 RISC + RESOLUTION: one microsecond +SERIAL PORTS: 4 SCC, 2 SMC, 1 SPI +REAL-TIME CLOCK: +DMA: Each serial port, 2 general purpose +VIDEO: none +SCSI: none +NETWORKING: Ethernet on SCC1. + +DRIVER INFORMATION +================== +CLOCK DRIVER: Programmable Interval Timer +IOSUPP DRIVER: Serial Management Controller 1 +SHMSUPP: none +TIMER DRIVER: Timer 1 + +STDIO +===== +PORT: SMC1 +ELECTRICAL: EIA-232 (if board supplies level shifter) +BAUD: 9600 +BITS PER CHARACTER: 8 +PARITY: None +STOP BITS: 1 + +NOTES +===== + +Board description +----------------- +clock rate: 25 MHz +bus width: 8-bit PROM/FLASH, 32-bit DRAM +ROM: To 1 MByte, 180 nsec (3 wait states), chip select 0 +RAM: 4 or 16 MBytes of 60 nsec parity DRAM (1Mx36) to RAS1*/CAS1* + +Board description (IMD PGH) +--------------------------- +clock rate: 25 MHz +bus width: 8-bit PROM/FLASH, 32-bit DRAM +ROM: 512KByte, 180 nsec (3 wait states), chip select 0 +RAM: 16 MBytes of 60 nsec no-parity DRAM (1Mx32) to RAS1*/CAS1* + +Host System +----------- +OPENSTEP 4.2 (Intel and Motorola), Solaris 2.5, Linux 2.0.29 + +Verification (Standalone 68360) +------------------------------- +Single processor tests: Passed +Multi-processort tests: not applicable +Timing tests: + Context Switch + + context switch: self 10 + context switch: to another task 11 + context switch: no floating point contexts 38 + fp context switch: restore 1st FP task 39 + fp context switch: save initialized, restore initialized 14 + fp context switch: save idle, restore initialized 15 + fp context switch: save idle, restore idle 41 + + Task Manager + + rtems_task_create 202 + rtems_task_ident 390 + rtems_task_start 71 + rtems_task_restart: calling task 99 + rtems_task_restart: suspended task -- returns to caller 86 + rtems_task_restart: blocked task -- returns to caller 116 + rtems_task_restart: ready task -- returns to caller 88 + rtems_task_restart: suspended task -- preempts caller 132 + rtems_task_restart: blocked task -- preempts caller 153 + rtems_task_restart: ready task -- preempts caller 149 + rtems_task_delete: calling task 236 + rtems_task_delete: suspended task 191 + rtems_task_delete: blocked task 195 + rtems_task_delete: ready task 198 + rtems_task_suspend: calling task 78 + rtems_task_suspend: returns to caller 36 + rtems_task_resume: task readied -- returns to caller 39 + rtems_task_resume: task readied -- preempts caller 67 + rtems_task_set_priority: obtain current priority 26 + rtems_task_set_priority: returns to caller 59 + rtems_task_set_priority: preempts caller 110 + rtems_task_mode: obtain current mode 13 + rtems_task_mode: no reschedule 15 + rtems_task_mode: reschedule -- returns to caller 20 + rtems_task_mode: reschedule -- preempts caller 67 + rtems_task_wake_after: yield -- returns to caller 16 + rtems_task_wake_after: yields -- preempts caller 65 + rtems_task_wake_when 116 + + Interrupt Manager + + interrupt entry overhead: returns to nested interrupt 10 + interrupt entry overhead: returns to interrupted task 10 + interrupt entry overhead: returns to preempting task 10 + interrupt exit overhead: returns to nested interrupt 8 + interrupt exit overhead: returns to interrupted task 10 + interrupt exit overhead: returns to preempting task 59 + + Clock Manager + + rtems_clock_set 73 + rtems_clock_get 1 + rtems_clock_tick 16 + + Timer Manager + + rtems_timer_create 31 + rtems_timer_ident 380 + rtems_timer_delete: inactive 43 + rtems_timer_delete: active 46 + rtems_timer_fire_after: inactive 53 + rtems_timer_fire_after: active 56 + rtems_timer_fire_when: inactive 72 + rtems_timer_fire_when: active 72 + rtems_timer_reset: inactive 47 + rtems_timer_reset: active 51 + rtems_timer_cancel: inactive 25 + rtems_timer_cancel: active 28 + + Semaphore Manager + + rtems_semaphore_create 59 + rtems_semaphore_ident 438 + rtems_semaphore_delete 57 + rtems_semaphore_obtain: available 31 + rtems_semaphore_obtain: not available -- NO_WAIT 31 + rtems_semaphore_obtain: not available -- caller blocks 108 + rtems_semaphore_release: no waiting tasks 40 + rtems_semaphore_release: task readied -- returns to caller 56 + rtems_semaphore_release: task readied -- preempts caller 83 + + Message Queue Manager + + rtems_message_queue_create 241 + rtems_message_queue_ident 379 + rtems_message_queue_delete 75 + rtems_message_queue_send: no waiting tasks 72 + rtems_message_queue_send: task readied -- returns to caller 72 + rtems_message_queue_send: task readied -- preempts caller 99 + rtems_message_queue_urgent: no waiting tasks 72 + rtems_message_queue_urgent: task readied -- returns to caller 72 + rtems_message_queue_urgent: task readied -- preempts caller 99 + rtems_message_queue_broadcast: no waiting tasks 43 + rtems_message_queue_broadcast: task readied -- returns to caller 82 + rtems_message_queue_broadcast: task readied -- preempts caller 109 + rtems_message_queue_receive: available 52 + rtems_message_queue_receive: not available -- NO_WAIT 34 + rtems_message_queue_receive: not available -- caller blocks 111 + rtems_message_queue_flush: no messages flushed 25 + rtems_message_queue_flush: messages flushed 34 + + Event Manager + + rtems_event_send: no task readied 22 + rtems_event_send: task readied -- returns to caller 50 + rtems_event_send: task readied -- preempts caller 80 + rtems_event_receive: obtain current events -1 + rtems_event_receive: available 26 + rtems_event_receive: not available -- NO_WAIT 22 + rtems_event_receive: not available -- caller blocks 89 + + Signal Manager + + rtems_signal_catch 16 + rtems_signal_send: returns to caller 32 + rtems_signal_send: signal to self 51 + exit ASR overhead: returns to calling task 42 + exit ASR overhead: returns to preempting task 58 + + Partition Manager + + rtems_partition_create 74 + rtems_partition_ident 379 + rtems_partition_delete 40 + rtems_partition_get_buffer: available 29 + rtems_partition_get_buffer: not available 27 + rtems_partition_return_buffer 34 + + Region Manager + + rtems_region_create 63 + rtems_region_ident 388 + rtems_region_delete 40 + rtems_region_get_segment: available 43 + rtems_region_get_segment: not available -- NO_WAIT 40 + rtems_region_get_segment: not available -- caller blocks 120 + rtems_region_return_segment: no waiting tasks 48 + rtems_region_return_segment: task readied -- returns to caller 98 + rtems_region_return_segment: task readied -- preempts caller 125 + + Dual-Ported Memory Manager + + rtems_port_create 38 + rtems_port_ident 380 + rtems_port_delete 40 + rtems_port_internal_to_external 22 + rtems_port_external_to_internal 22 + + IO Manager + + rtems_io_initialize 4 + rtems_io_open 1 + rtems_io_close 1 + rtems_io_read 1 + rtems_io_write 1 + rtems_io_control 1 + + Rate Monotonic Manager + + rtems_rate_monotonic_create 36 + rtems_rate_monotonic_ident 380 + rtems_rate_monotonic_cancel 34 + rtems_rate_monotonic_delete: active 51 + rtems_rate_monotonic_delete: inactive 47 + rtems_rate_monotonic_period: obtain status 27 + rtems_rate_monotonic_period: initiate period -- returns to caller 50 + rtems_rate_monotonic_period: conclude periods -- caller blocks 72 + +Network tests: + TCP throughput (as measured by ttcp): + Receive: 1081 kbytes/sec + Transmit: 953 kbytes/sec + +Porting +------- +This board support package is written for a 68360 system similar to that +described in chapter 9 of the Motorola MC68360 Quad Integrated Communication +Processor Users' Manual. The salient features of this hardware are: + + 25 MHz external clock + DRAM address multiplexing provided by 68360 + 8-bit 180nsec PROM to CS0* + 4 MBytes of 60 nsec parity DRAM (1Mx36) to RAS1*/CAS1* + Console serial port on SMC1 + Ethernet interface on SCC1 + +The board support package has been tested with: + A home-built 68360 board + An ACE360A and an HSB board produced by: + Atlas Computer Equipment + 703 Colina Lane + Santa Barbara, CA 93103 + A 68040/68360 board (SBC360) produced by: + Arnewsh Inc. + P.O. Box 270352 + Fort Collins, CO 80527-0352 + A custom 68360 board (PGH360) produced by IMD |