Commit | Line | Data |
---|---|---|
28c945c8 WZ |
1 | # |
2 | # Loongson Processors' Support | |
3 | # | |
4 | ||
5 | # Only gcc >= 4.4 have Loongson specific support | |
6 | cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap | |
7 | cflags-$(CONFIG_CPU_LOONGSON2E) += \ | |
8 | $(call cc-option,-march=loongson2e,-march=r4600) | |
9 | cflags-$(CONFIG_CPU_LOONGSON2F) += \ | |
10 | $(call cc-option,-march=loongson2f,-march=r4600) | |
11 | # Enable the workarounds for Loongson2f | |
12 | ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS | |
13 | ifeq ($(call as-option,-Wa$(comma)-mfix-loongson2f-nop,),) | |
14 | $(error only binutils >= 2.20.2 have needed option -mfix-loongson2f-nop) | |
15 | else | |
16 | cflags-$(CONFIG_CPU_NOP_WORKAROUNDS) += -Wa$(comma)-mfix-loongson2f-nop | |
17 | endif | |
18 | ifeq ($(call as-option,-Wa$(comma)-mfix-loongson2f-jump,),) | |
19 | $(error only binutils >= 2.20.2 have needed option -mfix-loongson2f-jump) | |
20 | else | |
21 | cflags-$(CONFIG_CPU_JUMP_WORKAROUNDS) += -Wa$(comma)-mfix-loongson2f-jump | |
22 | endif | |
23 | endif | |
24 | ||
5188129b HC |
25 | cflags-$(CONFIG_CPU_LOONGSON3) += -Wa,--trap |
26 | # | |
27 | # binutils from v2.25 on and gcc starting from v4.9.0 treat -march=loongson3a | |
28 | # as MIPS64 R2; older versions as just R1. This leaves the possibility open | |
29 | # that GCC might generate R2 code for -march=loongson3a which then is rejected | |
30 | # by GAS. The cc-option can't probe for this behaviour so -march=loongson3a | |
31 | # can't easily be used safely within the kbuild framework. | |
32 | # | |
33 | ifeq ($(call cc-ifversion, -ge, 0409, y), y) | |
820880cd | 34 | ifeq ($(call ld-ifversion, -ge, 225000000, y), y) |
5188129b HC |
35 | cflags-$(CONFIG_CPU_LOONGSON3) += \ |
36 | $(call cc-option,-march=loongson3a -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) | |
37 | else | |
38 | cflags-$(CONFIG_CPU_LOONGSON3) += \ | |
39 | $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) | |
40 | endif | |
41 | else | |
42 | cflags-$(CONFIG_CPU_LOONGSON3) += \ | |
43 | $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) | |
44 | endif | |
45 | ||
28c945c8 WZ |
46 | # |
47 | # Loongson Machines' Support | |
48 | # | |
49 | ||
30ad29bb HC |
50 | platform-$(CONFIG_MACH_LOONGSON64) += loongson64/ |
51 | cflags-$(CONFIG_MACH_LOONGSON64) += -I$(srctree)/arch/mips/include/asm/mach-loongson64 -mno-branch-likely | |
28c945c8 WZ |
52 | load-$(CONFIG_LEMOTE_FULOONG2E) += 0xffffffff80100000 |
53 | load-$(CONFIG_LEMOTE_MACH2F) += 0xffffffff80200000 | |
5a21e0ba | 54 | load-$(CONFIG_LOONGSON_MACH3X) += 0xffffffff80200000 |