On Thu, 08 Jan 2026 16:49:57 +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/23] Makefile.compiler: add objcopy-option
https://git.pengutronix.de/cgit/barebox/commit/?id=19a380e98624 (link
may not be stable)
[02/23] elf: only accept images matching the native ELF_CLASS
https://git.pengutronix.de/cgit/barebox/commit/?id=b53168361c5a (link
may not be stable)
[03/23] elf: build for PBL as well
https://git.pengutronix.de/cgit/barebox/commit/?id=027452b87aa8 (link
may not be stable)
[04/23] elf: add dynamic relocation support
https://git.pengutronix.de/cgit/barebox/commit/?id=fbb6a6eec9c9 (link
may not be stable)
[05/23] ARM: implement elf_apply_relocations() for ELF relocation support
https://git.pengutronix.de/cgit/barebox/commit/?id=487027fd354d (link
may not be stable)
[06/23] riscv: define generic relocate_image
https://git.pengutronix.de/cgit/barebox/commit/?id=89d48cf83187 (link
may not be stable)
[07/23] riscv: implement elf_apply_relocations() for ELF relocation support
https://git.pengutronix.de/cgit/barebox/commit/?id=4a68784a2ce9 (link
may not be stable)
[08/23] elf: implement elf_load_inplace()
https://git.pengutronix.de/cgit/barebox/commit/?id=ee11f1624d20 (link
may not be stable)
[09/23] elf: create elf_open_binary_into()
https://git.pengutronix.de/cgit/barebox/commit/?id=6610142f48bf (link
may not be stable)
[10/23] Makefile: add vmbarebox build target
https://git.pengutronix.de/cgit/barebox/commit/?id=2337f2c3d413 (link
may not be stable)
[11/23] PBL: allow to link ELF image into PBL
https://git.pengutronix.de/cgit/barebox/commit/?id=008191cfab24 (link
may not be stable)
[12/23] mmu: add MAP_CACHED_RO mapping type
https://git.pengutronix.de/cgit/barebox/commit/?id=f28e767645dc (link
may not be stable)
[13/23] mmu: introduce pbl_remap_range()
(no commit info)
[14/23] ARM: drop arm_fixup_vectors()
https://git.pengutronix.de/cgit/barebox/commit/?id=aeffa0386702 (link
may not be stable)
[15/23] 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/23] ARM: link ELF image into PBL
https://git.pengutronix.de/cgit/barebox/commit/?id=dbbca16895f5 (link
may not be stable)
[17/23] ARM: PBL: setup MMU with proper permissions from ELF segments
https://git.pengutronix.de/cgit/barebox/commit/?id=6cb7fc2edbb6 (link
may not be stable)
[18/23] 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)
[19/23] riscv: link ELF image into PBL
https://git.pengutronix.de/cgit/barebox/commit/?id=ec8b2ce7c2ac (link
may not be stable)
[20/23] riscv: Allwinner D1: Drop M-Mode
https://git.pengutronix.de/cgit/barebox/commit/?id=29881d661727 (link
may not be stable)
[21/23] riscv: add ELF segment-based memory protection with MMU
https://git.pengutronix.de/cgit/barebox/commit/?id=384faa803e6b (link
may not be stable)
[22/23] ARM: cleanup barebox proper entry
https://git.pengutronix.de/cgit/barebox/commit/?id=e06e94ae2e3c (link
may not be stable)
[23/23] riscv: cleanup barebox proper entry
(no commit info)
Best regards,
--
Sascha Hauer <[email protected]>