Subject: port-i386/6695: boot_console(8) needs mdoc fixes and other upgrades
To: None <gnats-bugs@gnats.netbsd.org>
From: None <woods@proven.weird.com>
List: netbsd-bugs
Date: 12/31/1998 17:44:13
>Number:         6695
>Category:       port-i386
>Synopsis:       boot_console(8) needs mdoc fixes and other upgrades
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer (NetBSD/i386 Portmaster)
>State:          open
>Class:          doc-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 31 14:50:00 1998
>Last-Modified:
>Originator:     Greg A. Woods
>Organization:
Planix, Inc.; Toronto, Ontario; Canada
>Release:        NetBSD-current 1998/11/16
>Environment:

System: NetBSD 1.3I i386

>Description:

	The boot_console(8) manual page doesn't make the best use of
	the mdoc(7) macros possible.

	Several more recent i386 boot_console(8) features are also
	undocumented or incorrectly documented.

	There are several other changes and cleanups I'd like to
	propose for biosboot and the console selection algorithm, but
	these documentation fixes are necessary anyway should not only
	make the manual page a bit better looking, but should also
	better match the existing code.

>How-To-Repeat:

	by observation and examination of the code

>Fix:

	use the following document instead (context diff is more than
	twice as large!)

.\"	$NetBSD: boot_console.8,v 1.3 1998/02/25 12:30:13 drochner Exp $
.\"
.Dd December 31, 1998
.Os
.Dt BOOT_CONSOLE 8 i386
.Sh NAME
.Nm boot_console
.Nd selection of a console device in the i386 bootloader
.\"
.Sh DESCRIPTION
The
.Nx
i386 bootloader selects a console device for its user interaction and
passes information about it to the
.Nx
kernel.  The selection process is controlled by bootloader compile-time
options and system setup at the bootloader startup time.
.\"
.Ss Serial Console Options
The compile-time options (to be set in
.Dq Makefile.booters )
are:
.Bl -ohang
.It Dv Sy SUPPORT_SERIAL= Ns Fa policy
enables support for serial input / output.  By default this option is
not set and the standard PC keyboard and display are always used as the
console device.  See
.Dq Em "Console selection Policy"
below for valid values of
.Fa policy .
.It Dv Sy DIRECT_SERIAL
causes direct hardware access to be used for serial input / output.
With this option, software handshake (XON/XOFF) is used for flow
control.  Without this option, BIOS functions are employed for serial
port handling, which require hardware handshake lines to be completely
wired.
.It Dv Sy CONSPEED= Ns Fa integer
sets the baud-rate for the serial console.  This option has only an
effect when used in combination with the
.Dq Dv DIRECT_SERIAL
option above, otherwise, the default setting of 9600 baud is used.  The
value of
.Fa integer
must be something that makes sense as a serial port baud rate.
.It Dv Sy COMCONS_KEYPRESS
Require a character input within seven(7) seconds from serial console
device to be selected.
.El
.\"
.Ss Console Selection Policy
The actual policy for the console selection is determined by the value
of
.Dv Dq SUPPORT_SERIAL
The following options are available:
.Bl -ohang
.It Dv Em CONSDEV_PC
Force use of the standard PC keyboard and display as the console.
.It Dv Em CONSDEV_COM0 Li ... Dv Em CONSDEV_COM3
Use the serial port with the corresponding BIOS number as the console.
No output is attempted to the selected serial port.  If the port is not
known to the BIOS, it falls back to
.Dq Dv CONSDEV_PC .
(Note: This feature can be deliberately used for console selection if
the serial ports have been disabled in the BIOS.)
.It Dv Em CONSDEV_COM0KBD Li ... Dv Em CONSDEV_COM3KBD
If the port is known to the BIOS, and output of a character to the port
succeeds (and if
.Dq Dv DIRECT_SERIAL
is defined the RS-232
.Dq "modem ready"
status is on after the character is output), and the conditions
described under
.Dq Dv COMCONS_KEYPRESS
above are fulfilled, the port is used as console.  If the port is not
known to the BIOS, it falls back to
.Dq Dv CONSDEV_PC .
.It Dv Em CONSDEV_AUTO
Auto-select the console.  All serial ports known to the BIOS are probed
in sequence.  If output of a character to the port succeeds (and if
.Dq Dv DIRECT_SERIAL
is defined the RS-232
.Dq "modem ready"
status is on after the character is output), and the conditions
described under
.Dq Dv COMCONS_KEYPRESS
above are fulfilled, the port is used as console.  If no serial port
passes the check,
.Dq Dv CONSDEV_PC
is used.  The progress of the selection process is shown at the PC
display as digits corresponding to the serial port number currently
probed.
.El
.\"
.Sh FILES
.Bl -tag -width /sys/arch/i386/stand/Makefile.booters
.It Pa /sys/arch/i386/stand/Makefile.booters
compile time options for all boot programs.
.El
.\"
.Sh SEE ALSO
.Xr console 4 ,
.Xr boot 8
.\"
.Sh BUGS
The value of
.Dv SERIAL_POLICY
should be settable through a boot configuration option.  However
traditionally there was no non-volatile storage available on the PC
platform.  This requires console auto-selection methods which can be
inconvenient and / or unstable in some situations.  The selection policy
should be adapted to the local hardware configuration, which might
require code changes.  Some BIOS versions, particularly those used on
large servers and in embedded and single-board industrial computers,
have integrated support for serial consoles.  The boot loader should
query for these settings where possible.
.Pp
The serial communication parameters (byte-size, parity, stop-bits) are
not settable (either at compile time or run time).  The default
parameters are
.Dq "8 N 1" .
These parameters should be read from the BIOS at run time if available.
.Pp
The baud rate is not settable when using BIOS I/O.  It should be
settable at compile time with
.Dv Dq CONSPEED
just as it is when using
.Dv Dq DIRECT_SERIAL .
Ideally it should be read from the BIOS at run time if available.
The default speed is 9600 baud.
>Audit-Trail:
>Unformatted: