diff options
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/Makefile | 27 | ||||
-rw-r--r-- | arch/mips/configs/bigsur_defconfig | 1 | ||||
-rw-r--r-- | arch/mips/configs/ip27_defconfig | 1 | ||||
-rw-r--r-- | arch/mips/configs/ip32_defconfig | 1 | ||||
-rw-r--r-- | arch/mips/configs/ocelot_c_defconfig | 1 | ||||
-rw-r--r-- | arch/mips/configs/ocelot_g_defconfig | 1 | ||||
-rw-r--r-- | arch/mips/configs/sb1250-swarm_defconfig | 1 | ||||
-rw-r--r-- | arch/mips/kernel/setup.c | 11 | ||||
-rw-r--r-- | arch/mips/mm/tlbex.c | 13 |
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 | ||
71 | CHECKFLAGS = $(CHECKFLAGS-y) | 71 | CHECKFLAGS = $(CHECKFLAGS-y) |
72 | 72 | ||
73 | ifdef CONFIG_BUILD_ELF64 | 73 | ifdef CONFIG_32BIT |
74 | gas-abi = 64 | ||
75 | ld-emul = $(64bit-emul) | ||
76 | vmlinux-32 = vmlinux.32 | ||
77 | vmlinux-64 = vmlinux | ||
78 | else | ||
79 | gas-abi = 32 | 74 | gas-abi = 32 |
80 | ld-emul = $(32bit-emul) | 75 | ld-emul = $(32bit-emul) |
81 | vmlinux-32 = vmlinux | 76 | vmlinux-32 = vmlinux |
82 | vmlinux-64 = vmlinux.64 | 77 | vmlinux-64 = vmlinux.64 |
78 | endif | ||
83 | 79 | ||
84 | cflags-$(CONFIG_64BIT) += $(call cc-option,-mno-explicit-relocs) | 80 | ifdef CONFIG_64BIT |
81 | gas-abi = 64 | ||
82 | ld-emul = $(64bit-emul) | ||
83 | vmlinux-32 = vmlinux.32 | ||
84 | vmlinux-64 = vmlinux | ||
85 | |||
86 | cflags-y += $(call cc-option,-mno-explicit-relocs) | ||
85 | endif | 87 | endif |
86 | 88 | ||
87 | # | 89 | # |
@@ -630,7 +632,6 @@ endif | |||
630 | ifdef CONFIG_SGI_IP27 | 632 | ifdef CONFIG_SGI_IP27 |
631 | core-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ | 633 | core-$(CONFIG_SGI_IP27) += arch/mips/sgi-ip27/ |
632 | cflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27 | 634 | cflags-$(CONFIG_SGI_IP27) += -Iinclude/asm-mips/mach-ip27 |
633 | ifdef CONFIG_BUILD_ELF64 | ||
634 | ifdef CONFIG_MAPPED_KERNEL | 635 | ifdef CONFIG_MAPPED_KERNEL |
635 | load-$(CONFIG_SGI_IP27) += 0xc00000004001c000 | 636 | load-$(CONFIG_SGI_IP27) += 0xc00000004001c000 |
636 | OBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 | 637 | OBJCOPYFLAGS := --change-addresses=0x3fffffff80000000 |
@@ -639,16 +640,6 @@ else | |||
639 | load-$(CONFIG_SGI_IP27) += 0xa80000000001c000 | 640 | load-$(CONFIG_SGI_IP27) += 0xa80000000001c000 |
640 | OBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 | 641 | OBJCOPYFLAGS := --change-addresses=0x57ffffff80000000 |
641 | endif | 642 | endif |
642 | else | ||
643 | ifdef CONFIG_MAPPED_KERNEL | ||
644 | load-$(CONFIG_SGI_IP27) += 0xffffffffc001c000 | ||
645 | OBJCOPYFLAGS := --change-addresses=0xc000000080000000 | ||
646 | dataoffset-$(CONFIG_SGI_IP27) += 0x01000000 | ||
647 | else | ||
648 | load-$(CONFIG_SGI_IP27) += 0xffffffff8001c000 | ||
649 | OBJCOPYFLAGS := --change-addresses=0xa800000080000000 | ||
650 | endif | ||
651 | endif | ||
652 | endif | 643 | endif |
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 | # |
248 | CONFIG_BINFMT_ELF=y | 248 | CONFIG_BINFMT_ELF=y |
249 | # CONFIG_BINFMT_MISC is not set | 249 | # CONFIG_BINFMT_MISC is not set |
250 | CONFIG_BUILD_ELF64=y | ||
251 | CONFIG_MIPS32_COMPAT=y | 250 | CONFIG_MIPS32_COMPAT=y |
252 | CONFIG_COMPAT=y | 251 | CONFIG_COMPAT=y |
253 | CONFIG_MIPS32_O32=y | 252 | CONFIG_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 | # |
235 | CONFIG_BINFMT_ELF=y | 235 | CONFIG_BINFMT_ELF=y |
236 | # CONFIG_BINFMT_MISC is not set | 236 | # CONFIG_BINFMT_MISC is not set |
237 | CONFIG_BUILD_ELF64=y | ||
238 | CONFIG_MIPS32_COMPAT=y | 237 | CONFIG_MIPS32_COMPAT=y |
239 | CONFIG_COMPAT=y | 238 | CONFIG_COMPAT=y |
240 | CONFIG_MIPS32_O32=y | 239 | CONFIG_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 | # |
225 | CONFIG_BINFMT_ELF=y | 225 | CONFIG_BINFMT_ELF=y |
226 | CONFIG_BINFMT_MISC=y | 226 | CONFIG_BINFMT_MISC=y |
227 | # CONFIG_BUILD_ELF64 is not set | ||
228 | CONFIG_MIPS32_COMPAT=y | 227 | CONFIG_MIPS32_COMPAT=y |
229 | CONFIG_COMPAT=y | 228 | CONFIG_COMPAT=y |
230 | CONFIG_MIPS32_O32=y | 229 | CONFIG_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 | # |
221 | CONFIG_BINFMT_ELF=y | 221 | CONFIG_BINFMT_ELF=y |
222 | # CONFIG_BINFMT_MISC is not set | 222 | # CONFIG_BINFMT_MISC is not set |
223 | # CONFIG_BUILD_ELF64 is not set | ||
224 | CONFIG_MIPS32_COMPAT=y | 223 | CONFIG_MIPS32_COMPAT=y |
225 | CONFIG_COMPAT=y | 224 | CONFIG_COMPAT=y |
226 | CONFIG_MIPS32_O32=y | 225 | CONFIG_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 | # |
224 | CONFIG_BINFMT_ELF=y | 224 | CONFIG_BINFMT_ELF=y |
225 | # CONFIG_BINFMT_MISC is not set | 225 | # CONFIG_BINFMT_MISC is not set |
226 | # CONFIG_BUILD_ELF64 is not set | ||
227 | CONFIG_MIPS32_COMPAT=y | 226 | CONFIG_MIPS32_COMPAT=y |
228 | CONFIG_COMPAT=y | 227 | CONFIG_COMPAT=y |
229 | CONFIG_MIPS32_O32=y | 228 | CONFIG_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 | # |
248 | CONFIG_BINFMT_ELF=y | 248 | CONFIG_BINFMT_ELF=y |
249 | # CONFIG_BINFMT_MISC is not set | 249 | # CONFIG_BINFMT_MISC is not set |
250 | # CONFIG_BUILD_ELF64 is not set | ||
251 | CONFIG_MIPS32_COMPAT=y | 250 | CONFIG_MIPS32_COMPAT=y |
252 | CONFIG_COMPAT=y | 251 | CONFIG_COMPAT=y |
253 | CONFIG_MIPS32_O32=y | 252 | CONFIG_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); |