Date: Fri, 5 Feb 2021 19:24:35 +0200 From: Toomas Soome <tsoome@me.com> To: Warner Losh <imp@bsdimp.com> Cc: Toomas Soome <tsoome@freebsd.org>, src-committers <src-committers@freebsd.org>, dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org Subject: Re: git: 0c839497c174 - stable/13 - loader.efi: There are systems without ConOut, also use ConOutDev Message-ID: <97F5C09F-7AE3-4763-AD32-BFEA25101CE5@me.com> In-Reply-To: <CANCZdfrdpMXTxJbzY6w2NE_DtwZ1eBuMm%2B1rr6d0a22R2QKaCQ@mail.gmail.com> References: <CANCZdfqXU7Syo4wvxJ17Gt%2B0E2Kw8yOU_nrTNA%2Beu=z-ZwTKow@mail.gmail.com> <CF59D855-228A-4BC1-AC4B-0C54417EF3BF@me.com> <CANCZdfrdpMXTxJbzY6w2NE_DtwZ1eBuMm%2B1rr6d0a22R2QKaCQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 5. Feb 2021, at 18:44, Warner Losh <imp@bsdimp.com> wrote: >=20 >=20 >=20 > On Thu, Feb 4, 2021 at 11:38 PM Toomas Soome <tsoome@me.com = <mailto:tsoome@me.com>> wrote: >=20 >=20 >> On 5. Feb 2021, at 01:56, Warner Losh <imp@bsdimp.com = <mailto:imp@bsdimp.com>> wrote: >>=20 >> =EF=BB=BF >> And why the instaMFC? Changes are supposed to cook force days before = merging... I have questions about the wisdom of this change... >>=20 >> Warner=20 >>=20 >=20 > Reason is in PR. There is someone with the system without ConOut but = ConOutDev is set. Instead of falling back to arbitrary device (which in = this case was totally wrong choice), we can try the possible devices = list. We do not change the ConOut parsing. >=20 > We could have the same effect defaulting to Video. This bug should = have been discussed / reviewed before it was committed. How is is different from defaulting to serial, it is just as bad? we can = not guess there, thats why we do have ConOutDev list. >=20 > If it would appear, there are systems with unusable devices listed in = ConOutDev, then we need to think how to handle such case. >=20 > Yes. We fall back to the arbitrary device... It's just a flag that can = be overridden. We can easily fall back to video too. We *should not* fall back on arbitrary devices when there is source for = alternate options. And that option is from specification: "The ConInDev, ConOutDev, and ErrOutDev variables each contain an = EFI_DEVICE_PATH_PROTOCOL descriptor that defines all the possible = default devices to use on boot. These variables are volatile, and are = set dynamically on every boot. ConIn, ConOut, and ErrOut are always = proper subsets of ConInDev, ConOutDev, and ErrOutDev.=E2=80=9D UEFI Spec 2.8A, Page 82. There may or may not be Video (or Serial) device listed. If not, there = are good chance we will be in trouble because the firmware internals may = not be set up properly and we can just as well end up in hung system. >=20 > Please seek more review is the point I'd hoped to make in the private = email. This could easily have been reviewed. There was no urgent rush = that required it to go in w/o review or even discussion. >=20 > However, you didn't answer my question: Why the instant MFC? There's a = 3 day minimum for changes in head... And there's nothing so urgent that = requires a short-circuit. >=20 > Warner Because the issues is reported on 13. well, I guess You are right there, = could have waited a bit more. thanks, toomas >=20 > =20 > Thanks, > Toomas >=20 >> On Thu, Feb 4, 2021, 2:34 PM Toomas Soome <tsoome@freebsd.org = <mailto:tsoome@freebsd.org>> wrote: >> The branch stable/13 has been updated by tsoome: >>=20 >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3D0c839497c174e961fc71f7d3329d05b1= 0ec5525b = <https://cgit.freebsd.org/src/commit/?id=3D0c839497c174e961fc71f7d3329d05b= 10ec5525b> >>=20 >> commit 0c839497c174e961fc71f7d3329d05b10ec5525b >> Author: Toomas Soome <tsoome@FreeBSD.org> >> AuthorDate: 2021-02-04 20:49:02 +0000 >> Commit: Toomas Soome <tsoome@FreeBSD.org> >> CommitDate: 2021-02-04 21:33:15 +0000 >>=20 >> loader.efi: There are systems without ConOut, also use ConOutDev >>=20 >> Conout does contian the default output device name. >> ConOutDev does contain all possible output device names, so we = can >> use it as fallback, when there is no ConOut. >>=20 >> PR: 253253 >>=20 >> (cherry picked from commit = 2bd4ff2d8911009283e4e615ca4aad35a845f48b) >> --- >> stand/efi/loader/main.c | 2 ++ >> 1 file changed, 2 insertions(+) >>=20 >> diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c >> index ca41cd4a2610..32b278950745 100644 >> --- a/stand/efi/loader/main.c >> +++ b/stand/efi/loader/main.c >> @@ -735,6 +735,8 @@ parse_uefi_con_out(void) >> how =3D 0; >> sz =3D sizeof(buf); >> rv =3D efi_global_getenv("ConOut", buf, &sz); >> + if (rv !=3D EFI_SUCCESS) >> + rv =3D efi_global_getenv("ConOutDev", buf, &sz); >> if (rv !=3D EFI_SUCCESS) { >> /* If we don't have any ConOut default to serial */ >> how =3D RB_SERIAL;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?97F5C09F-7AE3-4763-AD32-BFEA25101CE5>