svn commit: r336431 - head/stand/efi/libefi

Ben Widawsky ben at bwidawsk.net
Wed Jul 18 14:49:54 UTC 2018


On 18-07-17 21:45:14, Warner Losh wrote:
> Author: imp
> Date: Tue Jul 17 21:45:14 2018
> New Revision: 336431
> URL: https://svnweb.freebsd.org/changeset/base/336431
> 
> Log:
>   Remove bogus attempt to simulate scrolling. It's not needed and messes
>   up serial output. Setting the cursor position after every character is
>   inefficient, and causes all lines to be over-printed in the serial
>   console for the boot loader. Allow the terminal to do the emulation.
>   
>   This isn't completely perfect when the size of the terminal attached
>   to the serial port isn't the same as 80x25 to match the viedoe console
>   (or whatever the video console is). While imperfect still, these
>   changes make it much better.
>   
>   This makes the serial port useful with UEFI.

Unfortunately, I still can't use EFI and serial console together reliably, but
when I have used both, this issue was incredibly annoying. Thanks for fixing.

>   
>   Differential Revision: https://reviews.freebsd.org/D16309
> 
> Modified:
>   head/stand/efi/libefi/efi_console.c
> 
> Modified: head/stand/efi/libefi/efi_console.c
> ==============================================================================
> --- head/stand/efi/libefi/efi_console.c	Tue Jul 17 21:18:49 2018	(r336430)
> +++ head/stand/efi/libefi/efi_console.c	Tue Jul 17 21:45:14 2018	(r336431)
> @@ -147,20 +147,20 @@ efi_cons_rawputchar(int c)
>  		switch (c) {
>  		case '\r':
>  			curx = 0;
> -			curs_move(&curx, &cury, curx, cury);
> +			efi_cons_efiputchar('\r');
>  			return;
>  		case '\n':
> +			efi_cons_efiputchar('\n');
> +			efi_cons_efiputchar('\r');
>  			cury++;
> -			if (cury >= y) {
> -				efi_cons_efiputchar('\n');
> +			if (cury >= y)
>  				cury--;
> -			} else
> -				curs_move(&curx, &cury, curx, cury);
> +			curx = 0;
>  			return;
>  		case '\b':
>  			if (curx > 0) {
> +				efi_cons_efiputchar('\b');
>  				curx--;
> -				curs_move(&curx, &cury, curx, cury);
>  			}
>  			return;
>  		default:
> @@ -175,7 +175,6 @@ efi_cons_rawputchar(int c)
>  				cury--;
>  			}
>  		}
> -		curs_move(&curx, &cury, curx, cury);
>  #endif
>  	}
>  }
> 


More information about the svn-src-all mailing list