svn commit: r358989 - in head/stand/efi: libefi loader loader/arch/arm loader/arch/arm64

Tomoaki AOKI junchoon at dec.sakura.ne.jp
Tue Mar 17 12:16:28 UTC 2020


Hi! Thanks for your respond.

Unfortunately, no.
I'm running on ThinkPad P52, which has no com connector installed.
No USB serial interface connected.

`efi-show -g global -v ConOut` on loader prompt shows

global NV,BS,RS ConOut =
PciRoot(0,0)/Pci((0x1,oxo)/Pci(0x0,0x0)/AcpiAdr(0x80010100)

Moreover, my previous idea didn't help.

Neither
 console="vidconsole"
 console="eficonsole"
 console="efi_console"
nor
 console="efi"
in /boot/loader.conf works.

Defining / undefining TERM_EMU on build are untested.

Is there any setting for /boot/loader.conf to control the behavior?


Regards.


On Mon, 16 Mar 2020 08:26:56 +0200
Toomas Soome <tsoome at me.com> wrote:

> 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 w			ould 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 at 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 at dec.sakura.ne.jp>
> 
> 


-- 
Tomoaki AOKI    <junchoon at dec.sakura.ne.jp>


More information about the svn-src-head mailing list