Date: Sat, 23 Dec 2017 16:57:11 +0900 From: Tomoaki AOKI <junchoon@dec.sakura.ne.jp> To: svn-src-head@freebsd.org Cc: mizhka@FreeBSD.org Subject: Re: svn commit: r327058 - head/stand/efi/boot1 Message-ID: <20171223165711.0d11906f601133e66289105a@dec.sakura.ne.jp>
next in thread | raw e-mail | index | archive | help
This broke screen after kernel starts. ThinkPad T420 with nvidia NVS 4200M. boot1 screen and loader screen (beastie menu) shows up smaller (but not broken) than usual, and small five interlaced kernel outputs (not actually readable at all) are shown on top of screen. So screen resolution setting should be different and not re-initialized in kernel properly. *Setting hw.vga.textmode (0 and 1) didn't help. *Setting resolution (assuming it wouldn't work, though) via kern.vt.fb.default_mode didn't work as expected. (the option is for scfb, not for UEFI fb.) *Removing nvidia.ko and nvidia-modeset.ko from loader.conf didn't help. *Last known-to-be-OK revision was r326876 and no other commit is done to boot1 codes before this rev. *Using known-to-be-OK rev of boot1.efi, all goes fine. As some commits are done to toolchain codes, I tried rebuilding known-to-be-OK boot1.efi with current toolchains and confirmed working OK. > Author: mizhka > Date: Thu Dec 21 12:21:35 2017 > New Revision: 327058 > URL: https://svnweb.freebsd.org/changeset/base/327058 > > Log: > [boot/efi] scan all display modes rather than sequential try-fail way > > This patch allows to scan all display modes in boot1 as loader does. > > Before system tried to select optimal display mode by sequential scan of > modes and if error then stop scanning. This way is not good, because > if mode N is not present, mode N+1 may exist. > > In loader we use conout->Mode->MaxMode to identify maximum number of modes. > This commit is to use same way in boot1 as in loader. > Reported by: Andrey Pustovetov <andrey.pustovetov at gmail.com> > Reviewed by: tsoome > Differential Revision: https://reviews.freebsd.org/D13541 > > Modified: > head/stand/efi/boot1/boot1.c > > Modified: head/stand/efi/boot1/boot1.c > ============================================================================== > --- head/stand/efi/boot1/boot1.c Thu Dec 21 09:21:40 2017 (r327057) > +++ head/stand/efi/boot1/boot1.c Thu Dec 21 12:21:35 2017 (r327058) > @@ -430,10 +430,10 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab) > conout = ST->ConOut; > conout->Reset(conout, TRUE); > max_dim = best_mode = 0; > - for (i = 0; ; i++) { > + for (i = 0; i < conout->Mode->MaxMode; i++) { > status = conout->QueryMode(conout, i, &cols, &rows); > if (EFI_ERROR(status)) > - break; > + continue; > if (cols * rows > max_dim) { > max_dim = cols * rows; > best_mode = i; -- Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171223165711.0d11906f601133e66289105a>