Skip site navigation (1)Skip section navigation (2)
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>