[PATCH v5 22/27] x86/build: set type_of_loader for EFISTUB

From: Evgeniy Baskov
Date: Tue Mar 14 2023 - 06:25:36 EST


After switching to the local copy of boot_params, EFISTUB stopped
setting type_of_loader, using the default value of 0. Restore that
behavior by assigning the right value at the build time.

Signed-off-by: Evgeniy Baskov <baskov@xxxxxxxxx>
---
arch/x86/boot/tools/build.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/boot/tools/build.c b/arch/x86/boot/tools/build.c
index 476ef05f16fb..5ac4f08ed923 100644
--- a/arch/x86/boot/tools/build.c
+++ b/arch/x86/boot/tools/build.c
@@ -588,6 +588,8 @@ int main(int argc, char **argv)
memcpy(output + setup_size + efi_boot_params + SETUP_HEADER_OFFSET,
setup_header, 0x290 - SETUP_HEADER_OFFSET
/* == max possible sizeof(struct setup_header) */);
+ /* Set type_of_loader to the one that EFISTUB uses for the local copy */
+ output[setup_size + efi_boot_params + SETUP_HEADER_OFFSET + 0x1F] = 0x21;
#endif

/* Calculate and write kernel checksum. */
--
2.39.2