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
>       }
>  }
> 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to