diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 15:46:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 15:46:48 -0400 |
commit | cd975ae0ce13e4cbb21f13ae1222bdb6a8996ba0 (patch) | |
tree | eb3346e529b1fc120d4bb6dd3305e0a9c8698a67 | |
parent | 881bcabbde8bc13854a2cb30847abe181d31c5fd (diff) | |
parent | 8ff98b9c993d59d6b396a42266c6d323c8f28cec (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/Kconfig | 14 | ||||
-rw-r--r-- | arch/c6x/include/asm/elf.h | 14 | ||||
-rw-r--r-- | arch/c6x/include/asm/mmu.h | 4 | ||||
-rw-r--r-- | arch/c6x/include/asm/ptrace.h | 5 | ||||
-rw-r--r-- | fs/Kconfig.binfmt | 2 |
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 | ||
6 | config TMS320C6X | 6 | config 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 | |||
19 | config MMU | 19 | config MMU |
20 | def_bool n | 20 | def_bool n |
21 | 21 | ||
22 | config ZONE_DMA | ||
23 | def_bool y | ||
24 | |||
25 | config FPU | 22 | config FPU |
26 | def_bool n | 23 | def_bool n |
27 | 24 | ||
28 | config HIGHMEM | ||
29 | def_bool n | ||
30 | |||
31 | config NUMA | ||
32 | def_bool n | ||
33 | |||
34 | config RWSEM_GENERIC_SPINLOCK | 25 | config RWSEM_GENERIC_SPINLOCK |
35 | def_bool y | 26 | def_bool y |
36 | 27 | ||
37 | config RWSEM_XCHGADD_ALGORITHM | ||
38 | def_bool n | ||
39 | |||
40 | config GENERIC_CALIBRATE_DELAY | 28 | config 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) \ | ||
37 | do { \ | ||
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 | ||
14 | typedef struct { | 14 | typedef 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 | |||
33 | config BINFMT_ELF_FDPIC | 33 | config 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 |