summaryrefslogtreecommitdiff
path: root/kconfig/arch-variant-mips.kconfig
blob: 039704afe2b65aac97f84fbe8cc5740e94a705f8 (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
################################################################################
# Embtoolkit
# Copyright(C) 2009-2011 Abdoulaye Walsimou GAYE. All rights reserved.
#
# 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
	config EMBTK_ARCH_MIPS_MIPS1_BIG
		bool "MIPS I big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS2_LITTLE
		bool "MIPS II little endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS2_BIG
		bool "MIPS II big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS3_LITTLE
		bool "MIPS III little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS3_BIG
		bool "MIPS III big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS4_LITTLE
		bool "MIPS IV little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS4_BIG
		bool "MIPS IV big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS32_LITTLE
		bool "MIPS32 little endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS32_BIG
		bool "MIPS32 big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS32R2_LITTLE
		bool "MIPS32 release 2 little endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS32R2_BIG
		bool "MIPS32 release 2 big endian"
		select EMBTK_TARGET_ARCH_32BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN

	config EMBTK_ARCH_MIPS_MIPS64_LITTLE
		bool "MIPS64 little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS64_BIG
		bool "MIPS64 big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS64R2_LITTLE
		bool "MIPS64 release 2 little endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_LITTLE_ENDIAN
	config EMBTK_ARCH_MIPS_MIPS64R2_BIG
		bool "MIPS64 release 2 big endian"
		select EMBTK_TARGET_ARCH_64BITS
		select EMBTK_ARCH_MIPS_BIG_ENDIAN

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

	config EMBTK_ARCH_MIPS_ABI_N32
		bool "n32" if !EMBTK_TARGET_ARCH_32BITS
		select EMBTK_64BITS_FS_COMPAT32

#	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
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