aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-21 15:46:48 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-21 15:46:48 -0400
commitcd975ae0ce13e4cbb21f13ae1222bdb6a8996ba0 (patch)
treeeb3346e529b1fc120d4bb6dd3305e0a9c8698a67
parent881bcabbde8bc13854a2cb30847abe181d31c5fd (diff)
parent8ff98b9c993d59d6b396a42266c6d323c8f28cec (diff)
Merge tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming
Pull c6x updates from Mark Salter: "Clean up some c6x Kconfig items and add support for Elf FDPIC loader." * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming: C6X: remove unused config items C6X: add support to build with BINFMT_ELF_FDPIC C6X: change main arch kbuild symbol
-rw-r--r--arch/c6x/Kconfig14
-rw-r--r--arch/c6x/include/asm/elf.h14
-rw-r--r--arch/c6x/include/asm/mmu.h4
-rw-r--r--arch/c6x/include/asm/ptrace.h5
-rw-r--r--fs/Kconfig.binfmt2
5 files changed, 24 insertions, 15 deletions
diff --git a/arch/c6x/Kconfig b/arch/c6x/Kconfig
index 1c3ccd416d50..1f15b88b537f 100644
--- a/arch/c6x/Kconfig
+++ b/arch/c6x/Kconfig
@@ -3,7 +3,7 @@
3# see Documentation/kbuild/kconfig-language.txt. 3# see Documentation/kbuild/kconfig-language.txt.
4# 4#
5 5
6config TMS320C6X 6config C6X
7 def_bool y 7 def_bool y
8 select CLKDEV_LOOKUP 8 select CLKDEV_LOOKUP
9 select GENERIC_IRQ_SHOW 9 select GENERIC_IRQ_SHOW
@@ -19,24 +19,12 @@ config TMS320C6X
19config MMU 19config MMU
20 def_bool n 20 def_bool n
21 21
22config ZONE_DMA
23 def_bool y
24
25config FPU 22config FPU
26 def_bool n 23 def_bool n
27 24
28config HIGHMEM
29 def_bool n
30
31config NUMA
32 def_bool n
33
34config RWSEM_GENERIC_SPINLOCK 25config RWSEM_GENERIC_SPINLOCK
35 def_bool y 26 def_bool y
36 27
37config RWSEM_XCHGADD_ALGORITHM
38 def_bool n
39
40config GENERIC_CALIBRATE_DELAY 28config GENERIC_CALIBRATE_DELAY
41 def_bool y 29 def_bool y
42 30
diff --git a/arch/c6x/include/asm/elf.h b/arch/c6x/include/asm/elf.h
index d57865ba2c44..f4552db20b4a 100644
--- a/arch/c6x/include/asm/elf.h
+++ b/arch/c6x/include/asm/elf.h
@@ -30,7 +30,19 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
30 */ 30 */
31#define elf_check_arch(x) ((x)->e_machine == EM_TI_C6000) 31#define elf_check_arch(x) ((x)->e_machine == EM_TI_C6000)
32 32
33#define elf_check_const_displacement(x) (1) 33#define elf_check_fdpic(x) (1)
34#define elf_check_const_displacement(x) (0)
35
36#define ELF_FDPIC_PLAT_INIT(_regs, _exec_map, _interp_map, _dynamic_addr) \
37do { \
38 _regs->b4 = (_exec_map); \
39 _regs->a6 = (_interp_map); \
40 _regs->b6 = (_dynamic_addr); \
41} while (0)
42
43#define ELF_FDPIC_CORE_EFLAGS 0
44
45#define ELF_CORE_COPY_FPREGS(...) 0 /* No FPU regs to copy */
34 46
35/* 47/*
36 * These are used to set parameters in the core dumps. 48 * These are used to set parameters in the core dumps.
diff --git a/arch/c6x/include/asm/mmu.h b/arch/c6x/include/asm/mmu.h
index 41592bf16067..4467e770a1ce 100644
--- a/arch/c6x/include/asm/mmu.h
+++ b/arch/c6x/include/asm/mmu.h
@@ -13,6 +13,10 @@
13 13
14typedef struct { 14typedef struct {
15 unsigned long end_brk; 15 unsigned long end_brk;
16#ifdef CONFIG_BINFMT_ELF_FDPIC
17 unsigned long exec_fdpic_loadmap;
18 unsigned long interp_fdpic_loadmap;
19#endif
16} mm_context_t; 20} mm_context_t;
17 21
18#endif /* _ASM_C6X_MMU_H */ 22#endif /* _ASM_C6X_MMU_H */
diff --git a/arch/c6x/include/asm/ptrace.h b/arch/c6x/include/asm/ptrace.h
index 21e8d7931fe7..b04ff5964258 100644
--- a/arch/c6x/include/asm/ptrace.h
+++ b/arch/c6x/include/asm/ptrace.h
@@ -97,6 +97,11 @@
97#define PT_DP PT_B14 /* Data Segment Pointer (B14) */ 97#define PT_DP PT_B14 /* Data Segment Pointer (B14) */
98#define PT_SP PT_B15 /* Stack Pointer (B15) */ 98#define PT_SP PT_B15 /* Stack Pointer (B15) */
99 99
100#define PTRACE_GETFDPIC 31 /* get the ELF fdpic loadmap address */
101
102#define PTRACE_GETFDPIC_EXEC 0 /* [addr] request the executable loadmap */
103#define PTRACE_GETFDPIC_INTERP 1 /* [addr] request the interpreter loadmap */
104
100#ifndef __ASSEMBLY__ 105#ifndef __ASSEMBLY__
101 106
102#ifdef _BIG_ENDIAN 107#ifdef _BIG_ENDIAN
diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
index e95d1b64082c..022574202749 100644
--- a/fs/Kconfig.binfmt
+++ b/fs/Kconfig.binfmt
@@ -33,7 +33,7 @@ config ARCH_BINFMT_ELF_RANDOMIZE_PIE
33config BINFMT_ELF_FDPIC 33config BINFMT_ELF_FDPIC
34 bool "Kernel support for FDPIC ELF binaries" 34 bool "Kernel support for FDPIC ELF binaries"
35 default y 35 default y
36 depends on (FRV || BLACKFIN || (SUPERH32 && !MMU)) 36 depends on (FRV || BLACKFIN || (SUPERH32 && !MMU) || C6X)
37 help 37 help
38 ELF FDPIC binaries are based on ELF, but allow the individual load 38 ELF FDPIC binaries are based on ELF, but allow the individual load
39 segments of a binary to be located in memory independently of each 39 segments of a binary to be located in memory independently of each