ELF Variant 1
Pre-release
Pre-release
I've updated my boot-shim (GitHub:imbushuo/boot-shim) to enable bootstrapping of random ARM32 ELF applications in Windows Boot Manager (UEFI) environment. There are a few requirements for such applications:
- There must be a LOAD section has
p_paddr
andp_vaddr
matches program entry point address (e_entry
). - LOAD section must have
p_paddr
equals top_vaddr
(identity mapping requirements). - LOAD section must reside in device's usable memory region (not TZ apps, FrameBuffer, etc.) That means p_paddr must larger or equal (not likely) to device's memory base, and
p_addr
+p_memsz
must not go out of device's memory region. - LOAD section must have
p_memsz
equals top_filesz
. - Only first LOAD section that meets these requirements will be loaded into memory.
e_machine
must beEM_ARM
.e_type
must beET_EXEC
.- Has name of
emmc_appsboot.mbn
in a firmware-recognized partition (it will try all partitions and use the first one available)
Currently post-processed Little Kernel meets these requirements (use the tool signlk
from CodeAurora/Linaro). It boots LK on Lumia 950XL. Feedback welcomed.