efi: libstub: Add image code and data size to the zimage metadata
authorArd Biesheuvel <ardb@kernel.org>
Wed, 12 Oct 2022 12:28:31 +0000 (14:28 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Wed, 9 Nov 2022 11:42:03 +0000 (12:42 +0100)
commit1f1ba325a23df6739b6b5e52f40ec1aa228108b2
treee6280eaf0ba616bd94cb40612ea6609c5222f28d
parent42c8ea3dca094ab82776ca706fb7a9cbe8ac3dc9
efi: libstub: Add image code and data size to the zimage metadata

In order to be able to switch from LoadImage() [which treats the
supplied PE/COFF image as file input only, and reconstructs the memory
image based on the section descriptors] to a mode where we allocate the
memory directly, and invoke the image in place, we need to now how much
memory to allocate beyond the end of the image. So copy this information
from the payload's PE/COFF header to the end of the compressed version
of the payload, so that the decompressor app can access it before
performing the decompression itself.

We'll also need to size of the code region once we switch arm64 to
jumping to the kernel proper with MMU and caches enabled, so let's
capture that information as well. Note that SizeOfCode does not account
for the header, so we need SizeOfHeaders as well.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/Makefile.zboot
drivers/firmware/efi/libstub/zboot-header.S