Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2019 02:50:46 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r344411 - stable/11/stand/efi/libefi
Message-ID:  <201902210250.x1L2okVU089314@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
 	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902210250.x1L2okVU089314>