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 | This port was later updated by Joel Sherrill <joel@OARcorp.com> |
---|
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 |
---|