RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
score
cpu
powerpc
rtems
score
powerpc.h
Go to the documentation of this file.
1
10
/*
11
* Author: Andrew Bray <andy@i-cubed.co.uk>
12
*
13
* COPYRIGHT (c) 1995 by i-cubed ltd.
14
*
15
* MPC860 support code was added by Jay Monkman <jmonkman@frasca.com>
16
* MPC8260 support added by Andy Dachs <a.dachs@sstl.co.uk>
17
* Surrey Satellite Technology Limited
18
*
19
* To anyone who acknowledges that this file is provided "AS IS"
20
* without any express or implied warranty:
21
* permission to use, copy, modify, and distribute this file
22
* for any purpose is hereby granted without fee, provided that
23
* the above copyright notice and this notice appears in all
24
* copies, and that the name of i-cubed limited not be used in
25
* advertising or publicity pertaining to distribution of the
26
* software without specific, written prior permission.
27
* i-cubed limited makes no representations about the suitability
28
* of this software for any purpose.
29
*
30
* Derived from c/src/exec/cpu/no_cpu/no_cpu.h:
31
*
32
* COPYRIGHT (c) 1989-1997.
33
* On-Line Applications Research Corporation (OAR).
34
*
35
* The license and distribution terms for this file may in
36
* the file LICENSE in this distribution or at
37
* http://www.rtems.org/license/LICENSE.
38
*
39
*
40
* Note:
41
* This file is included by both C and assembler code ( -DASM )
42
*/
43
44
45
#ifndef _RTEMS_SCORE_POWERPC_H
46
#define _RTEMS_SCORE_POWERPC_H
47
48
#ifdef __cplusplus
49
extern
"C"
{
50
#endif
51
52
#include <rtems/score/types.h>
53
54
/*
55
* Define the name of the CPU family.
56
*/
57
58
#define CPU_NAME "PowerPC"
59
60
/*
61
* This file contains the information required to build
62
* RTEMS for the PowerPC family.
63
*/
64
65
/* Generic ppc */
66
67
#ifdef _SOFT_FLOAT
68
#define CPU_MODEL_NAME "Generic (no FPU)"
69
#elif defined(__NO_FPRS__) || defined(__SPE__)
70
#define CPU_MODEL_NAME "Generic (E500/float-gprs/SPE)"
71
#else
72
#define CPU_MODEL_NAME "Generic (classic FPU)"
73
#endif
74
75
#define PPC_ALIGNMENT 8
76
77
#ifdef __PPC_CPU_E6500__
78
#define PPC_DEFAULT_CACHE_LINE_POWER 6
79
#else
80
#define PPC_DEFAULT_CACHE_LINE_POWER 5
81
#endif
82
83
#define PPC_DEFAULT_CACHE_LINE_SIZE (1 << PPC_DEFAULT_CACHE_LINE_POWER)
84
85
#define PPC_STRUCTURE_ALIGNMENT PPC_DEFAULT_CACHE_LINE_SIZE
86
87
/*
88
* Application binary interfaces.
89
*
90
* PPC_ABI MUST be defined as one of these.
91
* Only big endian is currently supported.
92
*/
93
94
/*
95
* SVR4 ABI
96
*/
97
#define PPC_ABI_SVR4 2
98
/*
99
* Embedded ABI
100
*/
101
#define PPC_ABI_EABI 3
102
103
/*
104
* Default to the EABI used by current GNU tools
105
*/
106
107
#ifndef PPC_ABI
108
#define PPC_ABI PPC_ABI_EABI
109
#endif
110
111
/*
112
* Use worst case stack alignment. For the EABI an 8-byte alignment would be
113
* sufficient.
114
*/
115
116
#define PPC_STACK_ALIGN_POWER 4
117
#define PPC_STACK_ALIGNMENT (1 << PPC_STACK_ALIGN_POWER)
118
119
/*
120
* Assume PPC_HAS_FPU to be a synonym for _SOFT_FLOAT.
121
*/
122
123
#if defined(_SOFT_FLOAT) \
124
|| defined(__NO_FPRS__)
/* e500 has unified integer/FP registers */
\
125
|| defined(__PPC_CPU_E6500__)
126
#define PPC_HAS_FPU 0
127
#else
128
#define PPC_HAS_FPU 1
129
#endif
130
131
#if defined(__PPC_CPU_E6500__) && defined(__ALTIVEC__)
132
#define PPC_MULTILIB_ALTIVEC
133
#endif
134
135
#if defined(__PPC_CPU_E6500__) && !defined(_SOFT_FLOAT)
136
#define PPC_MULTILIB_FPU
137
#endif
138
139
/*
140
* Unless specified above, If the model has FP support, it is assumed to
141
* support doubles (8-byte floating point numbers).
142
*
143
* If the model does NOT have FP support, then the model does
144
* NOT have double length FP registers.
145
*/
146
147
#if (PPC_HAS_FPU)
148
#define PPC_HAS_DOUBLE 1
149
#else
150
#define PPC_HAS_DOUBLE 0
151
#endif
152
153
/*
154
* Assemblers.
155
* PPC_ASM MUST be defined as one of these.
156
*
157
* PPC_ASM_ELF: ELF assembler. Currently used for all ABIs.
158
*
159
* NOTE: Only PPC_ABI_ELF is currently fully supported.
160
*
161
* Also NOTE: cpukit doesn't need this but asm.h which is defined
162
* in cpukit for consistency with other ports does.
163
*/
164
165
#define PPC_ASM_ELF 0
166
167
/*
168
* Default to the assembler format used by the current GNU tools.
169
*/
170
#define PPC_ASM PPC_ASM_ELF
171
172
173
#ifdef __cplusplus
174
}
175
#endif
176
177
#endif
/* _RTEMS_SCORE_POWERPC_H */
Generated by
1.8.13