svn commit: r344411 - stable/11/stand/efi/libefi

Kyle Evans kevans at FreeBSD.org
Thu Feb 21 02:50:47 UTC 2019


Author: kevans
Date: Thu Feb 21 02:50:45 2019
New Revision: 344411
URL: https://svnweb.freebsd.org/changeset/base/344411

Log:
  MFC r336431: stand: Fix UEFI console scrolling
  
  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.

Modified:
  stable/11/stand/efi/libefi/efi_console.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/stand/efi/libefi/efi_console.c
==============================================================================
--- stable/11/stand/efi/libefi/efi_console.c	Thu Feb 21 02:48:38 2019	(r344410)
+++ stable/11/stand/efi/libefi/efi_console.c	Thu Feb 21 02:50:45 2019	(r344411)
@@ -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