Date: Mon, 16 Mar 2020 08:26:56 +0200 From: Toomas Soome <tsoome@me.com> To: junchoon@dec.sakura.ne.jp Cc: svn-src-head@freebsd.org, "tsoome@freebsd.org" <tsoome@FreeBSD.org> Subject: Re: svn commit: r358989 - in head/stand/efi: libefi loader loader/arch/arm loader/arch/arm64 Message-ID: <746EE981-536F-49AD-9B76-F9F103ECB1F9@me.com> In-Reply-To: <20200316001745.07df62f72d647b924b657d86@dec.sakura.ne.jp> References: <20200316001745.07df62f72d647b924b657d86@dec.sakura.ne.jp>
index | next in thread | previous in thread | raw e-mail
Hi! This means, your system has UART serial device — you can check this from loader prompt: efi-show -g global -v ConOut or with efivar from running system. This would trigger efi console driver to use TERM_EMU, which can be turned off by user and doing that would cause ESC sequences to be passed directly to console. Might that be true in your case? rgds, toomas > On 15. Mar 2020, at 17:17, Tomoaki AOKI <junchoon@dec.sakura.ne.jp> wrote: > > Hi. > > This broke loader menu display on efifb. At least on amd64. > ESC sequences without ESC character are shown. > Key input (at least 1, 2 and enter) works OK. > I suspect outputs for SIO is sent to efifb and ESC codes are ignored. > > Reverting this fixes the issue. > > Not tried (not enough time for now as I'm mainly using stable/12), > but possibly calling efi_cons_probe() from efi_cons_init() would be > needed, as ome codes are moved from the latter to the former. > > >> Author: tsoome >> Date: Sat Mar 14 06:36:03 2020 >> New Revision: 358989 >> URL: https://svnweb.freebsd.org/changeset/base/358989 >> >> Log: >> loader: add comconsole implementation on top of SIO protocol >> >> Provide comconsole on top of SIO for arm platforms (x86 does use bios > version). >> >> Added: >> head/stand/efi/loader/efiserialio.c (contents, props changed) >> Modified: >> head/stand/efi/libefi/efi_console.c >> head/stand/efi/loader/arch/arm/Makefile.inc >> head/stand/efi/loader/arch/arm64/Makefile.inc >> head/stand/efi/loader/conf.c >> head/stand/efi/loader/main.c >> >> Modified: head/stand/efi/libefi/efi_console.c >> ============================================================================== >> --- head/stand/efi/libefi/efi_console.c Sat Mar 14 05:57:22 > 2020 (r358988) >> +++ head/stand/efi/libefi/efi_console.c > Sat Mar 14 06:36:03 2020 (r358989) >> @@ -377,9 +377,22 @@ efi_cons_respond(void *s __unused, const void *buf __u >> { >> } >> >> +/* >> + * Set up conin/conout/coninex to make sure we have input ready. >> + */ >> static void >> efi_cons_probe(struct console *cp) >> { >> + EFI_STATUS status; >> + >> + conout = ST->ConOut; >> + conin = ST->ConIn; >> + >> + status = BS->OpenProtocol(ST->ConsoleInHandle, > &simple_input_ex_guid, >> + (void **)&coninex, IH, NULL, > EFI_OPEN_PROTOCOL_GET_PROTOCOL); >> + if (status != EFI_SUCCESS) >> + coninex = NULL; >> + >> cp->c_flags |= C_PRESENTIN | C_PRESENTOUT; >> } >> >> @@ -889,15 +902,7 @@ efi_cons_init(int arg) >> if (conin != NULL) >> return (0); >> >> - conout = ST->ConOut; >> - conin = ST->ConIn; >> - >> conout->EnableCursor(conout, TRUE); >> - status = BS->OpenProtocol(ST->ConsoleInHandle, > &simple_input_ex_guid, >> - (void **)&coninex, IH, NULL, > EFI_OPEN_PROTOCOL_GET_PROTOCOL); >> - if (status != EFI_SUCCESS) >> - coninex = NULL; >> - >> if (efi_cons_update_mode()) >> return (0); >> >> >> Modified: head/stand/efi/loader/arch/arm/Makefile.inc >> ============================================================================== >> --- head/stand/efi/loader/arch/arm/Makefile.inc Sat Mar 14 > 05:57:22 2020 (r358988) >> +++ head/stand/efi/loader/arch/arm/Makefile.inc Sat Mar 14 06:36:03 > 2020 (r358989) >> @@ -1,6 +1,7 @@ >> # $FreeBSD$ >> >> SRCS+= exec.c \ >> + efiserialio.c \ >> start.S >> >> HAVE_FDT=yes > > (Snip) > >> @@ -930,7 +936,6 @@ main(int argc, CHAR16 *argv[]) >> if (!has_kbd && (howto & RB_PROBE)) >> howto |= RB_SERIAL | RB_MULTIPLE; >> howto &= ~RB_PROBE; >> - uhowto = parse_uefi_con_out(); >> >> /* >> * Read additional environment variables from the boot device's > > -- > Tomoaki AOKI <junchoon@dec.sakura.ne.jp>help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?746EE981-536F-49AD-9B76-F9F103ECB1F9>
