[Soekris] net4801 and FreeBSD loader

Thomas Quinot thomas at cuivre.fr.eu.org
Thu Apr 22 14:58:21 UTC 2004


I have just received a nice net4801, and I started playing with booting
FreeBSD through PXE on this beast. I encountered problems with the
interaction between the 4801's video BIOS emulation and the loader's
console driver (vidconsole).

The symptom is: text output from the pxeldr phase is displayed
correctly; text output is also correct as soon as the kernel itself
starts. But some of the text output done by the loader is immediately
overwritten with spaces.

This patch resolves this problem by disabling vidconsole code
supposed to overwrite control characters present in the video RAM with

Index: vidconsole.c
RCS file: /home/ncvs/src/sys/boot/i386/libi386/vidconsole.c,v
retrieving revision 1.19
diff -u -r1.19 vidconsole.c
--- vidconsole.c	25 Aug 2003 23:28:31 -0000	1.19
+++ vidconsole.c	22 Apr 2004 13:53:35 -0000
@@ -219,6 +219,7 @@
     curx = x;
     cury = y;
+#if 0
     /* If there is ctrl char at this position, cursor would be invisible.
      * Make it a space instead.
@@ -231,6 +232,7 @@
     if (!isvisible(v86.eax & 0x00ff)) {
 	write_char(' ', fg_c, bg_c);
 /* Scroll up the whole window by a number of rows. If rows==0,

However there are two other problems:
  * when the loader initially tries to determine the current cursor
    position, it gets an incorrect indication from the BIOS, causing
    text output to overwrite the POST messages;
  * when the screen is full, no scrolling occurs, as though the BIOS
    scrolling functions were no-ops for the 4801.

'set console=comconsole' in the loader of course works around these problems,
but it would be interesting to understand whether the loader can be made to interact
nicely with the 4801 BIOS emulation.

Is there a reference documentation for the translation of BIOS
operations to terminal control sequences? (Or even better, a place where
I could access the sources of the comBIOS? :-) ).

I am using comBIOS 1.23.


    Thomas.Quinot at Cuivre.FR.EU.ORG

More information about the Soekris-tech mailing list