1 |
30 |
unneback |
#
|
2 |
|
|
# $Id: README,v 1.2 2001-09-27 11:59:29 chris Exp $
|
3 |
|
|
#
|
4 |
|
|
|
5 |
|
|
There are various issues regarding this port:
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
1) Legal
|
10 |
|
|
|
11 |
|
|
This port is written by Andrew Bray , and
|
12 |
|
|
is copyright 1995 i-cubed ltd.
|
13 |
|
|
|
14 |
|
|
This port was later updated by Joel Sherrill
|
15 |
|
|
to test the support for the PPC603, PPC603e, and MPC604. This
|
16 |
|
|
was tested on the PowerPC simulator PSIM and a VMEbus single board
|
17 |
|
|
computer.
|
18 |
|
|
|
19 |
|
|
2) CPU support.
|
20 |
|
|
|
21 |
|
|
This release fully supports the PPC403GA, PPC403GB, PPC603, PPC603e,
|
22 |
|
|
MPC604, MPC750, and numerous MPC8xx processors. A good faith attempt
|
23 |
|
|
has been made to include support other models based upon available
|
24 |
|
|
documentation including the MPC5xx. There are two interrupt structures
|
25 |
|
|
supported by the PowerPC port. The newer structure is supported by
|
26 |
|
|
all the MPC750 and MPC604 BSPs. This structure is required to use
|
27 |
|
|
the RDBG remote debugging support.
|
28 |
|
|
|
29 |
|
|
This port was originally written and tested on the PPC403GA (using
|
30 |
|
|
software floating point). Current ports are tested primarily on
|
31 |
|
|
60x CPUs using the PowerPC simulator PSIM.
|
32 |
|
|
|
33 |
|
|
Andrew Bray received assistance during the initial porting effort
|
34 |
|
|
from IBM and Blue Micro and we would like to gratefully acknowledge
|
35 |
|
|
that help.
|
36 |
|
|
|
37 |
|
|
The support for the PPC602 processor is incomplete as only sketchy
|
38 |
|
|
data is currently available. Perhaps this model has been dropped.
|
39 |
|
|
|
40 |
|
|
3) Application Binary Interface
|
41 |
|
|
|
42 |
|
|
In the context of RTEMS, the ABI is of interest for the following
|
43 |
|
|
aspects:
|
44 |
|
|
|
45 |
|
|
a) Register usage. Which registers are used to provide static variable
|
46 |
|
|
linkage, stack pointer etc.
|
47 |
|
|
|
48 |
|
|
b) Function calling convention. How parameters are passed, how function
|
49 |
|
|
variables should be invoked, how values are returned, etc.
|
50 |
|
|
|
51 |
|
|
c) Stack frame layout.
|
52 |
|
|
|
53 |
|
|
I am aware of a number of ABIs for the PowerPC:
|
54 |
|
|
|
55 |
|
|
a) The PowerOpen ABI. This is the original Power ABI used on the RS/6000.
|
56 |
|
|
This is the only ABI supported by versions of GCC before 2.7.0.
|
57 |
|
|
|
58 |
|
|
b) The SVR4 ABI. This is the ABI defined by SunSoft for the Solaris port
|
59 |
|
|
to the PowerPC.
|
60 |
|
|
|
61 |
|
|
c) The Embedded ABI. This is an embedded ABI for PowerPC use, which has no
|
62 |
|
|
operating system interface defined. It is promoted by SunSoft, Motorola,
|
63 |
|
|
and Cygnus Support. Cygnus are porting the GNU toolchain to this ABI.
|
64 |
|
|
|
65 |
|
|
d) GCC 2.7.0. This compiler is partway along the road to supporting the EABI,
|
66 |
|
|
but is currently halfway in between.
|
67 |
|
|
|
68 |
|
|
This port was built and tested using the PowerOpen ABI, with the following
|
69 |
|
|
caveat: we used an ELF assembler and linker. So some attention may be
|
70 |
|
|
required on the assembler files to get them through a traditional (XCOFF)
|
71 |
|
|
PowerOpen assembler.
|
72 |
|
|
|
73 |
|
|
This port contains support for the other ABIs, but this may prove to be
|
74 |
|
|
incomplete as it is untested.
|
75 |
|
|
|
76 |
|
|
The RTEMS PowerPC port supports EABI as the primary ABI. The powerpc-rtems
|
77 |
|
|
GNU toolset configuration is EABI.
|
78 |
|
|
|
79 |
|
|
Andrew Bray, 4 December 1995
|
80 |
|
|
Joel Sherrill, 16 July 1997
|