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.

Differential Revision: https://reviews.freebsd.org/D16309
This commit is contained in:
imp 2018-07-17 21:45:14 +00:00
parent cf0f64b8a6
commit fc9b91fa77

View File

@ -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
}
}