1 # mips default CPU ISAs
2 config BR2_MIPS_CPU_MIPS32
4 select BR2_MIPS_NAN_LEGACY
5 config BR2_MIPS_CPU_MIPS32R2
7 select BR2_MIPS_NAN_LEGACY
8 config BR2_MIPS_CPU_MIPS32R5
10 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
11 config BR2_MIPS_CPU_MIPS32R6
13 select BR2_MIPS_NAN_2008
14 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
15 config BR2_MIPS_CPU_MIPS64
17 select BR2_MIPS_NAN_LEGACY
18 config BR2_MIPS_CPU_MIPS64R2
20 select BR2_MIPS_NAN_LEGACY
21 config BR2_MIPS_CPU_MIPS64R5
23 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
24 config BR2_MIPS_CPU_MIPS64R6
26 select BR2_MIPS_NAN_2008
27 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
30 prompt "Target Architecture Variant"
31 default BR2_mips_32 if BR2_mips || BR2_mipsel
32 default BR2_mips_64 if BR2_mips64 || BR2_mips64el
33 depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
35 Specific CPU variant to use
37 64bit cabable: 64, 64r2, 64r5, 64r6
38 non-64bit capable: 32, 32r2, 32r5, 32r6
42 depends on !BR2_ARCH_IS_64
43 select BR2_MIPS_CPU_MIPS32
45 bool "Generic MIPS32R2"
46 depends on !BR2_ARCH_IS_64
47 select BR2_MIPS_CPU_MIPS32R2
49 bool "Generic MIPS32R5"
50 depends on !BR2_ARCH_IS_64
51 select BR2_MIPS_CPU_MIPS32R5
53 bool "Generic MIPS32R6"
54 depends on !BR2_ARCH_IS_64
55 select BR2_MIPS_CPU_MIPS32R6
56 config BR2_mips_interaptiv
58 depends on !BR2_ARCH_IS_64
59 select BR2_MIPS_CPU_MIPS32R2
60 select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
63 depends on !BR2_ARCH_IS_64
64 select BR2_MIPS_CPU_MIPS32R5
65 select BR2_MIPS_NAN_2008
66 select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
69 depends on !BR2_ARCH_IS_64
70 select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
71 select BR2_MIPS_CPU_MIPS32R6
74 depends on !BR2_ARCH_IS_64
75 select BR2_MIPS_CPU_MIPS32R5
76 select BR2_MIPS_NAN_2008
77 config BR2_mips_xburst
79 depends on !BR2_ARCH_IS_64
80 select BR2_MIPS_CPU_MIPS32R2
82 The Ingenic XBurst is a MIPS32R2 microprocessor. It has a
83 bug in the FPU that can generate incorrect results in
84 certain cases. The problem shows up when you have several
85 fused madd instructions in sequence with dependant
86 operands. This requires the -mno-fused-madd compiler option
87 to be used in order to prevent emitting these instructions.
89 See http://www.ingenic.com/en/?xburst.html
92 depends on BR2_ARCH_IS_64
93 select BR2_MIPS_CPU_MIPS64
95 bool "Generic MIPS64R2"
96 depends on BR2_ARCH_IS_64
97 select BR2_MIPS_CPU_MIPS64R2
99 bool "Generic MIPS64R5"
100 depends on BR2_ARCH_IS_64
101 select BR2_MIPS_CPU_MIPS64R5
103 bool "Generic MIPS64R6"
104 depends on BR2_ARCH_IS_64
105 select BR2_MIPS_CPU_MIPS64R6
106 config BR2_mips_i6400
108 depends on BR2_ARCH_IS_64
109 select BR2_MIPS_CPU_MIPS64R6
110 select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
111 config BR2_mips_p6600
113 depends on BR2_ARCH_IS_64
114 select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
115 select BR2_MIPS_CPU_MIPS64R6
120 default BR2_MIPS_NABI32
121 depends on BR2_mips64 || BR2_mips64el
124 Application Binary Interface to use
126 config BR2_MIPS_NABI32
128 depends on BR2_ARCH_IS_64
129 select BR2_KERNEL_64_USERLAND_32
130 config BR2_MIPS_NABI64
132 depends on BR2_ARCH_IS_64
135 config BR2_MIPS_SOFT_FLOAT
136 bool "Use soft-float"
138 select BR2_SOFT_FLOAT
140 If your target CPU does not have a Floating Point Unit (FPU)
141 or a kernel FPU emulator, but you still wish to support
142 floating point functions, then everything will need to be
143 compiled with soft floating point support (-msoft-float).
147 default BR2_MIPS_FP32_MODE_XX
148 depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT
150 MIPS32 supports different FP modes (32,xx,64). Information
151 about FP modes can be found here:
152 https://sourceware.org/binutils/docs/as/MIPS-Options.html
153 https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code
155 config BR2_MIPS_FP32_MODE_32
157 depends on !BR2_MIPS_CPU_MIPS32R6
159 config BR2_MIPS_FP32_MODE_XX
161 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
163 config BR2_MIPS_FP32_MODE_64
165 depends on !BR2_MIPS_CPU_MIPS32
168 config BR2_GCC_TARGET_FP32_MODE
169 default "32" if BR2_MIPS_FP32_MODE_32
170 default "xx" if BR2_MIPS_FP32_MODE_XX
171 default "64" if BR2_MIPS_FP32_MODE_64
173 config BR2_MIPS_NAN_LEGACY
176 config BR2_MIPS_NAN_2008
178 select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
182 default BR2_MIPS_ENABLE_NAN_2008
183 depends on BR2_mips_32r5 || BR2_mips_64r5
185 MIPS supports two different NaN encodings, legacy and 2008.
186 Information about MIPS NaN encodings can be found here:
187 https://sourceware.org/binutils/docs/as/MIPS-NaN-Encodings.html
189 config BR2_MIPS_ENABLE_NAN_LEGACY
191 select BR2_MIPS_NAN_LEGACY
193 config BR2_MIPS_ENABLE_NAN_2008
195 depends on !BR2_MIPS_SOFT_FLOAT
196 select BR2_MIPS_NAN_2008
199 config BR2_GCC_TARGET_NAN
200 default "legacy" if BR2_MIPS_NAN_LEGACY
201 default "2008" if BR2_MIPS_NAN_2008
204 default "mips" if BR2_mips
205 default "mipsel" if BR2_mipsel
206 default "mips64" if BR2_mips64
207 default "mips64el" if BR2_mips64el
210 default "LITTLE" if BR2_mipsel || BR2_mips64el
211 default "BIG" if BR2_mips || BR2_mips64
213 config BR2_GCC_TARGET_ARCH
214 default "mips32" if BR2_mips_32
215 default "mips32r2" if BR2_mips_32r2
216 default "mips32r5" if BR2_mips_32r5
217 default "mips32r6" if BR2_mips_32r6
218 default "interaptiv" if BR2_mips_interaptiv
219 default "m5101" if BR2_mips_m5150
220 default "m6201" if BR2_mips_m6250
221 default "p5600" if BR2_mips_p5600
222 default "mips32r2" if BR2_mips_xburst
223 default "mips64" if BR2_mips_64
224 default "mips64r2" if BR2_mips_64r2
225 default "mips64r5" if BR2_mips_64r5
226 default "mips64r6" if BR2_mips_64r6
227 default "i6400" if BR2_mips_i6400
228 default "p6600" if BR2_mips_p6600
230 config BR2_MIPS_OABI32
232 default y if BR2_mips || BR2_mipsel
234 config BR2_GCC_TARGET_ABI
235 default "32" if BR2_MIPS_OABI32
236 default "n32" if BR2_MIPS_NABI32
237 default "64" if BR2_MIPS_NABI64
239 config BR2_READELF_ARCH_NAME