tn3399_openwrt/target
Sander Vanheule 3f7047db7a kernel: mtdsplit: support ELF loader splitting
To parse the ELF kernel loader, a small ELF parser is used that can
handle both ELF32 or ELF64 class loaders. The splitter assumes that the
kernel is always located before the rootfs, whether it is embedded in
the loader or not. If the kernel is located after the rootfs on the
firmware partition, then the rootfs splitter will include it in the
dynamically created rootfs_data partition and the kernel will be
corrupted.

The kernel image is preferably embedded inside the ELF loader, so the
end of the loader equals the end of the kernel partition. This is due to
the way mtd_find_rootfs_from searches for the the rootfs:
- if the kernel image is embedded in the loader, the appended rootfs may
  follow the loader immediately, within the same erase block.
- if the kernel image is not embedded in the loader, but placed at some
  offset behind the loader (OKLI-style loader), the rootfs must be
  aligned to an erase-block after the loader and kernel image.

In case section header table is empty, determine the elf loader size by
finding the end of the last segment, as defined by the program header
table.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-09 20:41:50 +03:00
..
imagebuilder build: add whatdepends target to imagebuilder 2020-08-31 11:18:24 +01:00
linux kernel: mtdsplit: support ELF loader splitting 2020-09-09 20:41:50 +03:00
sdk build: SDK/IB reproducible and faster compression 2020-08-23 18:55:49 +02:00
toolchain build: improve ccache support 2020-07-11 15:19:53 +02:00
Config.in build: define RTC_SUPPORT as a bool 2020-04-09 12:51:10 +02:00
Makefile