summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/cpu/powerpc/README
blob: 92af381241309a2fa370e61997643647d35a1240 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
There are various issues regarding this port:



1) Legal

This port is written by Andrew Bray <andy@i-cubed.demon.co.uk>, and
is copyright 1995 i-cubed ltd.

Due to the current lack of a formal release note, this is a limited
release to OAR, and other specific parties designated by OAR who
are involved in porting RTEMS to the PowerPC architecture.

This set of release files SHOULD (IMHO) include a cpu specific
alignment exception handler.  Ours is derived from IBM sample
code.  I am seeking a release from IBM for this file.  In the
mean time this file is excluded (but still included in the Makefile
as a place-holder).



2) CPU support.

This release fully supports the IBM PPC403GA and PPC403GB processors.

It has only been tested on the PPC403GA (using software floating
point).

With the gratefully acknowledged assistance of IBM and Blue Micro,
this release contains code to support the following processors
  PPC601, PPC603, PPC603e, PPC604, and PPC602.

The support for these processors is incomplete, especially that for
the PPC602 for which only sketchy data is currently available.



3) Application Binary INterface

In the context of RTEMS, the ABI is of interest for the following
aspects:

a)  Register usage.  Which registers are used to provide static variable
    linkage, stack pointer etc.

b)  Function calling convention.  How parameters are passed, how function
    variables should be invoked, how values are returned, etc.

c)  Stack frame layout.

I am aware of a number of ABIs for the PowerPC:

a)  The PowerOpen ABI.  This is the original Power ABI used on the RS/6000.
    This is the only ABI supported by versions of GCC before 2.7.0.

b)  The SVR4 ABI.  This is the ABI defined by SunSoft for the Solaris port
    to the PowerPC.

c)  The Embedded ABI.  This is an embedded ABI for PowerPC use, which has no
    operating system interface defined.  It is promoted by SunSoft, Motorola,
    and Cygnus Support.  Cygnus are porting the GNU toolchain to this ABI.

d)  GCC 2.7.0.  This compiler is partway along the road to supporting the EABI,
    but is currently halfway in between.

This port was built and tested using the PowerOpen ABI, with the following
caveat:  we used an ELF assembler and linker.  So some attention may be required
on the assembler files to get them through a traditional (XCOFF) PowerOpen
assembler.

This port contains support for the other ABIs, but this may prove to be incoplete
as it is untested.

In the long term, the RTEMS PowerPC port should move to the EABI as its primary
or only port.  This should wait on a true EABI version of GCC.

Andrew Bray 18/8/1995