efi/zboot: Add BSS padding before compression
authorArd Biesheuvel <ardb@kernel.org>
Tue, 18 Apr 2023 13:49:50 +0000 (15:49 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Thu, 20 Apr 2023 13:44:35 +0000 (15:44 +0200)
commitbca2f3a9406b89961fbc6c92c52c6fc1fd91d35f
tree3554f33a89364b36b27920fc188bb16e2e894d46
parent8358098b9787caab8bbc93fd78d046afaed43c16
efi/zboot: Add BSS padding before compression

We don't really care about the size of the decompressed image - what
matters is how much space needs to be allocated for the image to
execute, and this includes space for BSS that is not part of the
loadable image and so it is not accounted for in the decompressed size.

So let's add some zero padding to the end of the image: this compresses
well, and it ensures that BSS is accounted for, and as a bonus, it will
be zeroed before launching the image.

Since all architectures that implement support for EFI zboot carry this
value in the header in the same location, we can just grab it from the
binary that is being compressed.

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