NetBSD-Bugs archive

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

port-amd64/55954: bootx64.efi hangs up on boot



>Number:         55954
>Category:       port-amd64
>Synopsis:       bootx64.efi hangs up on boot
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-amd64-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jan 24 08:35:00 +0000 2021
>Originator:     Aleksey Arens
>Release:        9.1_STABLE
>Organization:
>Environment:
NetBSD HOSTNAME_REDACTED 9.1_STABLE NetBSD 9.1_STABLE (XEN3_DOM0.STAGING.01) #5: Thu Jan 21 23:27:04 UTC 2021  root@HOSTNAME_REDACTED:/usr/obj/sys/arch/amd64/compile/XEN3_DOM0 amd64
>Description:
The system hangs after displaying "mem[ ... ]" array on console when full UEFI boot is performed.  The BIOS boot and legacy boot options were disabled in the firmware.

The affected system is a Lenovo 33474HU (ThinkPad Twist) laptop.

>How-To-Repeat:
Attempt to boot the affected system from a USB flash in UEFI-only mode.
>Fix:
So far, I have workaround available, that is confirmed to work.

---8<---

--- a/sys/arch/i386/stand/efiboot/efiboot.c
+++ b/sys/arch/i386/stand/efiboot/efiboot.c
@@ -91,8 +91,8 @@ efi_main(EFI_HANDLE imageHandle, EFI_SYSTEM_TABLE *systemTable)

        efi_memory_probe();
        efi_disk_probe();
-       efi_pxe_probe();
-       efi_net_probe();
+       /* efi_pxe_probe(); */
+       /* efi_net_probe(); */

        status = uefi_call_wrapper(BS->SetWatchdogTimer, 4, 0, 0, 0, NULL);
        if (EFI_ERROR(status))


---8<---

A basic investigation had revealed that the hang up occurs at the following place in efiboot.c:359:

---8<---

		status = uefi_call_wrapper(BS->OpenProtocol, 6, handles[i],
		    &SimpleNetworkProtocol, (void **)&net, IH, NULL,
		    EFI_OPEN_PROTOCOL_EXCLUSIVE);
		if (EFI_ERROR(status)) {
			printf("Unable to open network interface %" PRIuMAX
			    " for exclusive access: %" PRIxMAX "\n",
			    (uintmax_t)i, (uintmax_t)status);
		}


---8<---



Home | Main Index | Thread Index | Old Index