summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c/ACKNOWLEDGEMENTS5
-rw-r--r--c/src/lib/libbsp/powerpc/eth_comm/README209
-rw-r--r--c/src/lib/libbsp/powerpc/eth_comm/times349
-rw-r--r--c/src/lib/libcpu/powerpc/mpc860/README15
-rw-r--r--c/src/lib/libcpu/powerpc/mpc860/vectors/README13
5 files changed, 387 insertions, 204 deletions
diff --git a/c/ACKNOWLEDGEMENTS b/c/ACKNOWLEDGEMENTS
index d3ab3176a2..0704884313 100644
--- a/c/ACKNOWLEDGEMENTS
+++ b/c/ACKNOWLEDGEMENTS
@@ -136,8 +136,9 @@ The following persons/organizations have made contributions:
Puchheim,Germany submitted some improvements to the PPC403
support and added the helas403 BSP.
-+ Jay Monkman (jmonkman@frasca.com) of Frasca submitted the
- eth_comm BSP and support for the MPC860 PowerPC CPU model.
++ Jay Monkman (jmonkman@frasca.com) of Frasca International, Inc
+ submitted the support for the Motorola MPC860 CPU including the
+ 'eth_comm' BSP
+ Charles Gauthier <Charles.Gauthier@iit.nrc.ca> of the Institute for
Information Technology for the National Research Council of Canada
diff --git a/c/src/lib/libbsp/powerpc/eth_comm/README b/c/src/lib/libbsp/powerpc/eth_comm/README
index 87533ae4dc..11059f1faf 100644
--- a/c/src/lib/libbsp/powerpc/eth_comm/README
+++ b/c/src/lib/libbsp/powerpc/eth_comm/README
@@ -27,10 +27,10 @@ NETWORKING: Ethernet (10 Mbps) on SCC1 (MPC860)
DRIVER INFORMATION
==================
-CLOCK DRIVER:
-IOSUPP DRIVER:
+CLOCK DRIVER: Periodic Interval Timer
+IOSUPP DRIVER: SCC1, SCC2, SCC3, SCC4, SMC1, SMC2
SHMSUPP: none
-TIMER DRIVER:
+TIMER DRIVER: Timebase register (lower 32 bits only)
STDIO
=====
@@ -62,7 +62,7 @@ On-chip resources:
BRG4 console
RTC
PIT clock
- TB
+ TB timer
DEC
SWT
*CS0 FLASH
@@ -75,17 +75,17 @@ On-chip resources:
*CS7 DRAM bank 0
UPMA
UPMB
- IRQ0
- IRQ1
+ IRQ0 Voltage supervisor
+ IRQ1 ARINC-429
IRQ2 CAN2
IRQ3 CAN0
IRQ4 CAN1
- IRQ5
- IRQ6
+ IRQ5
+ IRQ6 Multibus I
IRQ7
IRQ_LVL0 clock - PIT
- IRQ_LVL1
- IRQ_LVL2
+ IRQ_LVL1 CPM
+ IRQ_LVL2 FEC
IRQ_LVL3
IRQ_LVL4
IRQ_LVL5
@@ -98,3 +98,192 @@ Bus width: 16 bit Flash, 32 bit DRAM
FLASH: 128K - 1024K, 120ns
RAM: 2 - 32M DRAM SIMM, autodetects size and speed
+Verification
+-------------------------------
+Single processor tests: Passed
+Multi-processort tests: not applicable
+Timing tests:
+ Context Switch
+
+ context switch: self 9
+ context switch: to another task 10
+ context switch: no floating point contexts 23
+ fp context switch: restore 1st FP task 24
+ fp context switch: save initialized, restore initialized 11
+ fp context switch: save idle, restore initialized 11
+ fp context switch: save idle, restore idle 23
+
+ Task Manager
+
+ rtems_task_create 83
+ rtems_task_ident 84
+ rtems_task_start 30
+ rtems_task_restart: calling task 48
+ rtems_task_restart: suspended task -- returns to caller 36
+ rtems_task_restart: blocked task -- returns to caller 47
+ rtems_task_restart: ready task -- returns to caller 35
+ rtems_task_restart: suspended task -- preempts caller 56
+ rtems_task_restart: blocked task -- preempts caller 116
+ rtems_task_restart: ready task -- preempts caller 93
+ rtems_task_delete: calling task 102
+ rtems_task_delete: suspended task 74
+ rtems_task_delete: blocked task 76
+ rtems_task_delete: ready task 80
+ rtems_task_suspend: calling task 37
+ rtems_task_suspend: returns to caller 14
+ rtems_task_resume: task readied -- returns to caller 16
+ rtems_task_resume: task readied -- preempts caller 30
+ rtems_task_set_priority: obtain current priority 12
+ rtems_task_set_priority: returns to caller 23
+ rtems_task_set_priority: preempts caller 52
+ rtems_task_mode: obtain current mode 5
+ rtems_task_mode: no reschedule 6
+ rtems_task_mode: reschedule -- returns to caller 15
+ rtems_task_mode: reschedule -- preempts caller 43
+ rtems_task_get_note 13
+ rtems_task_set_note 12
+ rtems_task_wake_after: yield -- returns to caller 8
+ rtems_task_wake_after: yields -- preempts caller 30
+ rtems_task_wake_when: 49
+
+ Interrupt Manager
+
+ interrupt entry overhead: returns to nested interrupt 7
+ interrupt entry overhead: returns to interrupted task 31
+ interrupt entry overhead: returns to preempting task 14
+ interrupt exit overhead: returns to nested interrupt 10
+ interrupt exit overhead: returns to interrupted task 8
+ interrupt exit overhead: returns to preempting task 45
+
+ Clock Manager
+
+ rtems_clock_set 28
+ rtems_clock_get 0
+ rtems_clock_tick 36
+
+ Timer Manager
+
+ rtems_timer_create 11
+ rtems_timer_ident 82
+ rtems_timer_delete: inactive 14
+ rtems_timer_delete: active 16
+ rtems_timer_fire_after: inactive 20
+ rtems_timer_fire_after: active 22
+ rtems_timer_fire_when: inactive 24
+ rtems_timer_fire_when: active 24
+ rtems_timer_reset: inactive 18
+ rtems_timer_reset: active 21
+ rtems_timer_cancel: inactive 11
+ rtems_timer_cancel: active 12
+
+ Semaphore Manager
+
+ rtems_semaphore_create 56
+ rtems_semaphore_ident 94
+ rtems_semaphore_delete 34
+ rtems_semaphore_obtain: available 13
+ rtems_semaphore_obtain: not available -- NO_WAIT 13
+ rtems_semaphore_obtain: not available -- caller blocks 48
+ rtems_semaphore_release: no waiting tasks 16
+ rtems_semaphore_release: task readied -- returns to caller 36
+ rtems_semaphore_release: task readied -- preempts caller 36
+
+ Message Queue Manager
+
+ rtems_message_queue_create 110
+ rtems_message_queue_ident 82
+ rtems_message_queue_delete 43
+ rtems_message_queue_send: no waiting tasks 28
+ rtems_message_queue_send: task readied -- returns to caller 31
+ rtems_message_queue_send: task readied -- preempts caller 46
+ rtems_message_queue_urgent: no waiting tasks 28
+ rtems_message_queue_urgent: task readied -- returns to caller 31
+ rtems_message_queue_urgent: task readied -- preempts caller 46
+ rtems_message_queue_broadcast: no waiting tasks 22
+ rtems_message_queue_broadcast: task readied -- returns to caller 81
+ rtems_message_queue_broadcast: task readied -- preempts caller 75
+ rtems_message_queue_receive: available 26
+ rtems_message_queue_receive: not available -- NO_WAIT 15
+ rtems_message_queue_receive: not available -- caller blocks 48
+ rtems_message_queue_flush: no messages flushed 14
+ rtems_message_queue_flush: messages flushed 14
+
+ Event Manager
+
+ rtems_event_send: no task readied 12
+ rtems_event_send: task readied -- returns to caller 38
+ rtems_event_send: task readied -- preempts caller 21
+ rtems_event_receive: obtain current events 1
+ rtems_event_receive: available 19
+ rtems_event_receive: not available -- NO_WAIT 11
+ rtems_event_receive: not available -- caller blocks 36
+
+ Signal Manager
+
+ rtems_signal_catch: 31
+ rtems_signal_send: returns to caller 21
+ rtems_signal_send: signal to self 39
+ exit ASR overhead: returns to calling task 30
+ exit ASR overhead: returns to preempting task 33
+
+ Partition Manager
+
+ rtems_partition_create 59
+ rtems_partition_ident 82
+ rtems_partition_delete 20
+ rtems_partition_get_buffer: available 19
+ rtems_partition_get_buffer: not available 13
+ rtems_partition_return_buffer 20
+
+ Region Manager
+
+ rtems_region_create 37
+ rtems_region_ident 84
+ rtems_region_delete 20
+ rtems_region_get_segment: available 19
+ rtems_region_get_segment: not available -- NO_WAIT 23
+ rtems_region_get_segment: not available -- caller blocks 75
+ rtems_region_return_segment: no waiting tasks 21
+ rtems_region_return_segment: task readied -- returns to caller 55
+ rtems_region_return_segment: task readied -- preempts caller 82
+
+ Dual-Ported Memory Manager
+
+ rtems_port_create 23
+ rtems_port_ident 82
+ rtems_port_delete 21
+ rtems_port_internal_to_external 10
+ rtems_port_external_to_internal 11
+
+ IO Manager
+
+ rtems_io_initialize 1
+ 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 43
+ rtems_rate_monotonic_ident 82
+ rtems_rate_monotonic_cancel 23
+ rtems_rate_monotonic_delete: active 28
+ rtems_rate_monotonic_delete: inactive 25
+ rtems_rate_monotonic_period: obtain status 17
+ rtems_rate_monotonic_period: initiate period -- returns to caller 32
+ rtems_rate_monotonic_period: conclude periods -- caller blocks 30
+
+Network tests:
+ TCP throughput (as measured by ttcp):
+ Receive: 1324 kbytes/sec
+ Transmit: 1037 kbytes/sec
+
+
+
+
+
+
+
+
diff --git a/c/src/lib/libbsp/powerpc/eth_comm/times b/c/src/lib/libbsp/powerpc/eth_comm/times
index 2ac0b9ee22..11a94ec6af 100644
--- a/c/src/lib/libbsp/powerpc/eth_comm/times
+++ b/c/src/lib/libbsp/powerpc/eth_comm/times
@@ -7,188 +7,189 @@
# $Id$
#
-Board:
-CPU: include coprocessor if applicable
-Clock Speed:
-Memory Configuration: SRAM, DRAM, cache, etc
+Board: eth_comm
+CPU: Motorola MPC860T
+Clock Speed: 40 Mhz
+Memory Configuration: DRAM, 60ns
Wait States:
Times Reported in: cycles, microseconds, etc
-Timer Source: Count Down Timer, on-CPU cycle counter, etc
+Timer Source: Time Base register
Column X:
Column Y:
# DESCRIPTION A B
== ================================================================= ==== ====
- 1 rtems_semaphore_create 20
- rtems_semaphore_delete 21
- rtems_semaphore_obtain: available 15
- rtems_semaphore_obtain: not available -- NO_WAIT 15
+1 rtems_semaphore_create 56
+ rtems_semaphore_delete 35
+ rtems_semaphore_obtain: available 13
+ rtems_semaphore_obtain: not available -- NO_WAIT 13
rtems_semaphore_release: no waiting tasks 16
- 2 rtems_semaphore_obtain: not available -- caller blocks 62
-
- 3 rtems_semaphore_release: task readied -- preempts caller 55
-
- 4 rtems_task_restart: blocked task -- preempts caller 77
- rtems_task_restart: ready task -- preempts caller 70
- rtems_semaphore_release: task readied -- returns to caller 25
- rtems_task_create 57
- rtems_task_start 31
- rtems_task_restart: suspended task -- returns to caller 36
- rtems_task_delete: suspended task 47
- rtems_task_restart: ready task -- returns to caller 37
- rtems_task_restart: blocked task -- returns to caller 46
- rtems_task_delete: blocked task 50
-
- 5 rtems_task_suspend: calling task 51
- rtems_task_resume: task readied -- preempts caller 49
-
- 6 rtems_task_restart: calling task 59
- rtems_task_suspend: returns to caller 18
- rtems_task_resume: task readied -- returns to caller 19
- rtems_task_delete: ready task 50
-
- 7 rtems_task_restart: suspended task -- preempts caller 70
-
- 8 rtems_task_set_priority: obtain current priority 12
- rtems_task_set_priority: returns to caller 27
- rtems_task_mode: obtain current mode 5
- rtems_task_mode: no reschedule 5
- rtems_task_mode: reschedule -- returns to caller 8
- rtems_task_mode: reschedule -- preempts caller 39
- rtems_task_set_note 13
- rtems_task_get_note 13
- rtems_clock_set 33
- rtems_clock_get 3
-
- 9 rtems_message_queue_create 110
- rtems_message_queue_send: no waiting tasks 37
- rtems_message_queue_urgent: no waiting tasks 37
- rtems_message_queue_receive: available 31
- rtems_message_queue_flush: no messages flushed 12
- rtems_message_queue_flush: messages flushed 16
- rtems_message_queue_delete 26
-
-10 rtems_message_queue_receive: not available -- NO_WAIT 15
- rtems_message_queue_receive: not available -- caller blocks 62
-
-11 rtems_message_queue_send: task readied -- preempts caller 72
-
-12 rtems_message_queue_send: task readied -- returns to caller 39
-
-13 rtems_message_queue_urgent: task readied -- preempts caller 72
-
-14 rtems_message_queue_urgent: task readied -- returns to caller 39
-
-15 rtems_event_receive: obtain current events 1
- rtems_event_receive: not available -- NO_WAIT 12
- rtems_event_receive: not available -- caller blocks 56
- rtems_event_send: no task readied 12
- rtems_event_receive: available 12
- rtems_event_send: task readied -- returns to caller 24
-
-16 rtems_event_send: task readied -- preempts caller 55
-
-17 rtems_task_set_priority: preempts caller 62
-
-18 rtems_task_delete: calling task 83
-
-19 rtems_signal_catch 9
- rtems_signal_send: returns to caller 15
- rtems_signal_send: signal to self 18
- exit ASR overhead: returns to calling task 22
- exit ASR overhead: returns to preempting task 49
-
-20 rtems_partition_create 35
- rtems_region_create 23
- rtems_partition_get_buffer: available 15
- rtems_partition_get_buffer: not available 13
- rtems_partition_return_buffer 18
- rtems_partition_delete 16
- rtems_region_get_segment: available 22
- rtems_region_get_segment: not available -- NO_WAIT 21
- rtems_region_return_segment: no waiting tasks 19
- rtems_region_get_segment: not available -- caller blocks 64
- rtems_region_return_segment: task readied -- preempts caller 74
- rtems_region_return_segment: task readied -- returns to caller 44
- rtems_region_delete 16
- rtems_io_initialize 2
- rtems_io_open 1
- rtems_io_close 1
- rtems_io_read 1
- rtems_io_write 1
- rtems_io_control 1
-
-21 rtems_task_ident 149
- rtems_message_queue_ident 145
- rtems_semaphore_ident 156
- rtems_partition_ident 145
- rtems_region_ident 148
- rtems_port_ident 145
- rtems_timer_ident 145
- rtems_rate_monotonic_ident 145
-
-22 rtems_message_queue_broadcast: task readied -- returns to caller 42
- rtems_message_queue_broadcast: no waiting tasks 17
- rtems_message_queue_broadcast: task readied -- preempts caller 78
-
-23 rtems_timer_create 14
- rtems_timer_fire_after: inactive 22
- rtems_timer_fire_after: active 24
- rtems_timer_cancel: active 15
- rtems_timer_cancel: inactive 13
- rtems_timer_reset: inactive 21
- rtems_timer_reset: active 23
- rtems_timer_fire_when: inactive 34
- rtems_timer_fire_when: active 34
- rtems_timer_delete: active 19
- rtems_timer_delete: inactive 17
- rtems_task_wake_when 69
-
-24 rtems_task_wake_after: yield -- returns to caller 9
- rtems_task_wake_after: yields -- preempts caller 45
-
-25 rtems_clock_tick 4
-
-26 _ISR_Disable 0
- _ISR_Flash 1
- _ISR_Enable 1
- _Thread_Disable_dispatch 0
- _Thread_Enable_dispatch 7
- _Thread_Set_state 11
- _Thread_Disptach (NO FP) 31
- context switch: no floating point contexts 21
- context switch: self 10
- context switch: to another task 10
- context switch: restore 1st FP task 25
- fp context switch: save idle, restore idle 31
- fp context switch: save idle, restore initialized 19
- fp context switch: save initialized, restore initialized 20
- _Thread_Resume 7
- _Thread_Unblock 7
- _Thread_Ready 9
- _Thread_Get 4
- _Semaphore_Get 2
- _Thread_Get: invalid id 0
-
-27 interrupt entry overhead: returns to interrupted task 6
- interrupt exit overhead: returns to interrupted task 6
- interrupt entry overhead: returns to nested interrupt 6
- interrupt exit overhead: returns to nested interrupt 5
- interrupt entry overhead: returns to preempting task 7
- interrupt exit overhead: returns to preempting task 36
-
-28 rtems_port_create 16
- rtems_port_external_to_internal 11
- rtems_port_internal_to_external 11
- rtems_port_delete 16
-
-29 rtems_rate_monotonic_create 15
- rtems_rate_monotonic_period: initiate period -- returns to caller 21
- rtems_rate_monotonic_period: obtain status 13
- rtems_rate_monotonic_cancel 16
- rtems_rate_monotonic_delete: inactive 18
- rtems_rate_monotonic_delete: active 20
- rtems_rate_monotonic_period: conclude periods -- caller blocks 53
+2 rtems_semaphore_obtain: not available -- caller blocks 48
+
+3 rtems_semaphore_release: task readied -- preempts caller 36
+
+4 rtems_task_restart: blocked task -- preempts caller 117
+ rtems_task_restart: ready task -- preempts caller 94
+ rtems_semaphore_release: task readied -- returns to caller 22
+ rtems_task_create 83
+ rtems_task_start 30
+ rtems_task_restart: suspended task -- returns to caller 36
+ rtems_task_delete: suspended task 74
+ rtems_task_restart: ready task -- returns to caller 35
+ rtems_task_restart: blocked task -- returns to caller 47
+ rtems_task_delete: blocked task 76
+
+5 rtems_task_suspend: calling task 37
+ rtems_task_resume: task readied -- preempts caller 31
+
+6 rtems_task_restart: calling task 48
+ rtems_task_suspend: returns to caller 14
+ rtems_task_resume: task readied -- returns to caller 16
+ rtems_task_delete: ready task 80
+
+7 rtems_task_restart: suspended task -- preempts caller 56
+
+8 rtems_task_set_priority: obtain current priority 12
+ rtems_task_set_priority: returns to caller 23
+ rtems_task_mode: obtain current mode 5
+ rtems_task_mode: no reschedule 7
+ rtems_task_mode: reschedule -- returns to caller 14
+ rtems_task_mode: reschedule -- preempts caller 43
+ rtems_task_set_note 13
+ rtems_task_get_note 12
+ rtems_clock_set 28
+ rtems_clock_get 0
+
+9 rtems_message_queue_create 110
+ rtems_message_queue_send: no waiting tasks 28
+ rtems_message_queue_urgent: no waiting tasks 28
+ rtems_message_queue_receive: available 26
+ rtems_message_queue_flush: no messages flushed 13
+ rtems_message_queue_flush: messages flushed 14
+ rtems_message_queue_delete 45
+
+10 rtems_message_queue_receive: not available -- NO_WAIT 15
+ rtems_message_queue_receive: not available -- caller blocks 48
+
+11 rtems_message_queue_send: task readied -- preempts caller 46
+
+12 rtems_message_queue_send: task readied -- returns to caller 31
+
+13 rtems_message_queue_urgent: task readied -- preempts caller 46
+
+14 rtems_message_queue_urgent: task readied -- returns to caller 31
+
+15 rtems_event_receive: obtain current events 1
+ rtems_event_receive: not available -- NO_WAIT 11
+ rtems_event_receive: not available -- caller blocks 36
+ rtems_event_send: no task readied 12
+ rtems_event_receive: available 19
+ rtems_event_send: task readied -- returns to caller 21
+
+16 rtems_event_send: task readied -- preempts caller 38
+
+17 rtems_task_set_priority: preempts caller 51
+
+18 rtems_task_delete: calling task 102
+
+19 rtems_signal_catch 31
+ rtems_signal_send: returns to caller 21
+ rtems_signal_send: signal to self 39
+ exit ASR overhead: returns to calling task 30
+ exit ASR overhead: returns to preempting task 33
+
+20 rtems_partition_create 59
+ rtems_region_create 37
+ rtems_partition_get_buffer: available 19
+ rtems_partition_get_buffer: not available 12
+ rtems_partition_return_buffer 21
+ rtems_partition_delete 20
+ rtems_region_get_segment: available 20
+ rtems_region_get_segment: not available -- NO_WAIT 24
+ rtems_region_return_segment: no waiting tasks 21
+ rtems_region_get_segment: not available -- caller blocks 76
+ rtems_region_return_segment: task readied -- preempts caller 82
+ rtems_region_return_segment: task readied -- returns to caller 55
+ rtems_region_delete 20
+ rtems_io_initialize 1
+ rtems_io_open 1
+ rtems_io_close 1
+ rtems_io_read 1
+ rtems_io_write 1
+ rtems_io_control 1
+
+21 rtems_task_ident 84
+ rtems_message_queue_ident 82
+ rtems_semaphore_ident 94
+ rtems_partition_ident 82
+ rtems_region_ident 84
+ rtems_port_ident 82
+ rtems_timer_ident 82
+ rtems_rate_monotonic_ident 82
+
+22 rtems_message_queue_broadcast: task readied -- returns to caller 81
+ rtems_message_queue_broadcast: no waiting tasks 22
+ rtems_message_queue_broadcast: task readied -- preempts caller 76
+
+23 rtems_timer_create 11
+ rtems_timer_fire_after: inactive 20
+ rtems_timer_fire_after: active 22
+ rtems_timer_cancel: active 12
+ rtems_timer_cancel: inactive 11
+ rtems_timer_reset: inactive 18
+ rtems_timer_reset: active 21
+ rtems_timer_fire_when: inactive 24
+ rtems_timer_fire_when: active 24
+ rtems_timer_delete: active 16
+ rtems_timer_delete: inactive 14
+ rtems_task_wake_when 49
+
+24 rtems_task_wake_after: yield -- returns to caller 8
+ rtems_task_wake_after: yields -- preempts caller 30
+
+25 rtems_clock_tick 35
+
+26 _ISR_Disable 24
+ _ISR_Flash 0
+ _ISR_Enable 1
+ _Thread_Disable_dispatch 1
+ _Thread_Enable_dispatch 7
+ _Thread_Set_state 7
+ _Thread_Disptach (NO FP) 31
+ context switch: no floating point contexts 22
+ context switch: self 9
+ context switch: to another task 10
+ fp context switch: restore 1st FP task 24
+ fp context switch: save idle, restore initialized 10
+ fp context switch: save idle, restore idle 23
+ fp context switch: save initialized, restore initialized 10
+ _Thread_Resume 11
+ _Thread_Unblock 6
+ _Thread_Ready 10
+ _Thread_Get 3
+ _Semaphore_Get 2
+ _Thread_Get: invalid id 0
+
+
+27 interrupt entry overhead: returns to interrupted task 14
+ interrupt exit overhead: returns to interrupted task 26
+ interrupt entry overhead: returns to nested interrupt 7
+ interrupt exit overhead: returns to nested interrupt 10
+ interrupt entry overhead: returns to preempting task 14
+ interrupt exit overhead: returns to preempting task 45
+
+28 rtems_port_create 23
+ rtems_port_external_to_internal 10
+ rtems_port_internal_to_external 10
+ rtems_port_delete 21
+
+29 rtems_rate_monotonic_create 43
+ rtems_rate_monotonic_period: initiate period -- returns to caller 32
+ rtems_rate_monotonic_period: obtain status 17
+ rtems_rate_monotonic_cancel 22
+ rtems_rate_monotonic_delete: inactive 25
+ rtems_rate_monotonic_delete: active 28
+ rtems_rate_monotonic_period: conclude periods -- caller blocks 30
diff --git a/c/src/lib/libcpu/powerpc/mpc860/README b/c/src/lib/libcpu/powerpc/mpc860/README
index 528506d3dd..211916489d 100644
--- a/c/src/lib/libcpu/powerpc/mpc860/README
+++ b/c/src/lib/libcpu/powerpc/mpc860/README
@@ -4,19 +4,16 @@
Various non BSP dependant support routines.
-clock - Uses the 403 PIT (Programmable interval timer) to
+clock - Uses the MPC860 PITPIT (Programmable interval timer) to
generate RTEMS clock ticks.
-console - Uses the 403 Internal serial port to do RTEMS
- console I/O. Not ALL members of the 403 family
- have this.
+console_generic - Uses the MPC860 SCCs and SMCs to to serial I/O
-include - Currently empty
+include - console.h: function declarations for console related functions
-timer - Uses the 403 timebase register for timing
- tests. Other PowerPCs have slightly different
- timebase register definitions.
+timer - Uses the MPC860 timebase register for timing
+ tests. It only uses the lower 32 bits
-vectors - PowerPC 403 specific vector entry points.
+vectors - MPC860 specific vector entry points.
Includes CPU dependant, application independant
handlers: alignment.
diff --git a/c/src/lib/libcpu/powerpc/mpc860/vectors/README b/c/src/lib/libcpu/powerpc/mpc860/vectors/README
index 4081ae2525..536e221f43 100644
--- a/c/src/lib/libcpu/powerpc/mpc860/vectors/README
+++ b/c/src/lib/libcpu/powerpc/mpc860/vectors/README
@@ -10,16 +10,11 @@ From the comments at the head of vectors.s:
The first vector MUST be at address 0x????0100.
How this is achieved is dependant on the tool chain.
- However the basic mechanism for ELF assemblers is to create a
- section called ".vectors", which will be loaded to an address
- between 0x????0000 and 0x????0100 (inclusive) via a link script.
-
- The basic mechanism for XCOFF assemblers is to place it in the
- normal text section, and arrange for this file to be located
- at an appropriate position on the linker command line.
+...
The variable 'PPC_VECTOR_FILE_BASE' must be defined to be the
offset from 0x????0000 to the first location in the file. This
- will usually be 0x0000 or 0x0100.
+ will be either 0x0000 or 0xfff0.
+
+The eth_comm BSP defines PPC_VECTOR_FILE_BASE to be 0x00000000
-Andrew Bray 18/8/1995