/openbmc/linux/Documentation/livepatch/ |
H A D | module-elf-format.rst | 21 loader to perform the all the arch-specific relocation work. Specifically, 30 table, symbol table, and relocation section indices, ELF information is 32 relocation sections and symbols, which are described in this document. The 33 ELF constants used to mark livepatch symbols and relocation sections were 51 relocation sections in place of dynrela sections, and the symbols that the 53 arch-specific livepatch relocation code is replaced by a call to 80 3. Livepatch relocation sections 83 A livepatch module manages its own ELF relocation sections to apply 87 relocation section(s) to the driver once it loads. 90 multiple livepatch relocation sections associated with it (e.g. patches to [all …]
|
/openbmc/linux/arch/sh/kernel/ |
H A D | module.c | 33 Elf32_Addr relocation; in apply_relocate_add() local 47 relocation = sym->st_value + rel[i].r_addend; in apply_relocate_add() 54 value += relocation; in apply_relocate_add() 58 relocation = (relocation - (Elf32_Addr) location); in apply_relocate_add() 60 value += relocation; in apply_relocate_add() 65 ((relocation & 0xffff) << 10); in apply_relocate_add() 69 (((relocation >> 16) & 0xffff) << 10); in apply_relocate_add() 72 relocation -= (Elf32_Addr) location; in apply_relocate_add() 74 ((relocation & 0xffff) << 10); in apply_relocate_add() 77 relocation -= (Elf32_Addr) location; in apply_relocate_add() [all …]
|
/openbmc/u-boot/arch/mips/lib/ |
H A D | reloc.c | 3 * MIPS Relocation 7 * Relocation data, found in the .rel section, is generated by the mips-relocs 9 * be fixed up during relocation. 18 * Each pair of two integers represents a relocation that must be applied. The 19 * first integer represents the type of relocation as a standard ELF relocation 21 * apply the relocation, relative to the previous relocation or for the first 22 * relocation the start of the relocated .text section. 24 * The end of the relocation data is indicated when type R_MIPS_NONE (0) is 37 * Read one whole unsigned integer from the relocation data pointed to by @buf, 58 * apply_reloc() - Apply a single relocation [all …]
|
/openbmc/linux/Documentation/bpf/ |
H A D | llvm_reloc.rst | 7 This document describes LLVM BPF backend relocation types. 9 Relocation Record 12 LLVM BPF backend records each relocation with the following 16-byte 18 Elf64_Xword r_info; // Relocation type and symbol index. 55 Relocation section '.rel.text' at offset 0x190 contains 4 entries: 62 Each relocation is represented by ``Offset`` (8 bytes) and ``Info`` (8 bytes). 63 For example, the first relocation corresponds to the first instruction 64 (Offset 0x0) and the corresponding ``Info`` indicates the relocation type 81 Similarly, the second relocation is at ``.text`` offset ``0x18``, instruction 3, 83 The second relocation resolves to global variable ``g2`` which has a symbol [all …]
|
/openbmc/linux/arch/mips/include/asm/ |
H A D | module.h | 20 Elf64_Addr r_offset; /* Address of relocation. */ 23 Elf64_Byte r_type3; /* Third relocation. */ 24 Elf64_Byte r_type2; /* Second relocation. */ 25 Elf64_Byte r_type; /* First relocation. */ 29 Elf64_Addr r_offset; /* Address of relocation. */ 32 Elf64_Byte r_type3; /* Third relocation. */ 33 Elf64_Byte r_type2; /* Second relocation. */ 34 Elf64_Byte r_type; /* First relocation. */
|
/openbmc/linux/arch/arc/kernel/ |
H A D | module.c | 23 * This gets called before relocation loop in generic loader 54 Elf32_Addr relocation, location, tgt_addr; in apply_relocate_add() local 72 /* Loop thru entries in relocation section */ in apply_relocate_add() 83 relocation = sym_entry->st_value + rel_entry[i].r_addend; in apply_relocate_add() 93 sym_entry->st_value, location, relocation, s); in apply_relocate_add() 98 * Both of these are handled by same relocation type in apply_relocate_add() 103 arc_write_me((unsigned short *)location, relocation); in apply_relocate_add() 105 *((Elf32_Addr *) location) = relocation; in apply_relocate_add() 107 *((Elf32_Addr *) location) = relocation - location; in apply_relocate_add() 121 pr_err("%s: unknown relocation: %u\n", in apply_relocate_add()
|
/openbmc/linux/scripts/ |
H A D | check_extable.sh | 26 # __ex_table relocation to your new section is expected), simply add your 44 # When the relocation points to the begining of a symbol or section, it 53 # The target of the .altinstr_replacement is the relocation just before 79 # We've got a relocation to a non white listed _executable_ 82 # and line number where that relocation was added. 86 # Something is definitively wrong here since we've got a relocation 110 # Let's find out where the target of the relocation in __ex_table 114 # When there's a global symbol at the place of the relocation, 127 # Will either print a warning if the relocation happens to be in a
|
/openbmc/u-boot/include/dm/ |
H A D | util.h | 43 * Check if a dt node should be or was bound before relocation. 48 * Before relocation this function can be used to check if nodes 51 * After relocation and jumping into the real U-Boot binary 69 * Check if an of node should be or was bound before relocation. 74 * Before relocation this function can be used to check if nodes 77 * After relocation and jumping into the real U-Boot binary
|
/openbmc/linux/arch/arm/mach-hisi/ |
H A D | platmcpm.c | 66 * [2]: relocation address 67 * [3]: relocation size 269 void __iomem *relocation; in hip04_smp_init() local 292 relocation = ioremap(hip04_boot_method[2], hip04_boot_method[3]); in hip04_smp_init() 293 if (!relocation) { in hip04_smp_init() 294 pr_err("failed to map relocation space\n"); in hip04_smp_init() 327 writel_relaxed(hip04_boot_method[0], relocation); in hip04_smp_init() 328 writel_relaxed(0xa5a5a5a5, relocation + 4); /* magic number */ in hip04_smp_init() 329 writel_relaxed(__pa_symbol(secondary_startup), relocation + 8); in hip04_smp_init() 330 writel_relaxed(0, relocation + 12); in hip04_smp_init() [all …]
|
/openbmc/u-boot/arch/x86/lib/ |
H A D | relocate.c | 59 printf("%s: unsupported relocation type 0x%llx " in do_elf_reloc_fixups64() 65 /* Get the location from the relocation entry */ in do_elf_reloc_fixups64() 68 /* Check that the location of the relocation is in .text */ in do_elf_reloc_fixups64() 106 printf("%s: unsupported relocation type 0x%x " in do_elf_reloc_fixups32() 112 /* Get the location from the relocation entry */ in do_elf_reloc_fixups32() 115 /* Check that the location of the relocation is in .text */ in do_elf_reloc_fixups32() 145 * 62f7970a x86: Add error checking to x86 relocation code 159 panic("No relocation data"); in do_elf_reloc_fixups()
|
/openbmc/u-boot/doc/ |
H A D | README.arm-relocation | 1 To make relocation on arm working, the following changes are done: 12 At cpu level: modify linker file and add a relocation and fixup loop 15 tables in the binary image, and to provide symbols for the relocation 18 The relocation and fixup loop must be executed after executing 39 Boards which are not fixed to support relocation will be REMOVED! 44 if CONFIG_SYS_TEXT_BASE == relocation address! This prevents that uboot code 59 the relocation address and copy itself to it 61 If CONFIG_SYS_TEXT_BASE == relocation address, the copying of u-boot 74 on other boards if CONFIG_SYS_TEXT_BASE = relocation baseaddr, this saves 82 Relocation with SPL (example for the tx25 booting from NAND Flash):
|
H A D | README.generic-board | 22 favour of common/board_f.c (for pre-relocation init) and common/board_r.c 23 (for post-relocation init). 70 This series removes the dependency on generic relocation. So relocation 72 relocation series for a proposed solution to this for ARM: 108 to pre-relocation init functions. I think this makes sense, but it can 112 cleanup series and the generic relocation series) the goal is the
|
/openbmc/linux/arch/mips/kernel/ |
H A D | relocate.c | 6 * Support for Kernel relocation at boot time 29 extern u32 _relocation_start[]; /* End kernel image / start relocation table */ 30 extern u32 _relocation_end[]; /* End relocation table */ 38 * This function may be defined for a platform to perform any post-relocation 40 * Return non-zero to abort relocation 89 pr_err("Dangerous R_MIPS_26 REL relocation\n"); in apply_r_mips_26_rel() 101 pr_err("R_MIPS_26 REL relocation overflow\n"); in apply_r_mips_26_rel() 141 pr_err("Unhandled relocation type %d at 0x%pK\n", type, in reloc_handler() 158 /* Sentinel for last relocation */ in do_relocations() 176 * It must be relocated separately since there will not be any relocation [all …]
|
H A D | module.c | 53 pr_err("module %s: dangerous R_MIPS_26 relocation\n", in apply_r_mips_26() 59 pr_err("module %s: relocation overflow\n", in apply_r_mips_26() 84 * actual relocation. in apply_r_mips_hi16() 137 * Do the HI16 relocation. Note that we actually don't in apply_r_mips_lo16() 176 pr_err("module %s: dangerous R_MIPS_LO16 relocation\n", me->name); in apply_r_mips_lo16() 189 pr_err("module %s: dangerous R_MIPS_PC%u relocation\n", in apply_r_mips_pc() 203 pr_err("module %s: relocation overflow\n", me->name); in apply_r_mips_pc() 263 * reloc_handler() - Apply a particular relocation to a module 264 * @type: type of the relocation to apply 269 * @rela: indication of is this a RELA (true) or REL (false) relocation [all …]
|
/openbmc/linux/arch/x86/boot/compressed/ |
H A D | misc.c | 6 * which includes KASLR relocation, decompression, ELF parsing, and 7 * relocation processing. Additionally included are the screen and serial 25 * run time, but no relocation processing is performed. This means that 200 * The kernel contains a table of relocation addresses. Those in handle_relocations() 217 debug_putstr("No relocation needed... "); in handle_relocations() 225 * before compression. Each relocation table entry is the kernel in handle_relocations() 233 * 64 bit relocation repeated in handle_relocations() 235 * 32 bit inverse relocation repeated in handle_relocations() 237 * 32 bit relocation repeated in handle_relocations() 247 error("32-bit relocation outside of kernel!\n"); in handle_relocations() [all …]
|
/openbmc/u-boot/include/ |
H A D | elf.h | 275 #define SHT_RELA 4 /* relocation section with addends*/ 316 #define ELF_REL_DATA ".rel.data" /* relocation data */ 317 #define ELF_REL_FINI ".rel.fini" /* relocation termination code */ 318 #define ELF_REL_INIT ".rel.init" /* relocation initialization code */ 320 #define ELF_REL_RODATA ".rel.rodata" /* relocation read-only data */ 321 #define ELF_REL_TEXT ".rel.text" /* relocation code */ 401 /* Relocation entry with implicit addend */ 403 Elf32_Addr r_offset; /* offset of relocation */ 407 /* Relocation entry with explicit addend */ 409 Elf32_Addr r_offset; /* offset of relocation */ [all …]
|
H A D | console.h | 13 int console_init_f(void); /* Before relocation; uses the serial stuff */ 14 int console_init_r(void); /* After relocation; uses the console stuff */ 48 * on the display. The banner is instead emitted on the UART before relocation. 50 * it before relocation.
|
/openbmc/linux/arch/arm64/kvm/hyp/nvhe/ |
H A D | gen-hyprel.c | 6 * Generates relocation information used by the kernel to convert 47 * AArch64 relocation type constants. 311 * Print ASM statements to create a hyp relocation entry for a given 312 * R_AARCH64_ABS64 relocation. 316 * also generate a dynamic relocation entry so that the kernel can shift 323 * relocation referencing a symbol that the hyp linker script put at 335 * Create a PREL32 relocation which instructs the linker of `vmlinux` in emit_rela_abs64() 355 * hyp relocation data for all absolute addresses in hyp code/data. 358 * Failure is reported for unexpected relocation types. 381 * Emit a hyp relocation. in emit_rela_section() [all …]
|
/openbmc/linux/arch/loongarch/kernel/ |
H A D | module.c | 55 pr_err("%s: Unsupport relocation type %u, please add its support.\n", me->name, type); in apply_r_larch_error() 158 pr_err("%s: Unsupport relocation type %u\n", mod->name, type); in apply_r_larch_sop() 241 pr_err("%s: Unsupport relocation type %u\n", mod->name, type); in apply_r_larch_sop_imm_field() 246 pr_err("module %s: opr1 = 0x%llx overflow! dangerous %s (%u) relocation\n", in apply_r_larch_sop_imm_field() 251 pr_err("module %s: opr1 = 0x%llx unaligned! dangerous %s (%u) relocation\n", in apply_r_larch_sop_imm_field() 273 pr_err("%s: Unsupport relocation type %u\n", mod->name, type); in apply_r_larch_add_sub() 294 pr_err("module %s: jump offset = 0x%llx unaligned! dangerous R_LARCH_B26 (%u) relocation\n", in apply_r_larch_b26() 300 pr_err("module %s: jump offset = 0x%llx overflow! dangerous R_LARCH_B26 (%u) relocation\n", in apply_r_larch_b26() 339 pr_err("%s: Unsupport relocation type %u\n", mod->name, type); in apply_r_larch_pcala() 363 pr_err("%s: Unsupport relocation type %u\n", mod->name, type); in apply_r_larch_got_pc() [all …]
|
/openbmc/u-boot/common/ |
H A D | Kconfig | 360 bool "Allow flags to take effect on relocation" 363 In some cases the environment is not available until relocation 365 environment variable take effect at relocation. 393 option only the post-relocation output will be displayed. 402 be in available memory and is accessed before relocation and 445 start-up (after relocation). This causes the environment to be 452 and stderr on boot when the post-relocation console is set up. 691 the relocation phase. The board function checkboard() is called to do 716 bool "Call arch-specific init soon after relocation" 719 relocation. Driver model is running by this point, and the cache [all …]
|
/openbmc/u-boot/arch/arm/lib/ |
H A D | crt0_64.S | 36 * data include the relocation destination, the future stack, and 44 * relocates U-Boot from its current location into the relocation 48 * code relocation in SPL. 56 * TODO: For SPL, implement stack relocation on AArch64. 110 /* Add in link-vs-relocation offset */ 112 add lr, lr, x9 /* new return address after relocation */
|
/openbmc/linux/arch/mips/boot/tools/ |
H A D | relocs_64.c | 17 Elf64_Byte r_type3; /* Third relocation. */ 18 Elf64_Byte r_type2; /* Second relocation. */ 19 Elf64_Byte r_type; /* First relocation. */
|
/openbmc/qemu/include/hw/riscv/ |
H A D | boot_opensbi.h | 47 * address as the FW_DYNAMIC firmware. In this case, the relocation 56 * to use the relocation lottery mechanism. 77 * address as the FW_DYNAMIC firmware. In this case, the relocation 86 * to use the relocation lottery mechanism.
|
/openbmc/linux/Documentation/devicetree/bindings/remoteproc/ |
H A D | qcom,pil-info.yaml | 7 title: Qualcomm peripheral image loader relocation info 13 The Qualcomm peripheral image loader relocation memory region, in IMEM, is 14 used for communicating remoteproc relocation information to post mortem
|
/openbmc/linux/arch/xtensa/kernel/ |
H A D | module.c | 87 pr_err("%s: relocation out of range, " in apply_relocate_add() 111 pr_err("%s: relocation out of range, " in apply_relocate_add() 156 pr_err("%s: unexpected FLIX relocation: %u\n", in apply_relocate_add() 176 pr_err("%s: unexpected ALT relocation: %u\n", in apply_relocate_add() 182 pr_err("%s: unexpected relocation: %u\n", in apply_relocate_add()
|