[acc25ee] | 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 |
---|