diff options
| -rw-r--r-- | arch/blackfin/include/asm/elf.h | 84 | ||||
| -rw-r--r-- | arch/blackfin/kernel/module.c | 22 |
2 files changed, 53 insertions, 53 deletions
diff --git a/arch/blackfin/include/asm/elf.h b/arch/blackfin/include/asm/elf.h index cdbfcfc30f6a..230e1605d3fb 100644 --- a/arch/blackfin/include/asm/elf.h +++ b/arch/blackfin/include/asm/elf.h | |||
| @@ -55,50 +55,50 @@ do { \ | |||
| 55 | #define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC | 55 | #define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC |
| 56 | #define ELF_EXEC_PAGESIZE 4096 | 56 | #define ELF_EXEC_PAGESIZE 4096 |
| 57 | 57 | ||
| 58 | #define R_unused0 0 /* relocation type 0 is not defined */ | 58 | #define R_BFIN_UNUSED0 0 /* relocation type 0 is not defined */ |
| 59 | #define R_pcrel5m2 1 /*LSETUP part a */ | 59 | #define R_BFIN_PCREL5M2 1 /* LSETUP part a */ |
| 60 | #define R_unused1 2 /* relocation type 2 is not defined */ | 60 | #define R_BFIN_UNUSED1 2 /* relocation type 2 is not defined */ |
| 61 | #define R_pcrel10 3 /* type 3, if cc jump <target> */ | 61 | #define R_BFIN_PCREL10 3 /* type 3, if cc jump <target> */ |
| 62 | #define R_pcrel12_jump 4 /* type 4, jump <target> */ | 62 | #define R_BFIN_PCREL12_JUMP 4 /* type 4, jump <target> */ |
| 63 | #define R_rimm16 5 /* type 0x5, rN = <target> */ | 63 | #define R_BFIN_RIMM16 5 /* type 0x5, rN = <target> */ |
| 64 | #define R_luimm16 6 /* # 0x6, preg.l=<target> Load imm 16 to lower half */ | 64 | #define R_BFIN_LUIMM16 6 /* # 0x6, preg.l=<target> Load imm 16 to lower half */ |
| 65 | #define R_huimm16 7 /* # 0x7, preg.h=<target> Load imm 16 to upper half */ | 65 | #define R_BFIN_HUIMM16 7 /* # 0x7, preg.h=<target> Load imm 16 to upper half */ |
| 66 | #define R_pcrel12_jump_s 8 /* # 0x8 jump.s <target> */ | 66 | #define R_BFIN_PCREL12_JUMP_S 8 /* # 0x8 jump.s <target> */ |
| 67 | #define R_pcrel24_jump_x 9 /* # 0x9 jump.x <target> */ | 67 | #define R_BFIN_PCREL24_JUMP_X 9 /* # 0x9 jump.x <target> */ |
| 68 | #define R_pcrel24 10 /* # 0xa call <target> , not expandable */ | 68 | #define R_BFIN_PCREL24 10 /* # 0xa call <target> , not expandable */ |
| 69 | #define R_unusedb 11 /* # 0xb not generated */ | 69 | #define R_BFIN_UNUSEDB 11 /* # 0xb not generated */ |
| 70 | #define R_unusedc 12 /* # 0xc not used */ | 70 | #define R_BFIN_UNUSEDC 12 /* # 0xc not used */ |
| 71 | #define R_pcrel24_jump_l 13 /*0xd jump.l <target> */ | 71 | #define R_BFIN_PCREL24_JUMP_L 13 /* 0xd jump.l <target> */ |
| 72 | #define R_pcrel24_call_x 14 /* 0xE, call.x <target> if <target> is above 24 bit limit call through P1 */ | 72 | #define R_BFIN_PCREL24_CALL_X 14 /* 0xE, call.x <target> if <target> is above 24 bit limit call through P1 */ |
| 73 | #define R_var_eq_symb 15 /* 0xf, linker should treat it same as 0x12 */ | 73 | #define R_BFIN_VAR_EQ_SYMB 15 /* 0xf, linker should treat it same as 0x12 */ |
| 74 | #define R_byte_data 16 /* 0x10, .byte var = symbol */ | 74 | #define R_BFIN_BYTE_DATA 16 /* 0x10, .byte var = symbol */ |
| 75 | #define R_byte2_data 17 /* 0x11, .byte2 var = symbol */ | 75 | #define R_BFIN_BYTE2_DATA 17 /* 0x11, .byte2 var = symbol */ |
| 76 | #define R_byte4_data 18 /* 0x12, .byte4 var = symbol and .var var=symbol */ | 76 | #define R_BFIN_BYTE4_DATA 18 /* 0x12, .byte4 var = symbol and .var var=symbol */ |
| 77 | #define R_pcrel11 19 /* 0x13, lsetup part b */ | 77 | #define R_BFIN_PCREL11 19 /* 0x13, lsetup part b */ |
| 78 | #define R_unused14 20 /* 0x14, undefined */ | 78 | #define R_BFIN_UNUSED14 20 /* 0x14, undefined */ |
| 79 | #define R_unused15 21 /* not generated by VDSP 3.5 */ | 79 | #define R_BFIN_UNUSED15 21 /* not generated by VDSP 3.5 */ |
| 80 | 80 | ||
| 81 | /* arithmetic relocations */ | 81 | /* arithmetic relocations */ |
| 82 | #define R_push 0xE0 | 82 | #define R_BFIN_PUSH 0xE0 |
| 83 | #define R_const 0xE1 | 83 | #define R_BFIN_CONST 0xE1 |
| 84 | #define R_add 0xE2 | 84 | #define R_BFIN_ADD 0xE2 |
| 85 | #define R_sub 0xE3 | 85 | #define R_BFIN_SUB 0xE3 |
| 86 | #define R_mult 0xE4 | 86 | #define R_BFIN_MULT 0xE4 |
| 87 | #define R_div 0xE5 | 87 | #define R_BFIN_DIV 0xE5 |
| 88 | #define R_mod 0xE6 | 88 | #define R_BFIN_MOD 0xE6 |
| 89 | #define R_lshift 0xE7 | 89 | #define R_BFIN_LSHIFT 0xE7 |
| 90 | #define R_rshift 0xE8 | 90 | #define R_BFIN_RSHIFT 0xE8 |
| 91 | #define R_and 0xE9 | 91 | #define R_BFIN_AND 0xE9 |
| 92 | #define R_or 0xEA | 92 | #define R_BFIN_OR 0xEA |
| 93 | #define R_xor 0xEB | 93 | #define R_BFIN_XOR 0xEB |
| 94 | #define R_land 0xEC | 94 | #define R_BFIN_LAND 0xEC |
| 95 | #define R_lor 0xED | 95 | #define R_BFIN_LOR 0xED |
| 96 | #define R_len 0xEE | 96 | #define R_BFIN_LEN 0xEE |
| 97 | #define R_neg 0xEF | 97 | #define R_BFIN_NEG 0xEF |
| 98 | #define R_comp 0xF0 | 98 | #define R_BFIN_COMP 0xF0 |
| 99 | #define R_page 0xF1 | 99 | #define R_BFIN_PAGE 0xF1 |
| 100 | #define R_hwpage 0xF2 | 100 | #define R_BFIN_HWPAGE 0xF2 |
| 101 | #define R_addr 0xF3 | 101 | #define R_BFIN_ADDR 0xF3 |
| 102 | 102 | ||
| 103 | /* This is the location that an ET_DYN program is loaded if exec'ed. Typical | 103 | /* This is the location that an ET_DYN program is loaded if exec'ed. Typical |
| 104 | use of this is to invoke "./ld.so someprog" to test out a new version of | 104 | use of this is to invoke "./ld.so someprog" to test out a new version of |
diff --git a/arch/blackfin/kernel/module.c b/arch/blackfin/kernel/module.c index 1bd7f2d018a8..d5aee3626688 100644 --- a/arch/blackfin/kernel/module.c +++ b/arch/blackfin/kernel/module.c | |||
| @@ -201,8 +201,8 @@ apply_relocate(Elf_Shdr * sechdrs, const char *strtab, | |||
| 201 | /* Arithmetic relocations are handled. */ | 201 | /* Arithmetic relocations are handled. */ |
| 202 | /* We do not expect LSETUP to be split and hence is not */ | 202 | /* We do not expect LSETUP to be split and hence is not */ |
| 203 | /* handled. */ | 203 | /* handled. */ |
| 204 | /* R_byte and R_byte2 are also not handled as the gas */ | 204 | /* R_BFIN_BYTE and R_BFIN_BYTE2 are also not handled as the */ |
| 205 | /* does not generate it. */ | 205 | /* gas does not generate it. */ |
| 206 | /*************************************************************************/ | 206 | /*************************************************************************/ |
| 207 | int | 207 | int |
| 208 | apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | 208 | apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, |
| @@ -243,8 +243,8 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
| 243 | #endif | 243 | #endif |
| 244 | switch (ELF32_R_TYPE(rel[i].r_info)) { | 244 | switch (ELF32_R_TYPE(rel[i].r_info)) { |
| 245 | 245 | ||
| 246 | case R_pcrel24: | 246 | case R_BFIN_PCREL24: |
| 247 | case R_pcrel24_jump_l: | 247 | case R_BFIN_PCREL24_JUMP_L: |
| 248 | /* Add the value, subtract its postition */ | 248 | /* Add the value, subtract its postition */ |
| 249 | location16 = | 249 | location16 = |
| 250 | (uint16_t *) (sechdrs[sechdrs[relsec].sh_info]. | 250 | (uint16_t *) (sechdrs[sechdrs[relsec].sh_info]. |
| @@ -266,18 +266,18 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
| 266 | (*location16 & 0xff00) | (value >> 16 & 0x00ff); | 266 | (*location16 & 0xff00) | (value >> 16 & 0x00ff); |
| 267 | *(location16 + 1) = value & 0xffff; | 267 | *(location16 + 1) = value & 0xffff; |
| 268 | break; | 268 | break; |
| 269 | case R_pcrel12_jump: | 269 | case R_BFIN_PCREL12_JUMP: |
| 270 | case R_pcrel12_jump_s: | 270 | case R_BFIN_PCREL12_JUMP_S: |
| 271 | value -= (uint32_t) location32; | 271 | value -= (uint32_t) location32; |
| 272 | value >>= 1; | 272 | value >>= 1; |
| 273 | *location16 = (value & 0xfff); | 273 | *location16 = (value & 0xfff); |
| 274 | break; | 274 | break; |
| 275 | case R_pcrel10: | 275 | case R_BFIN_PCREL10: |
| 276 | value -= (uint32_t) location32; | 276 | value -= (uint32_t) location32; |
| 277 | value >>= 1; | 277 | value >>= 1; |
| 278 | *location16 = (value & 0x3ff); | 278 | *location16 = (value & 0x3ff); |
| 279 | break; | 279 | break; |
| 280 | case R_luimm16: | 280 | case R_BFIN_LUIMM16: |
| 281 | pr_debug("before %x after %x\n", *location16, | 281 | pr_debug("before %x after %x\n", *location16, |
| 282 | (value & 0xffff)); | 282 | (value & 0xffff)); |
| 283 | tmp = (value & 0xffff); | 283 | tmp = (value & 0xffff); |
| @@ -286,7 +286,7 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
| 286 | } else | 286 | } else |
| 287 | *location16 = tmp; | 287 | *location16 = tmp; |
| 288 | break; | 288 | break; |
| 289 | case R_huimm16: | 289 | case R_BFIN_HUIMM16: |
| 290 | pr_debug("before %x after %x\n", *location16, | 290 | pr_debug("before %x after %x\n", *location16, |
| 291 | ((value >> 16) & 0xffff)); | 291 | ((value >> 16) & 0xffff)); |
| 292 | tmp = ((value >> 16) & 0xffff); | 292 | tmp = ((value >> 16) & 0xffff); |
| @@ -295,10 +295,10 @@ apply_relocate_add(Elf_Shdr * sechdrs, const char *strtab, | |||
| 295 | } else | 295 | } else |
| 296 | *location16 = tmp; | 296 | *location16 = tmp; |
| 297 | break; | 297 | break; |
| 298 | case R_rimm16: | 298 | case R_BFIN_RIMM16: |
| 299 | *location16 = (value & 0xffff); | 299 | *location16 = (value & 0xffff); |
| 300 | break; | 300 | break; |
| 301 | case R_byte4_data: | 301 | case R_BFIN_BYTE4_DATA: |
| 302 | pr_debug("before %x after %x\n", *location32, value); | 302 | pr_debug("before %x after %x\n", *location32, value); |
| 303 | *location32 = value; | 303 | *location32 = value; |
| 304 | break; | 304 | break; |
