ExitBootServices() fails on Samsung W737 (Galaxy Book2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've been diagnosing a failure to boot on a Samsung Galaxy Book2 (W737) but have not been able to get the kernel to boot, and would welcome some assistance:

EFI stub: ERROR: Exit boot services failed

The problem occurs in drivers/firmware/efi/libstub/efi-stub-helper.c::efi_exit_boot_services(). EFI_INVALID_PARAMETER is returned by efi_bs_call(exit_boot_services...).

Based on reading the EDK source I suspected either the key was changing or memory alignment is wrong based on a reading of EDK's CoreExitBootServices() and CoreTerminateMemoryMap() - making a large assumption that Lenovo/Aptio (American Megatrends) firmware is based around EDK.

Since the addition of commit d4b341269efb3 "arm64: dts: qcom: Add support for Samsung Galaxy Book2" I had inferred it is now possible to boot this device into Linux, but so far it seems not.

I added extensive efi_debug() logging to try to identify the problem and have reported the patches I'm using and results extensively (too extensively for including in this email) at "Issue #11: Samsung Galaxy Book2 (SM-W737Y) snapdragon 850" of the aarch64-laptops project:

https://github.com/aarch64-laptops/debian-cdimage/issues/11

The latest results show:

EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: DEBUG: Entering allocate_new_fdt_and_exit_boot()
EFI stub: Exiting boot services...
EFI stub: DEBUG: Calling efi_exit_boot_services() with map:
EFI stub: DEBUG: efi_boot_memmap = {map=0x000000009ffce870 map_size=0xa20 desc_size=0x30 desc_ver=0x1
 key_ptr=0x000000009ffce868 *key_ptr=0x2b2c buff_size=0xc90 }
EFI stub: DEBUG: Entered efi_exit_boot_services()
EFI stub: DEBUG: Memory map before calling priv_func():
EFI stub: DEBUG: efi_boot_memmap = {map=0x000000009ffce870 map_size=0xa20 desc_size=0x30 desc_ver=0x1
 key_ptr=0x000000009ffce868 *key_ptr=0x2b2c buff_size=0xc90 }
EFI stub: DEBUG: Memory map after calling priv_func():
EFI stub: DEBUG: efi_boot_memmap = {map=0x000000009ffce870 map_size=0xa20 desc_size=0x30 desc_ver=0x1
 key_ptr=0x000000009ffce868 *key_ptr=0x2b2c buff_size=0xc90 }
EFI stub: DEBUG: Calling efi_bs_call(exit_boot_services, 0x00000000fcb87c98, 0x2b2c) EFI stub: DEBUG: efi_bs_call() returned -9223372036854775806 (EFI_INVALID_PARAMETER)
EFI stub: DEBUG: Calling efi_bs_call() with get_memory_map
EFI stub: DEBUG: Memory map after calling get_memory_map() again:
EFI stub: DEBUG: efi_boot_memmap = {map=0x000000009ffce870 map_size=0xa20 desc_size=0x30 desc_ver=0x1
 key_ptr=0x000000009ffce868 *key_ptr=0x2b6e buff_size=0xc90 }
EFI stub: DEBUG: Calling priv_func() again
EFI stub: DEBUG: Memory map after calling priv_func() again:
EFI stub: DEBUG: efi_boot_memmap = {map=0x000000009ffce870 map_size=0xa20 desc_size=0x30 desc_ver=0x1
 key_ptr=0x000000009ffce868 *key_ptr=0x2b6e buff_size=0xc90 }
EFI stub: DEBUG: Calling (again!) efi_bs_call(exit_boot_services, 0x00000000fcb87c98, 0x2b6e)
EFI stub: DEBUG: fail: efi_exit_boot_services() returns -9223372036854775806
EFI stub: DEBUG: Returned from efi_Exit_boot_services()
EFI stub: ERROR: Exit boot services failed.
EFI stub: DEBUG: fail_free_new_fdt: status= -9223372036854775806
EFI stub: DEBUG: fail: status= -9223372036854775806
EFI stub: DEBUG: Busy Wait so you can read the debug messages!



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux