aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/Makefile27
-rw-r--r--arch/mips/configs/bigsur_defconfig1
-rw-r--r--arch/mips/configs/ip27_defconfig1
-rw-r--r--arch/mips/configs/ip32_defconfig1
-rw-r--r--arch/mips/configs/ocelot_c_defconfig1
-rw-r--r--arch/mips/configs/ocelot_g_defconfig1
-rw-r--r--arch/mips/configs/sb1250-swarm_defconfig1
-rw-r--r--arch/mips/kernel/setup.c11
-rw-r--r--arch/mips/mm/tlbex.c13
9 files changed, 9 insertions, 48 deletions
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 3d8dac681c63..c626dd5942f6 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -70,18 +70,20 @@ CHECKFLAGS-$(CONFIG_CPU_LITTLE_ENDIAN) += -D__MIPSEL__
70 70
71CHECKFLAGS = $(CHECKFLAGS-y) 71CHECKFLAGS = $(CHECKFLAGS-y)
72 72
73ifdef CONFIG_BUILD_ELF64 73ifdef CONFIG_32BIT
74gas-abi = 64
75ld-emul = $(64bit-emul)
76vmlinux-32 = vmlinux.32
77vmlinux-64 = vmlinux
78else
79gas-abi = 32 74gas-abi = 32
80ld-emul = $(32bit-emul) 75ld-emul = $(32bit-emul)
81vmlinux-32 = vmlinux 76vmlinux-32 = vmlinux
82vmlinux-64 = vmlinux.64 77vmlinux-64 = vmlinux.64
78endif
83 79
84cflags-$(CONFIG_64BIT) += $(call cc-option,-mno-explicit-relocs) 80ifdef CONFIG_64BIT
81gas-abi = 64
82ld-emul = $(64bit-emul)
83vmlinux-32 = vmlinux.32
84vmlinux-64 = vmlinux
85
86cflags-y += $(call cc-option,-mno-explicit-relocs)
85endif 87endif
86 88
87# 89#
@@ -630,7 +632,6 @@ endif
630ifdef CONFIG_SGI_IP27 632ifdef CONFIG_SGI_IP27
631core-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ 633core-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/
632cflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27 634cflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27
633ifdef CONFIG_BUILD_ELF64
634ifdef CONFIG_MAPPED_KERNEL 635ifdef CONFIG_MAPPED_KERNEL
635load-$(CONFIG_SGI_IP27) += 0xc00000004001c000 636load-$(CONFIG_SGI_IP27) += 0xc00000004001c000
636OBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 637OBJCOPYFLAGS := --change-addresses=0x3fffffff80000000
@@ -639,16 +640,6 @@ else
639load-$(CONFIG_SGI_IP27) += 0xa80000000001c000 640load-$(CONFIG_SGI_IP27) += 0xa80000000001c000
640OBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 641OBJCOPYFLAGS := --change-addresses=0x57ffffff80000000
641endif 642endif
642else
643ifdef CONFIG_MAPPED_KERNEL
644load-$(CONFIG_SGI_IP27) += 0xffffffffc001c000
645OBJCOPYFLAGS := --change-addresses=0xc000000080000000
646dataoffset-$(CONFIG_SGI_IP27) += 0x01000000
647else
648load-$(CONFIG_SGI_IP27) += 0xffffffff8001c000
649OBJCOPYFLAGS := --change-addresses=0xa800000080000000
650endif
651endif
652endif 643endif
653 644
654# 645#
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index 6fd353779813..e39f1da62976 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_defconfig
@@ -247,7 +247,6 @@ CONFIG_MMU=y
247# 247#
248CONFIG_BINFMT_ELF=y 248CONFIG_BINFMT_ELF=y
249# CONFIG_BINFMT_MISC is not set 249# CONFIG_BINFMT_MISC is not set
250CONFIG_BUILD_ELF64=y
251CONFIG_MIPS32_COMPAT=y 250CONFIG_MIPS32_COMPAT=y
252CONFIG_COMPAT=y 251CONFIG_COMPAT=y
253CONFIG_MIPS32_O32=y 252CONFIG_MIPS32_O32=y
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index 58c22cd344d3..009ec9d97738 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_defconfig
@@ -234,7 +234,6 @@ CONFIG_MMU=y
234# 234#
235CONFIG_BINFMT_ELF=y 235CONFIG_BINFMT_ELF=y
236# CONFIG_BINFMT_MISC is not set 236# CONFIG_BINFMT_MISC is not set
237CONFIG_BUILD_ELF64=y
238CONFIG_MIPS32_COMPAT=y 237CONFIG_MIPS32_COMPAT=y
239CONFIG_COMPAT=y 238CONFIG_COMPAT=y
240CONFIG_MIPS32_O32=y 239CONFIG_MIPS32_O32=y
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index a34db6e82b27..54afa2556f5f 100644
--- a/arch/mips/configs/ip32_defconfig
+++ b/arch/mips/configs/ip32_defconfig
@@ -224,7 +224,6 @@ CONFIG_MMU=y
224# 224#
225CONFIG_BINFMT_ELF=y 225CONFIG_BINFMT_ELF=y
226CONFIG_BINFMT_MISC=y 226CONFIG_BINFMT_MISC=y
227# CONFIG_BUILD_ELF64 is not set
228CONFIG_MIPS32_COMPAT=y 227CONFIG_MIPS32_COMPAT=y
229CONFIG_COMPAT=y 228CONFIG_COMPAT=y
230CONFIG_MIPS32_O32=y 229CONFIG_MIPS32_O32=y
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig
index e8d6bb3551a2..a8fc4c6c10c9 100644
--- a/arch/mips/configs/ocelot_c_defconfig
+++ b/arch/mips/configs/ocelot_c_defconfig
@@ -220,7 +220,6 @@ CONFIG_MMU=y
220# 220#
221CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
222# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
223# CONFIG_BUILD_ELF64 is not set
224CONFIG_MIPS32_COMPAT=y 223CONFIG_MIPS32_COMPAT=y
225CONFIG_COMPAT=y 224CONFIG_COMPAT=y
226CONFIG_MIPS32_O32=y 225CONFIG_MIPS32_O32=y
diff --git a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig
index b6126ad4d06d..dab6c896fbb7 100644
--- a/arch/mips/configs/ocelot_g_defconfig
+++ b/arch/mips/configs/ocelot_g_defconfig
@@ -223,7 +223,6 @@ CONFIG_MMU=y
223# 223#
224CONFIG_BINFMT_ELF=y 224CONFIG_BINFMT_ELF=y
225# CONFIG_BINFMT_MISC is not set 225# CONFIG_BINFMT_MISC is not set
226# CONFIG_BUILD_ELF64 is not set
227CONFIG_MIPS32_COMPAT=y 226CONFIG_MIPS32_COMPAT=y
228CONFIG_COMPAT=y 227CONFIG_COMPAT=y
229CONFIG_MIPS32_O32=y 228CONFIG_MIPS32_O32=y
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index 52048c906079..6481fb2426f6 100644
--- a/arch/mips/configs/sb1250-swarm_defconfig
+++ b/arch/mips/configs/sb1250-swarm_defconfig
@@ -247,7 +247,6 @@ CONFIG_MMU=y
247# 247#
248CONFIG_BINFMT_ELF=y 248CONFIG_BINFMT_ELF=y
249# CONFIG_BINFMT_MISC is not set 249# CONFIG_BINFMT_MISC is not set
250# CONFIG_BUILD_ELF64 is not set
251CONFIG_MIPS32_COMPAT=y 250CONFIG_MIPS32_COMPAT=y
252CONFIG_COMPAT=y 251CONFIG_COMPAT=y
253CONFIG_MIPS32_O32=y 252CONFIG_MIPS32_O32=y
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index d9293c558e41..0cb3b6097e0e 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -447,21 +447,10 @@ static inline void resource_init(void)
447{ 447{
448 int i; 448 int i;
449 449
450#if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64)
451 /*
452 * The 64bit code in 32bit object format trick can't represent
453 * 64bit wide relocations for linker script symbols.
454 */
455 code_resource.start = CPHYSADDR(&_text);
456 code_resource.end = CPHYSADDR(&_etext) - 1;
457 data_resource.start = CPHYSADDR(&_etext);
458 data_resource.end = CPHYSADDR(&_edata) - 1;
459#else
460 code_resource.start = virt_to_phys(&_text); 450 code_resource.start = virt_to_phys(&_text);
461 code_resource.end = virt_to_phys(&_etext) - 1; 451 code_resource.end = virt_to_phys(&_etext) - 1;
462 data_resource.start = virt_to_phys(&_etext); 452 data_resource.start = virt_to_phys(&_etext);
463 data_resource.end = virt_to_phys(&_edata) - 1; 453 data_resource.end = virt_to_phys(&_edata) - 1;
464#endif
465 454
466 /* 455 /*
467 * Request address space for all standard RAM. 456 * Request address space for all standard RAM.
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index ac4f4bfaae50..599b3c297186 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -951,7 +951,6 @@ build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
951 /* No i_nop needed here, since the next insn doesn't touch TMP. */ 951 /* No i_nop needed here, since the next insn doesn't touch TMP. */
952 952
953#ifdef CONFIG_SMP 953#ifdef CONFIG_SMP
954# ifdef CONFIG_BUILD_ELF64
955 /* 954 /*
956 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3 955 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3
957 * stored in CONTEXT. 956 * stored in CONTEXT.
@@ -962,18 +961,6 @@ build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
962 i_daddu(p, ptr, ptr, tmp); 961 i_daddu(p, ptr, ptr, tmp);
963 i_dmfc0(p, tmp, C0_BADVADDR); 962 i_dmfc0(p, tmp, C0_BADVADDR);
964 i_ld(p, ptr, rel_lo(pgdc), ptr); 963 i_ld(p, ptr, rel_lo(pgdc), ptr);
965# else
966 /*
967 * 64 bit SMP running in compat space has the lower part of
968 * &pgd_current[smp_processor_id()] stored in CONTEXT.
969 */
970 if (!in_compat_space_p(pgdc))
971 panic("Invalid page directory address!");
972
973 i_dmfc0(p, ptr, C0_CONTEXT);
974 i_dsra(p, ptr, ptr, 23);
975 i_ld(p, ptr, 0, ptr);
976# endif
977#else 964#else
978 i_LA_mostly(p, ptr, pgdc); 965 i_LA_mostly(p, ptr, pgdc);
979 i_ld(p, ptr, rel_lo(pgdc), ptr); 966 i_ld(p, ptr, rel_lo(pgdc), ptr);