summaryrefslogtreecommitdiffstats
path: root/bsps/m68k/gen68360/README
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/m68k/gen68360/README')
-rw-r--r--bsps/m68k/gen68360/README299
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