summaryrefslogtreecommitdiff
path: root/kconfig/arch-variant-mips.kconfig
blob: 6f40773a98e576a24cc21f485496b8316f918d17 (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
################################################################################
# Embtoolkit
# Copyright(C) 2009-2011 Abdoulaye Walsimou GAYE.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
#
# \file         arch-variant.kconfig
# \brief	MIPS architecture kconfig options.
# \author       Abdoulaye Walsimou GAYE <awg@embtoolkit.org>
# \date         August 2009
################################################################################

choice
	prompt "MIPS architecture variant"
	depends on EMBTK_ARCH_MIPS
	default EMBTK_ARCH_MIPS_MIPS32_LITTLE
	help
	 Select architecture variant.
	config EMBTK_ARCH_MIPS_MIPS1_LITTLE
		bool "MIPS I little endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_1 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS1_BIG
		bool "MIPS I big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_1 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS2_LITTLE
		bool "MIPS II little endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_2 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS2_BIG
		bool "MIPS II big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_2 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS3_LITTLE
		bool "MIPS III little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_3 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS3_BIG
		bool "MIPS III big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_3 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS4_LITTLE
		bool "MIPS IV little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_4 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS4_BIG
		bool "MIPS IV big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_4 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS32_LITTLE
		bool "MIPS32 little endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS32 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS32_BIG
		bool "MIPS32 big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS32 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS32R2_LITTLE
		bool "MIPS32 release 2 little endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS32R2 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS32R2_BIG
		bool "MIPS32 release 2 big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS32R2 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS64_LITTLE
		bool "MIPS64 little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS64 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS64_BIG
		bool "MIPS64 big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS64 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS64R2_LITTLE
		bool "MIPS64 release 2 little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS64 if EMBTK_CLIB_UCLIBC
	config EMBTK_ARCH_MIPS_MIPS64R2_BIG
		bool "MIPS64 release 2 big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
		select KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS64 if EMBTK_CLIB_UCLIBC

endchoice

choice
	prompt "ABI"
	depends on EMBTK_ARCH_MIPS
	default EMBTK_ARCH_MIPS_ABI_O32
	help
	 Here you can select which abi you want to use.
	config EMBTK_ARCH_MIPS_ABI_O32
		bool "o32"
		select EMBTK_32BITS_FS
		select KEMBTK_UCLIBC_CONFIG_MIPS_O32_ABI if EMBTK_CLIB_UCLUBC

	config EMBTK_ARCH_MIPS_ABI_N32
		bool "n32" if !EMBTK_TARGET_ARCH_32BITS
		select EMBTK_64BITS_FS_COMPAT32
		select KEMBTK_UCLIBC_CONFIG_MIPS_N32_ABI if EMBTK_CLIB_UCLUBC

#	config EMBTK_ARCH_MIPS_ABI_EABI
#		bool "eabi (BROKEN)" if !EMBTK_TARGET_ARCH_32BITS

#	config EMBTK_ARCH_MIPS_ABI_O64
#		bool "o64 (BROKEN)" if !EMBTK_TARGET_ARCH_32BITS

	config EMBTK_ARCH_MIPS_ABI_N64
		bool "n64" if !EMBTK_TARGET_ARCH_32BITS
		select EMBTK_64BITS_FS
		select KEMBTK_UCLIBC_CONFIG_MIPS_N64_ABI if EMBTK_CLIB_UCLUBC
endchoice

config EMBTK_ARCH_MIPS_BIG_ENDIAN
	bool
	select EMBTK_TARGET_ARCH_BIG_ENDIAN
config EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	bool
	select EMBTK_TARGET_ARCH_LITTLE_ENDIAN