[PATCH 00/22] microblaze: Add support for full relocation

Michal Simek monstr at monstr.eu
Thu Jun 2 15:57:24 CEST 2022


Hi,

this series is adding support for full rela relocation.
Origin NEEDS_MANUAL_RELOC option is still there as default.

Code has been tested with multiple configurations on QEMU.
- Origin behavior - u-boot
- Relocated version - u-boot.elf
- Loading u-boot.bin to higher address than TEXT_BASE
- Loading u-boot.bin to lower address than TEXT_BASE

There is still one more issue with Kconfig and conflict with MIPS but I
want to send it out to be available for review.

Thanks,
Michal


Michal Simek (22):
  tools: relocate-rela: Open binary u-boot file later
  Makefile: Fix description for relocate-rela parameters
  tools: relocate-rela: Use global variables
  tools: relocate-rela: Read rela start/end directly from ELF
  microblaze: Switch absolute branches to relative
  microblaze: Fix stack protection behavior
  microblaze: Fix early stack allocation
  microblaze: Remove CONFIG_TEXT_BASE from code
  microblaze: Fix typo in exception.c
  microblaze: Enable REMAKE_ELF
  microblaze: Separate code end substraction
  microblaze: Change stack protection address to new stack address
  microblaze: Optimize register usage in relocate_code
  microblaze: Remove code around r20 in relocate_code()
  microblaze: Remove _start symbol handling at U-Boot start
  microblaze: Add comment about reset location
  microblaze: Create SYM_ADDR macro to deal with symbols
  tools: relocate-rela: Extract elf64 reloc to special function
  tools: relocate-rela: Check that relocation works only for EM_AARCH64
  tools: relocate-rela: Add support for elf32 decoding
  tools: relocate-rela: Add support for 32bit Microblaze relocation
  microblaze: Add support for run time relocation

 Makefile                             |   6 +-
 arch/Kconfig                         |   1 -
 arch/microblaze/Kconfig              |  30 ++
 arch/microblaze/config.mk            |  11 +
 arch/microblaze/cpu/Makefile         |   1 +
 arch/microblaze/cpu/exception.c      |   2 +-
 arch/microblaze/cpu/relocate.c       | 111 ++++++
 arch/microblaze/cpu/start.S          | 130 +++++--
 arch/microblaze/cpu/u-boot.lds       |  14 +
 common/board_f.c                     |   2 +
 configs/microblaze-generic_defconfig |   1 +
 include/configs/microblaze-generic.h |   4 -
 tools/relocate-rela.c                | 545 +++++++++++++++++++++++++--
 13 files changed, 780 insertions(+), 78 deletions(-)
 create mode 100644 arch/microblaze/cpu/relocate.c

-- 
2.36.0



More information about the U-Boot mailing list