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

Michal Simek monstr at monstr.eu
Wed Jun 15 15:20:56 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

In v2 I fixed Kconfig issue reported in v1 series.

In v3 fix issues reported by gitlab CI.

I incorrectly squashed m68k change to wrong patch. V4 fixes it.

Thanks,
Michal

Changes in v4:
- Revert incorrect m68k merge - wrong patch
- Aligned NEEDS_MANUAL_RELOC for m68k

Changes in v3:
- Move NEEDS_MANUAL_RELOC to m68k Kconfig to avoid Kconfig issues

Changes in v2:
- new patch in series to solve Kconfig warning
- Fix endian selection

Michal Simek (23):
  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
  mips: Move endianness selection to arch/Kconfig
  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                         |  26 +-
 arch/m68k/Kconfig                    |   3 +
 arch/microblaze/Kconfig              |  14 +
 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 +
 arch/mips/Kconfig                    |  18 -
 common/board_f.c                     |   2 +
 configs/microblaze-generic_defconfig |   1 +
 include/configs/microblaze-generic.h |   4 -
 tools/relocate-rela.c                | 545 +++++++++++++++++++++++++--
 15 files changed, 789 insertions(+), 99 deletions(-)
 create mode 100644 arch/microblaze/cpu/relocate.c

-- 
2.36.1



More information about the U-Boot mailing list