1 | # |
---|
2 | # $Id$ |
---|
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 <andy@i-cubed.co.uk>, and |
---|
12 | is copyright 1995 i-cubed ltd. |
---|
13 | |
---|
14 | |
---|
15 | |
---|
16 | 2) CPU support. |
---|
17 | |
---|
18 | This release fully supports the IBM PPC403GA and PPC403GB processors. |
---|
19 | |
---|
20 | It has only been tested on the PPC403GA (using software floating |
---|
21 | point). |
---|
22 | |
---|
23 | With the gratefully acknowledged assistance of IBM and Blue Micro, |
---|
24 | this release contains code to support the following processors |
---|
25 | PPC601, PPC603, PPC603e, PPC604, and PPC602. |
---|
26 | |
---|
27 | The support for these processors is incomplete, especially that for |
---|
28 | the PPC602 for which only sketchy data is currently available. |
---|
29 | |
---|
30 | |
---|
31 | |
---|
32 | 3) Application Binary INterface |
---|
33 | |
---|
34 | In the context of RTEMS, the ABI is of interest for the following |
---|
35 | aspects: |
---|
36 | |
---|
37 | a) Register usage. Which registers are used to provide static variable |
---|
38 | linkage, stack pointer etc. |
---|
39 | |
---|
40 | b) Function calling convention. How parameters are passed, how function |
---|
41 | variables should be invoked, how values are returned, etc. |
---|
42 | |
---|
43 | c) Stack frame layout. |
---|
44 | |
---|
45 | I am aware of a number of ABIs for the PowerPC: |
---|
46 | |
---|
47 | a) The PowerOpen ABI. This is the original Power ABI used on the RS/6000. |
---|
48 | This is the only ABI supported by versions of GCC before 2.7.0. |
---|
49 | |
---|
50 | b) The SVR4 ABI. This is the ABI defined by SunSoft for the Solaris port |
---|
51 | to the PowerPC. |
---|
52 | |
---|
53 | c) The Embedded ABI. This is an embedded ABI for PowerPC use, which has no |
---|
54 | operating system interface defined. It is promoted by SunSoft, Motorola, |
---|
55 | and Cygnus Support. Cygnus are porting the GNU toolchain to this ABI. |
---|
56 | |
---|
57 | d) GCC 2.7.0. This compiler is partway along the road to supporting the EABI, |
---|
58 | but is currently halfway in between. |
---|
59 | |
---|
60 | This port was built and tested using the PowerOpen ABI, with the following |
---|
61 | caveat: we used an ELF assembler and linker. So some attention may be required |
---|
62 | on the assembler files to get them through a traditional (XCOFF) PowerOpen |
---|
63 | assembler. |
---|
64 | |
---|
65 | This port contains support for the other ABIs, but this may prove to be incomplete |
---|
66 | as it is untested. |
---|
67 | |
---|
68 | In the long term, the RTEMS PowerPC port should move to the EABI as its primary |
---|
69 | or only port. This should wait on a true EABI version of GCC. |
---|
70 | |
---|
71 | Andrew Bray 4/December/1995 |
---|