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

Message ID 111d4120936d23e6023619660778444eb226a22f.1678785672.git.baskov@ispras.ru
State New
Headers
Series x86_64: Improvements at compressed kernel stage |

Commit Message

Evgeniy Baskov March 14, 2023, 10:13 a.m. UTC
  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@ispras.ru>
---
 arch/x86/boot/tools/build.c | 2 ++
 1 file changed, 2 insertions(+)
  

Patch

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. */