summaryrefslogtreecommitdiffstats
path: root/platforms/architecture.in
blob: 0493af179dae4dc552ab217b075b27b816c7b33c (plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
menu "architecture                  "

choice
	prompt "cpu architecture"
	default ARCH_X86
	help
	  Specify which processor architecture you want to compile for.

	config ARCH_ALPHA
		bool "alpha      "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		help
		  This is support for the Alpha processor architecture.

	config ARCH_AVR
		bool "avr 8 bit "
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		help
		  This is support for the Atmel AVR processors.
		  Note: This covers the 8bit family only, they are not
		  intended to be used with Linux. Bare metall only.

	config ARCH_ARM
		bool "arm        "
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		select ARCH_SUPPORTS_ENDIAN_BIG
		select HAS_MMU
		help
		  This is support for the ARM processor architecture.

	config ARCH_BLACKFIN
		bool "blackfin   "
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		help
		  This is support for the blackfin processor.

	config ARCH_X86
		bool "x86        "
		select HAS_MMU
		select HAS_PCI
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		help
		  This is support for the Intel x86 architecture.

	config ARCH_MINGW
		bool "mingw      "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		help
		  This is support for the Intel x86 architecture.

	config ARCH_PPC
		bool "ppc        "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_BIG
		help
		  This is support for the PowerPC architecture.

	config ARCH_M68K
		bool "m68k       "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_BIG
		help
		  This is support for the Motorola/Freescale M68k architecture.

	config ARCH_SPARC
		bool "sparc      "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_BIG
		help
		  This is support for the SPARC architecture.

	config ARCH_MICROBLAZE
		bool "microblaze "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_BIG
		help
		  This is support for the Xilinx MicroBlaze architecture (with MMU).

	config ARCH_MIPS
		bool "mips       "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		select ARCH_SUPPORTS_ENDIAN_BIG
		help
		  This is support for the MIPS architecture.

	config ARCH_CRIS
		bool "cris       "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		help
		  This is support for the cris architecture.

	config ARCH_PARISC
		bool "parisc     "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_BIG
		help
		  This is support for the parisc architecture.

	config ARCH_SH
		bool "superh     "
		select HAS_MMU
		select ARCH_SUPPORTS_ENDIAN_LITTLE
		select ARCH_SUPPORTS_ENDIAN_BIG
		help
		  This is support for the SuperH architecture.
endchoice

#
# superh
#
choice
	prompt "superh family   "
	depends on ARCH_SH

	config ARCH_SH_SH3
		bool "sh3        "

	config ARCH_SH_SH4
		bool "sh4        "
endchoice


#
# x86
#
choice
	prompt "x86 optimization"
	depends on ARCH_X86
	default ARCH_X86_I586

	config ARCH_X86_I386
		bool "386        "
		help
		  The compiler will generate code for i386 CPUs as default. This code will
		  run on almost all x86_32 processors.

	config ARCH_X86_I486
		bool "486        "
		help
		  The compiler will generate code for i486 CPUs as default. This code will run
		  on almost all x86/ia32 processors, but not on i386!

	config ARCH_X86_I586
		bool "586        "
		help
		  The compiler will generate code for i586 class CPUs as default (Pentium).
		  This code will run on almost all x86/ia32 processors, but not on i386 and i486!

	config ARCH_X86_I686
		bool "686        "
		help
		  The compiler will generate code for i686 class CPUs as default (Pentium Pro).
		  This code will run on almost all x86/ia32 processors, but not on i386, i486 and pentium!

	config ARCH_X86_P2
		bool "PII        "
		help
		  The compiler will generate code for Pentium II CPUs as default.
		  This code will run on Pentium II and above CPUs.

  	config ARCH_X86_P3M
		bool "PIII/M     "
		help
		  The compiler will generate code for Pentium III and Pentium M CPUs as default.
		  This code will run on Pentium III and above CPUs. Note: A Pentium M is a successor
		  of Pentium III (Pentium 4 is a dead end)

endchoice


#
# endianess
#
config ARCH_SUPPORTS_ENDIAN_BIG
       bool

config ARCH_SUPPORTS_ENDIAN_LITTLE
       bool

choice
	prompt "endianess       "
	default ENDIAN_LITTLE

	config ENDIAN_BIG
		bool "big        "
		depends on ARCH_SUPPORTS_ENDIAN_BIG

	config ENDIAN_LITTLE
		bool "little     "
		depends on ARCH_SUPPORTS_ENDIAN_LITTLE
endchoice


#
# ARM Architecture Version
#
config ARCH_ARM_V6
	bool "arm architecture version >= ARMv6"
	depends on ARCH_ARM
	help
	  This options enables optimisation for ARMv6 cores.

	  Select this if you have an arm processor with an
	  architecture version of ARMv6 or newer. Which is the case
	  for the ARM11 and Cortex A Cores.

config ARCH_ARM_IWMMXT
	bool "support iwmmxt extension"
	depends on ARCH_ARM
	help
	  This enables the iwmmxt extension. This is present on some
	  but not all pxa processors.

config ARCH_ARM_NEON
	bool "support NEON extension"
	depends on ARCH_ARM
	help
	  This enables the NEON extension. This is e.g. present on
	  Cortex A8 processors.

#
# hardware / software floating point
#
config HAS_HARDFLOAT
	bool
	prompt "hardware floating point"
	default y if ARCH_ALPHA
	default y if ARCH_X86
	default y if ARCH_SPARC
	default n

#
# PCI bus
#
config HAS_PCI
	bool
	prompt "pci support" if ARCH_PPC

#
# memory management unit
#
config HAS_MMU
	bool

#
# sizeof long double
#
config SIZEOF_LONG_DOUBLE
	string
	default "12" if ARCH_X86
#	default "16" if ARCH_X86_64
	default "8"
	# FIXME: add more values

#
# arch string
#
config ARCH_STRING
	string
	default "arm"			if ARCH_ARM
	default "avr"			if ARCH_AVR
	default "alpha"			if ARCH_ALPHA
	default "blackfin"		if ARCH_BLACKFIN
	default "i386"			if ARCH_X86
	default "i386"			if ARCH_MINGW
	default "m68k"			if ARCH_M68K
	default "ppc"			if ARCH_PPC
	default "sparc"			if ARCH_SPARC
	default "microblaze"		if ARCH_MICROBLAZE
	default "mips"			if ARCH_MIPS
	default "cris"			if ARCH_CRIS
	default "parisc"		if ARCH_PARISC
	default "sh"			if ARCH_SH

# ----------------------------------------------------------------------------

source "generated/microblaze_options.in"
source "generated/architecture_options.in"

endmenu