On Fri, 16 Jan 2026 09:12:11 +0100, Sascha Hauer wrote:
> Until now we linked the raw barebox proper binary into the PBL which
> comes with a number of disadvantages. We rely on self-modifying code
> to in barebox proper (relocate_to_current_adr()) and have no initialized
> bss segment (setup_c()). Also we can only mark the .text and .rodata as
> readonly during runtime of barebox proper.
>
> This series overcomes this by linking a ELF image into the PBL. This
> image is properly layed out, linked and initialized in the PBL. With
> this barebox proper has a proper C environment and text/rodata
> protection from the start.
>
> [...]
Applied, thanks!
[01/22] Makefile.compiler: add objcopy-option
https://git.pengutronix.de/cgit/barebox/commit/?id=19a380e98624 (link
may not be stable)
[02/22] elf: only accept images matching the native ELF_CLASS
https://git.pengutronix.de/cgit/barebox/commit/?id=b53168361c5a (link
may not be stable)
[03/22] elf: build for PBL as well
https://git.pengutronix.de/cgit/barebox/commit/?id=027452b87aa8 (link
may not be stable)
[04/22] elf: add elf segment iterator
https://git.pengutronix.de/cgit/barebox/commit/?id=ebb729561f1c (link
may not be stable)
[05/22] elf: add dynamic relocation support
https://git.pengutronix.de/cgit/barebox/commit/?id=fbb6a6eec9c9 (link
may not be stable)
[06/22] ARM: implement elf_apply_relocations() for ELF relocation support
https://git.pengutronix.de/cgit/barebox/commit/?id=487027fd354d (link
may not be stable)
[07/22] riscv: define generic relocate_image
https://git.pengutronix.de/cgit/barebox/commit/?id=89d48cf83187 (link
may not be stable)
[08/22] riscv: implement elf_apply_relocations() for ELF relocation support
https://git.pengutronix.de/cgit/barebox/commit/?id=4a68784a2ce9 (link
may not be stable)
[09/22] elf: implement elf_load_inplace()
https://git.pengutronix.de/cgit/barebox/commit/?id=ee11f1624d20 (link
may not be stable)
[10/22] elf: create elf_open_binary_into()
https://git.pengutronix.de/cgit/barebox/commit/?id=6610142f48bf (link
may not be stable)
[11/22] Makefile: add vmbarebox build target
https://git.pengutronix.de/cgit/barebox/commit/?id=2337f2c3d413 (link
may not be stable)
[12/22] PBL: allow to link ELF image into PBL
https://git.pengutronix.de/cgit/barebox/commit/?id=008191cfab24 (link
may not be stable)
[13/22] mmu: add MAP_CACHED_RO mapping type
https://git.pengutronix.de/cgit/barebox/commit/?id=f28e767645dc (link
may not be stable)
[14/22] ARM: drop arm_fixup_vectors()
https://git.pengutronix.de/cgit/barebox/commit/?id=aeffa0386702 (link
may not be stable)
[15/22] ARM: linker script: create separate PT_LOAD segments for text, rodata,
and data
https://git.pengutronix.de/cgit/barebox/commit/?id=93120ce68ced (link
may not be stable)
[16/22] ARM: link ELF image into PBL
https://git.pengutronix.de/cgit/barebox/commit/?id=dbbca16895f5 (link
may not be stable)
[17/22] ARM: cleanup barebox proper entry
https://git.pengutronix.de/cgit/barebox/commit/?id=e06e94ae2e3c (link
may not be stable)
[18/22] ARM: PBL: setup MMU with proper permissions from ELF segments
https://git.pengutronix.de/cgit/barebox/commit/?id=6cb7fc2edbb6 (link
may not be stable)
[19/22] riscv: linker script: create separate PT_LOAD segments for text,
rodata, and data
https://git.pengutronix.de/cgit/barebox/commit/?id=bfd483b0995f (link
may not be stable)
[20/22] riscv: link ELF image into PBL
https://git.pengutronix.de/cgit/barebox/commit/?id=ec8b2ce7c2ac (link
may not be stable)
[21/22] riscv: Allwinner D1: Drop M-Mode
https://git.pengutronix.de/cgit/barebox/commit/?id=29881d661727 (link
may not be stable)
[22/22] riscv: add ELF segment-based memory protection with MMU
https://git.pengutronix.de/cgit/barebox/commit/?id=384faa803e6b (link
may not be stable)
Best regards,
--
Sascha Hauer <[email protected]>