[PATCH v3 00/23] microblaze: Add support for full relocation
Michal Simek
monstr at monstr.eu
Wed Jun 15 12:03:37 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 byt gitlab CI.
Thanks,
Michal
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