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