Bug 206789
Summary: | exit_boot() failed efi_main() failed then hangs | ||
---|---|---|---|
Product: | EFI | Reporter: | Hugo Oosterkamp (hugo) |
Component: | Boot | Assignee: | EFI Virtual User (efi) |
Status: | NEW --- | ||
Severity: | blocking | CC: | ardb, fweimer, nivedita, pbrobinson, psppsn96 |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 5.6.0-rc4-next-20200305-1.gif4ad99-vanilla | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
screenshot with external camera
Print error messages |
Created attachment 287831 [details]
Print error messages
Hi, can you try with this patch to try to drill down exactly where it fails?
Thanks
Hi Hugo, are you still having this issue with 5.6-rc? If so, could you attach the kernel (5.6) config, and dmesg log and lspci output from 5.5? Thanks Hi Arvind Sankar, I too having the same issue. I've tried it with secure boot enabled/disabled and same result I use Arch Linux and compiled kernel 5.6.0 ( in their testing repository ) using gcc 9.3.0 ( arch version 9.3.0-1 64bit ) with your patch I've tried this on two platforms ( both AMD ) Laptop: HP Pavilion Laptop 15-cw1507sa CPU+GPU: AMD Ryzen 5 3500U BIOS: F.42 Rev.A ( latest as of 1-4-2020 ) Secure boot enabled with custom keys and tells me EFI stub: UEFI Secure Boot is enabled. Failed in exit_boot_services exit_boot() failed! efi_main() failed! Desktop: Mobo: Asus Prime X570-PRO CPU: AMD Ryzen 9 3950x BIOS: 1405 ( latest as of 1-4-2020 ) RAM: 32gb ( 8gb x 4 ) at 3600MHz GPU: MSI Radeon RX 5700 XT Evoke OC Secure boot disabled and tells me Failed in exit_boot_services exit_boot() failed! efi_main() failed! (In reply to Jerome C from comment #3) > Hi > > Arvind Sankar, I too having the same issue. > > I've tried it with secure boot enabled/disabled and same result > > I use Arch Linux and compiled kernel 5.6.0 ( in their testing repository ) > using gcc 9.3.0 ( arch version 9.3.0-1 64bit ) with your patch > > I've tried this on two platforms ( both AMD ) > > Laptop: HP Pavilion Laptop 15-cw1507sa > CPU+GPU: AMD Ryzen 5 3500U > BIOS: F.42 Rev.A ( latest as of 1-4-2020 ) > > Secure boot enabled with custom keys and tells me > > EFI stub: UEFI Secure Boot is enabled. > Failed in exit_boot_services > exit_boot() failed! > efi_main() failed! > > Desktop: > Mobo: Asus Prime X570-PRO > CPU: AMD Ryzen 9 3950x > BIOS: 1405 ( latest as of 1-4-2020 ) > RAM: 32gb ( 8gb x 4 ) at 3600MHz > GPU: MSI Radeon RX 5700 XT Evoke OC > > Secure boot disabled and tells me > > Failed in exit_boot_services > exit_boot() failed! > efi_main() failed! Hello Jerome, Can you try with Arvind's patch applied, please? Also, what is your setting for CONFIG_EFI_DISABLE_PCI_DMA? What happens if you add efi=no_disable_early_pci_dma to the kernel command line? Hi, I stated that I've already tried the patch... I'll get back to you on the "efi=no_disable_early_pci_dma" Hi, It's booted with "efi=no_disable_early_pci_dma" set on my desktop, not tested it on my laptop yet (In reply to Jerome C from comment #6) > Hi, It's booted with "efi=no_disable_early_pci_dma" set on my desktop, not > tested it on my laptop yet OK, thanks for checking. As the Kconfig documentation states, CONFIG_EFI_DISABLE_PCI_DMA is not intended for general use, which is why it is disabled by default. Hiya, I forgot to mention CONFIG_EFI_DISABLE_PCI_DMA is not enabled in my kernel config I've just testing the "efi=no_disable_early_pci_dma" on my laptop as well and now boots there too Thanks for your help. If you need any other info, let me know as I think it maybe a deeper problem than just the "efi=no_disable_early_pci_dma" I have no Intel processors (In reply to Jerome C from comment #8) > Hiya, > > I forgot to mention > > CONFIG_EFI_DISABLE_PCI_DMA is not enabled in my kernel config > > I've just testing the "efi=no_disable_early_pci_dma" on my laptop as well > and now boots there too > Excellent. But efi=no_disable_early_pci_dma is the default unless you set CONFIG_EFI_DISABLE_PCI_DMA=y, so this is a bit surprising. > Thanks for your help. > > If you need any other info, let me know as I think it maybe a deeper problem > than just the "efi=no_disable_early_pci_dma" > To be honest, it seems pretty obvious to me that the way efi_pci_disable_bridge_busmaster() rummages around in UEFI's driver protocol database is causing ExitBootServices() to fail. The only mystery here is why it is called in your case, since you don't have CONFIG_EFI_DISABLE_PCI_DMA defined, nor efi=disable_early_pci_dma passed on the command line. loading 5.6.0-1.g4de1111-vanilla ... error: bad shim signature. loading initial ramdisk ... error: you need to load the kernel first. press any key to continue... with efi=no_disable_early_pci_dma it starts up without any issues Correction this time working on a YOGA 910 (INTEL BOX...) (In reply to Hugo Oosterkamp from comment #11) > with > efi=no_disable_early_pci_dma > > it starts up without any issues > > Correction this time working on a YOGA 910 (INTEL BOX...) Thanks for the data point. Could you share your kernel config please? (In reply to Hugo Oosterkamp from comment #10) > loading 5.6.0-1.g4de1111-vanilla ... > error: bad shim signature. > loading initial ramdisk ... > error: you need to load the kernel first. > > press any key to continue... Can't load a camera made screenshot bu the above is accurate (In reply to Ard Biesheuvel from comment #9) > (In reply to Jerome C from comment #8) > > Hiya, > > > > I forgot to mention > > > > CONFIG_EFI_DISABLE_PCI_DMA is not enabled in my kernel config > > > > I've just testing the "efi=no_disable_early_pci_dma" on my laptop as well > > and now boots there too > > > > Excellent. But efi=no_disable_early_pci_dma is the default unless you set > CONFIG_EFI_DISABLE_PCI_DMA=y, so this is a bit surprising. > > > Thanks for your help. > > > > If you need any other info, let me know as I think it maybe a deeper > problem > > than just the "efi=no_disable_early_pci_dma" > > > > To be honest, it seems pretty obvious to me that the way > efi_pci_disable_bridge_busmaster() rummages around in UEFI's driver protocol > database is causing ExitBootServices() to fail. The only mystery here is why > it is called in your case, since you don't have CONFIG_EFI_DISABLE_PCI_DMA > defined, nor efi=disable_early_pci_dma passed on the command line. This got me puzzled too as I've been grep the kernel source code and seeing that the variable "efi_disable_pci_dma" inside "drivers/firmware/efi/libstub/efi-stub-helper.c" is "static" I don't understand it myself either (In reply to Jerome C from comment #14) > (In reply to Ard Biesheuvel from comment #9) > > (In reply to Jerome C from comment #8) > > > Hiya, > > > > > > I forgot to mention > > > > > > CONFIG_EFI_DISABLE_PCI_DMA is not enabled in my kernel config > > > > > > I've just testing the "efi=no_disable_early_pci_dma" on my laptop as well > > > and now boots there too > > > > > > > Excellent. But efi=no_disable_early_pci_dma is the default unless you set > > CONFIG_EFI_DISABLE_PCI_DMA=y, so this is a bit surprising. > > > > > Thanks for your help. > > > > > > If you need any other info, let me know as I think it maybe a deeper > > problem > > > than just the "efi=no_disable_early_pci_dma" > > > > > > > To be honest, it seems pretty obvious to me that the way > > efi_pci_disable_bridge_busmaster() rummages around in UEFI's driver > protocol > > database is causing ExitBootServices() to fail. The only mystery here is > why > > it is called in your case, since you don't have CONFIG_EFI_DISABLE_PCI_DMA > > defined, nor efi=disable_early_pci_dma passed on the command line. > > This got me puzzled too as I've been grep the kernel source code and seeing > that the variable "efi_disable_pci_dma" inside > "drivers/firmware/efi/libstub/efi-stub-helper.c" is "static" > > I don't understand it myself either Can you please share your kernel .config and your toolchain version? Oh I made a mistake on the config variable sorry Stupid me... when I did "zcat /proc/config.gz" that was on the running instance of the kernel... that was on 5.5.13 which has it disabled... I just did it again on 5.6.1 and it's enabled. This is an option Arch Linux must have enabled starting with 5.6.1 dammit, I dont't like it when I do things like this mystery solved (In reply to Ard Biesheuvel from comment #12) > (In reply to Hugo Oosterkamp from comment #11) > > with > > efi=no_disable_early_pci_dma > > > > it starts up without any issues > > > > Correction this time working on a YOGA 910 (INTEL BOX...) > > Thanks for the data point. Could you share your kernel config please? I did not build it myself, i pulled the kernel of the URL: https://download.opensuse.org/repositories/Kernel:/vanilla/standard/ repository (In reply to Hugo Oosterkamp from comment #17) > (In reply to Ard Biesheuvel from comment #12) > > (In reply to Hugo Oosterkamp from comment #11) > > > with > > > efi=no_disable_early_pci_dma > > > > > > it starts up without any issues > > > > > > Correction this time working on a YOGA 910 (INTEL BOX...) > > > > Thanks for the data point. Could you share your kernel config please? > > I did not build it myself, i pulled the kernel of the > > URL: https://download.opensuse.org/repositories/Kernel:/vanilla/standard/ > > repository Are there any config files in /boot with the same version number as your kernel? If there are, could you check whether they contain CONFIG_EFI_DISABLE_PCI_DMA=y ? (In reply to Hugo Oosterkamp from comment #17) > (In reply to Ard Biesheuvel from comment #12) > > (In reply to Hugo Oosterkamp from comment #11) > > > with > > > efi=no_disable_early_pci_dma > > > > > > it starts up without any issues > > > > > > Correction this time working on a YOGA 910 (INTEL BOX...) > > > > Thanks for the data point. Could you share your kernel config please? > > I did not build it myself, i pulled the kernel of the > > URL: https://download.opensuse.org/repositories/Kernel:/vanilla/standard/ > > repository Can you check if there is a /proc/config.gz file (after successful boot with the command line option)? If so, you can zgrep EFI_DISABLE_PCI_DMA /proc/config.gz to check if it was enabled. (In reply to Arvind Sankar from comment #19) > (In reply to Hugo Oosterkamp from comment #17) > > (In reply to Ard Biesheuvel from comment #12) > > > (In reply to Hugo Oosterkamp from comment #11) > > > > with > > > > efi=no_disable_early_pci_dma > > > > > > > > it starts up without any issues > > > > > > > > Correction this time working on a YOGA 910 (INTEL BOX...) > > > > > > Thanks for the data point. Could you share your kernel config please? > > > > I did not build it myself, i pulled the kernel of the > > > > URL: https://download.opensuse.org/repositories/Kernel:/vanilla/standard/ > > > > repository > > Can you check if there is a /proc/config.gz file (after successful boot with > the command line option)? If so, you can zgrep EFI_DISABLE_PCI_DMA > /proc/config.gz to check if it was enabled. zgrep EFI_DISABLE_PCI_DMA /proc/config.gz hugo@SF:/> zgrep EFI_DISABLE_PCI_DMA /proc/config.gz # CONFIG_EFI_DISABLE_PCI_DMA is not set hugo@SF:/> ^C hugo@SF:/> I did appended the instruction manually at startup without the efi_disable it does not get that far Hm so Hugo's issue is still a mystery then. (In reply to Arvind Sankar from comment #21) > Hm so Hugo's issue is still a mystery then. In YAST kernel parameters I now have included efi=no_disable_early_pci_dma The full string: splash=silent resume=/dev/disk/by-uuid/443f23e4-f2f7-4d7a-b22b-b19799cb1471 efi=no_disable_early_pci_dma Grub is written and upon startup it works fine but doing a hugo@SF:/> zgrep EFI_DISABLE_PCI_DMA /proc/config.gz # CONFIG_EFI_DISABLE_PCI_DMA is not set hugo@SF:/> it still shows up as not set Strange mistery: i removed the option efi=no_disable_early_pci_dma from the GRUB and restarted without issues. hugo@SF:/> zgrep EFI_DISABLE_PCI_DMA /proc/config.gz # CONFIG_EFI_DISABLE_PCI_DMA is not set hugo@SF:/> (In reply to Hugo Oosterkamp from comment #23) > Strange mistery: > > i removed the option efi=no_disable_early_pci_dma from the GRUB and > restarted without issues. > > hugo@SF:/> zgrep EFI_DISABLE_PCI_DMA /proc/config.gz > # CONFIG_EFI_DISABLE_PCI_DMA is not set > hugo@SF:/> Did you update the kernel between the last time you saw it crash and now? Although the 5.6-rc4 kernel in https://download.opensuse.org/repositories/Kernel:/linux-next/standard/x86_64/kernel-vanilla-5.6.rc4.next.20200305-1.1.g1f4ad99.x86_64.rpm also appears to have it disabled. |
Created attachment 287829 [details] screenshot with external camera Aus VIVOBOOK x512 AMD r5, opensuse TW with 5.6 rc4 repo Dual boot system with multiple kernel flavors. After installing rc4 I did a bootup. system hangs with exit_boot() failed, efi_main() failed (see attachment) Manual turn off, restart system and the booting option screen does not show up, instead boots straight up in windows. Back into the bios to change the boot sequence and able to boot up again but this time in 5.5. No problems in 5.5