Hi,

Thanks for your explanations.

Emmanuel Dreyfus <[email protected]> writes:

> On Wed, Oct 15, 2025 at 01:23:30AM +0900, Ryo ONODERA wrote:
>> However with this changes and probabley related commits,
>> bootx64.efi prevents kernel boot for my laptops.
>> Kernel boot process just stopped after loaded.
>
> I realize that I tested a lot on real hardware, but not
> with screen and keyboard console hooked.
>
> The problem was that console defaulted to com0. The machine
> did not crash, it just displayed elsewhere.
>
> The atatched patch fixes the problem. Is it fine for you?

And your patch resolves my problem.

Thank you very much.

> -- 
> Emmanuel Dreyfus
> [email protected]
> Index: sys/arch/i386/stand/efiboot/eficons.c
> ===================================================================
> RCS file: /cvsroot/src/sys/arch/i386/stand/efiboot/eficons.c,v
> retrieving revision 1.17
> diff -U 4 -r1.17 eficons.c
> --- sys/arch/i386/stand/efiboot/eficons.c     14 Oct 2025 07:16:18 -0000      
> 1.17
> +++ sys/arch/i386/stand/efiboot/eficons.c     15 Oct 2025 08:57:57 -0000
> @@ -140,8 +140,9 @@
>                           efi_com_putc('(') &&
>                           awaitkey(7, 0))
>                               goto ok;
>               }
> +             goto nocom;
>  ok:
>               break;
>  
>       case CONSDEV_COM0:
> @@ -164,9 +165,9 @@
>  
>       case CONSDEV_COM0KBD:
>       case CONSDEV_COM1KBD:
>       case CONSDEV_COM2KBD:
> -     case CONSDEV_COM3KBD: /* XXXmanu */
> +     case CONSDEV_COM3KBD:
>               consname = "com";
>               btinfo_console.addr = getcomaddr(unit);
>  
>               if (!switchcons)
> @@ -200,12 +201,12 @@
>               if (!switchcons)
>                       break;
>               internal_putchar = efi_cons_putc;
>  kbd:
> -             consname = "com";
>               if (!switchcons)
>                       break;
> -             com_unit = unit;
> +             if (unit != -1)
> +                     com_unit = unit;
>               internal_getchar = efi_cons_getc;
>               internal_iskey = efi_cons_iskey;
>               internal_waitforinputevent = efi_cons_waitforinputevent;
>               memset(keybuf, 0, sizeof(keybuf));

-- 
Ryo ONODERA // [email protected]
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3

Reply via email to