diff options
author | Wu Zhangjin <wuzhangjin@gmail.com> | 2009-07-02 11:27:41 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-09-17 14:07:47 -0400 |
commit | 3702bba5eb4f7a0c89107089af6fd9bc2966b65a (patch) | |
tree | ab2a7c8a0a88d7fb2ade98d42d24655370537640 | |
parent | 3209e70e5ed1821be8d9b87fe9e8bd6cffa4b4c7 (diff) |
MIPS: Loongson: Add GCC 4.4 support for Loongson2E
Because only gcc >=4.4 have loongson-specific support, we need to choose
the suitable -march argument for gcc <= 4.3 and gcc >= 4.4, and here, we
use -march=loongson2e for loongson2e.
Thanks goes to Arnaud Patard <apatard@mandriva.com> for suggestion of
using cc-options(Documentation/kbuild/makefiles.txt). and thanks Zhang
Le for introducing the new CPU_LOONGSON2E kernel option.
NOTE: -mtune option is not need if -march and -mtune use the same value.
Signed-off-by: Zhang Le <r0bertz@gentoo.org>
Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/Kconfig | 18 | ||||
-rw-r--r-- | arch/mips/Makefile | 6 | ||||
-rw-r--r-- | arch/mips/loongson/Kconfig | 2 |
3 files changed, 17 insertions, 9 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 482dcc3b91e1..466920aa067f 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -1030,12 +1030,10 @@ choice | |||
1030 | prompt "CPU type" | 1030 | prompt "CPU type" |
1031 | default CPU_R4X00 | 1031 | default CPU_R4X00 |
1032 | 1032 | ||
1033 | config CPU_LOONGSON2 | 1033 | config CPU_LOONGSON2E |
1034 | bool "Loongson 2" | 1034 | bool "Loongson 2E" |
1035 | depends on SYS_HAS_CPU_LOONGSON2 | 1035 | depends on SYS_HAS_CPU_LOONGSON2E |
1036 | select CPU_SUPPORTS_32BIT_KERNEL | 1036 | select CPU_LOONGSON2 |
1037 | select CPU_SUPPORTS_64BIT_KERNEL | ||
1038 | select CPU_SUPPORTS_HIGHMEM | ||
1039 | help | 1037 | help |
1040 | The Loongson 2E processor implements the MIPS III instruction set | 1038 | The Loongson 2E processor implements the MIPS III instruction set |
1041 | with many extensions. | 1039 | with many extensions. |
@@ -1282,7 +1280,13 @@ config CPU_CAVIUM_OCTEON | |||
1282 | 1280 | ||
1283 | endchoice | 1281 | endchoice |
1284 | 1282 | ||
1285 | config SYS_HAS_CPU_LOONGSON2 | 1283 | config CPU_LOONGSON2 |
1284 | bool | ||
1285 | select CPU_SUPPORTS_32BIT_KERNEL | ||
1286 | select CPU_SUPPORTS_64BIT_KERNEL | ||
1287 | select CPU_SUPPORTS_HIGHMEM | ||
1288 | |||
1289 | config SYS_HAS_CPU_LOONGSON2E | ||
1286 | bool | 1290 | bool |
1287 | 1291 | ||
1288 | config SYS_HAS_CPU_MIPS32_R1 | 1292 | config SYS_HAS_CPU_MIPS32_R1 |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 94d6f5813860..1efa9aa64880 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -120,7 +120,11 @@ cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap | |||
120 | cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap | 120 | cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap |
121 | cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap | 121 | cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap |
122 | cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap | 122 | cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap |
123 | cflags-$(CONFIG_CPU_LOONGSON2) += -march=r4600 -Wa,--trap | 123 | # only gcc >= 4.4 have the loongson-specific support |
124 | cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap | ||
125 | cflags-$(CONFIG_CPU_LOONGSON2E) += \ | ||
126 | $(call cc-option,-march=loongson2e,-march=r4600) | ||
127 | |||
124 | cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ | 128 | cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ |
125 | -Wa,-mips32 -Wa,--trap | 129 | -Wa,-mips32 -Wa,--trap |
126 | cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ | 130 | cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ |
diff --git a/arch/mips/loongson/Kconfig b/arch/mips/loongson/Kconfig index 376712a0e2f1..d45092505fa1 100644 --- a/arch/mips/loongson/Kconfig +++ b/arch/mips/loongson/Kconfig | |||
@@ -7,7 +7,7 @@ config LEMOTE_FULOONG2E | |||
7 | select ARCH_SPARSEMEM_ENABLE | 7 | select ARCH_SPARSEMEM_ENABLE |
8 | select CEVT_R4K | 8 | select CEVT_R4K |
9 | select CSRC_R4K | 9 | select CSRC_R4K |
10 | select SYS_HAS_CPU_LOONGSON2 | 10 | select SYS_HAS_CPU_LOONGSON2E |
11 | select DMA_NONCOHERENT | 11 | select DMA_NONCOHERENT |
12 | select BOOT_ELF32 | 12 | select BOOT_ELF32 |
13 | select BOARD_SCACHE | 13 | select BOARD_SCACHE |