.SH SYNOPSIS
.I none
.SH DESCRIPTION
-When booting Plan 9 on a PC, the DOS program
+When booting Plan 9 on a PC, the bootloader program
.IR 9boot (8)
-first reads a DOS file
-containing configuration information from the boot disk.
+first reads configuration information from a file
+on the boot media.
This file,
.BR plan9.ini ,
looks like a shell script containing lines of the form
.EE
BUG: On many machines only the 16 bit card works.
.TP
+.B bcm
+Broadcom BCM57xx Gigabit Ethernet controllers.
+Completely configurable, no options need be given.
+.TP
+.B yuk
+Marvell 88e8057 Yukon2 Gigabit Ethernet controller.
+Completely configurable, no options need be given.
+.TP
+.B virtio
+Virtual Ethernet interface provided by QEMU/KVM and VirtualBox.
+No options need be given. The MAC address can be changed with the
+.B ea=
+option.
+.TP
.B sink
A
.B /dev/null
Currently the only tested cards are those based on the
Intersil Prism 2.5 chipset.
.
+.TP
+.B iwl
+Intel Wireless WiFi Link mini PCI-Express adapters require
+firmware from
+.B http://firmware.openbsd.org/firmware/*/iwn-firmware*.tgz
+to be present on attach in
+.B /lib/firmware
+or
+.B /boot.
+To limit the selected APs the options
+.B essid=
+and
+.B bssid=
+may be set at boot or in the ether interface clone file
+using a space as the separator between option and value, e.g.
+.EX
+ echo essid left-armpit >/net/ether1/clone
+.EE
+Scan results appear in the
+.B ifstats
+file and can be read out like:
+.EX
+ cat /net/ether1/ifstats
+.EE
+Ad-hoc mode or WEP encryption is currently not supported.
+.TP
+.B rt2860
+Ralink Technology PCI/PCI-Express wireless adapters require
+firmware from
+.B http://firmware.openbsd.org/firmware/*/ral-firmware*.tgz
+to be present on attach in
+.B /lib/firmware
+or
+.B /boot.
+See iwl section above for configuration details.
+.TP
+.B wpi
+Intel PRO Wireless 3945abg PCI/PCI-Express wireless adapters require
+firmware from
+.B http://firmware.openbsd.org/firmware/*/wpi-firmware*.tgz
+to be present on attach in
+.B /lib/firmware
+or
+.B /boot.
+See iwl section above for configuration details.
+.SS \fLwpapsk\fI=password\fP
+WPA/WPA2 encryption
+is detected automatically and a prompt for the
+.I password
+will appear when using the WIFI interface for netbooting.
+To avoid the prompt, the
+.I password
+can be specified with the boot parameter above.
+.SS \fLnora6=
+Disable automatic IPv6 configuration from incoming router advertisements.
.SS DISKS, TAPES
(S)ATA controllers are autodetected.
.SS \fL*nodma=\fP
and
.I slot
to use as a root device for bootstrapping.
+.SS \fLramdisk\fIX\fL=\fIsize\fP
+.SS \fLramdisk\fIX\fL=\fIsize sectorsize\fP
+.SS \fLramdisk\fIX\fL=\fIaddress size sectorsize\fP
+This reserves physical memory as a ramdisk that will appear as
+.IR sd (3)
+device \fLsdZ\fIX\fR.
+When the
+.I address
+argument is omited or zero, then the ramdisk will be allocated
+from the top of physical memory.
.SS AUDIO
.SS \fLaudio\fIX\fL=\fIvalue\fP
-This defines a sound interface.
+This defines a sound interface. PCI based audio devices such as
+Intel HD audio or AC97 are autodetected and do not require any settings.
.PP
Known types are
.TF ess1688
.PD
.TP
+.B hda
+Intel HD audio.
+.TP
+.B ac97
+AC97 based card.
+.TP
.B sb16
Sound Blaster 16.
.TP
.EX
port=0x220 irq=7 dma=5
.EE
-.SS Uarts
+.SS UARTS
Plan 9 automatically configures COM1 and COM2, if found,
as
.B eia0
.LP
This is typically done in order to reuse the IRQ for
another device.
+.P
+.PP
+Additional i8250 (ISA) uarts (uart2 to uart5) can be
+configured using:
+.IP
+.EX
+uart\fIX\fP=type=isa port=\fIport\fP irq=\fIirq
+.EE
.PP
-Plan 9 used to support various serial concentrators,
-including the TTC 8 serial line card and various models
-in the Star Gate Avanstar series of intelligent serial boards.
-These are no longer supported; the much simpler
Perle PCI-Fast4, PCI-Fast8, and PCI-Fast16 controllers
-have taken their places.
-These latter cards are automatically detected
-and need no configuration lines.
+are automatically detected and need no configuration lines.
.PP
The line
.B serial=type=com
.LP
would use COM1 at 19,200 baud
with odd parity.
+.LP
+The value
+.B net
+specifies ``netconsole'' which sends console messages as UDP packets over the network.
+It bypasses the IP stack and writes Ethernet packets directly to the NIC.
+In this case
+.I params
+is mandatory and takes the form
+.IP
+\fIsrcip\fR [ \fB!\fIsrcport \fR] [ \fB/\fIdevno \fR] \fB, \fIdstip\fR [ \fB!\fIdstport \fR] [ \fB/\fIdstmac \fR]
+.LP
+\fISrcip\fR, \fIsrcport\fR (default 6665), \fIdstip\fR and \fIdstport\fR (default 6666) specify the source IP address, source port, destination IP address and destination port, respectively.
+\fIDevno\fR (default 0) specifies which NIC to use, a value of \fIn\fR corresponds to NIC at \fL#l\fIn\fR (see
+.IR ether (3)).
+\fIDstmac\fR specifies the destination MAC address; broadcast packets are sent if it is unspecified.
+Note that it is possible, but not recommended, to send packets to a host outside the local network by specifying the MAC address of the gateway as \fIdstmac\fR.
+Example lines are
+.IP
+.EX
+console=net 192.168.0.4,192.168.0.8
+console=net 192.168.2.10!1337/1,192.168.2.3!1337/0ea7deadbeef
+.EE
+.LP
.SS "PC CARD"
.SS \fLpccard0=disabled\fP
Disable probing for and automatic configuration of PC card controllers.
for more.
.SS \fLnobootprompt=\fIvalue\fP
Suppress the
-.L "root from"
+.L bootargs
prompt and use
.I value
as the answer instead.
+.SS \fLrootdir=\fB/root/\fIdir\fP
+.SS \fLrootspec=\fIspec\fP
+Changes the mount arguments for the root file server
+that was specified by
+.I bootargs
+above.
+By changing
+.I dir
+in
+.BR $rootdir ,
+a different sub-directory on the root file server
+can be used as the system root. see
+.IR boot (8)
+for details.
.SS \fLuser=\fIvalue\fP
Suppress the
.L "user"
prompt and use
.I value
as the answer instead.
+.SS \fLservice=\fIvalue\fP
+Changes the systems default role. Possible
+settings for
+.I value
+are
+.B cpu
+and
+.B terminal.
.SS \fLdebugfactotum=\fP
Causes
.IR boot (8)
with the
.B -p
option, so that it can be debugged.
-.SS \fLfactotumopts=\fIoptions\fP
-Causes
-.IR boot (8)
-to start
-.I factotum
-with the given
-.IR options ,
-which must be a single word (i.e., contain no whitespace).
.SS \fLcfs=\fIvalue\fP
This gives the name of the file holding the disk partition
for the cache file system,
.B bootargs
and
.BR cfs .
-.SS \fLfs=\fIa.b.c.d\fP
-.SS \fLauth=\fIa.b.c.d\fP
-These specify the IP address of the file and authentication server
+.SS \fLfs=\fIaddress\fP
+.SS \fLauth=\fIaddress\fP
+.SS \fLsecstore=\fIaddress\fP
+These specify the network address (IP or domain name)
+of the file, authentication and secstore server
to use when mounting a network-provided root file system.
-They are used only if the addresses cannot be determined via DHCP.
+When not specified, then these settings are determined via DHCP.
+When
+.B secstore
+is not specified, then the authentication server is used.
.SS PROCESSOR
-.SS \fLe820=\fIstart end ...\fP
+.SS \fL*e820=\fItype \fB0x\fIstart \fB0x\fIend ...\fP
This variable is automatically generated by the boot loader (see
.IR 9boot (8))
by doing a BIOS E820 memory scan while still in realmode and
passed to the kernel. The format is a unordered list of
-hexadecimal 64-bit
+decimal region
+.I type
+and hexadecimal 64-bit
.I start
and
.I end
-addresses of the usable memory areas.
+addresses of the area.
.SS \fL*maxmem=\fIvalue\fP
This defines the maximum physical address that the system will scan when sizing memory.
By default the PC operating system will scan up to 3.75 gigabytes
.IR draw (3)
maintains its graphic images in kernel memory.
This deprecated option is rarely necessary in newer kernels.
+.SS \fL*imagemaxmb=\fIvalue\fP
+This limits the maximum amount of memory (in megabytes) the graphics
+image memory pool can grow. The default is unlimited for terminals
+and cpu servers.
.SS \fL*nomce=\fIvalue\fP
If machine check exceptions are supported by the processor,
then they are enabled by default.
restricts the kernel to starting at most
.I value
processors.
-.SS \fL*msi=\fP
-Enables message signaled interrupts on devices that support it (see
-.IR icanhasmsi (8)).
-It is mutually exclusive with the
-.B *nomp=
-option.
+.SS \fL*apicdebug=\fP
+Prints a summary of the multiprocessor APIC interrupt configuration.
+.SS \fL*nomsi=\fP
+Disables message signaled interrupts.
+.SS \fL*notsc=\fP
+Disables the use of the per processor timestamp counter registers
+as high resolution clock.
.SS \fL*pcimaxbno=value\fP
This puts a limit on the maximum bus number probed
on a PCI bus (default 7).
.SS \fL*nopcirouting=\fP
Disable pci routing during boot. May solve interrupt routing
problems on certain machines.
+.SS \fL*pcihinv=\fP
+Prints a summary of the detected PCI busses and devices.
.SS \fL*nodumpstack=\fP
Disable printing a stack dump on panic.
Useful if there is only a limited cga screen available,
.EX
umbexclude=0xD1800-0xD3FFF
.EE
+.SS \fL*acpi=\fIvalue\fP
+The presence of this option enables ACPI and the export of the
+.B #P/acpitbls
+file in
+.IR arch (3)
+device. In multiprocessor mode, the kernel will use the ACPI
+tables to configure APIC interrupts unless a
+.I value
+of
+.B 0
+is specified.
.SS \fLapm0=\fP
This enables the ``advanced power management'' interface
as described in
battery life (see
.IR stats (8)).
It is not on by default because it causes problems on some laptops.
+.SS USB
+.SS \fL*nousbprobe=\fP
+Disable USB host controller detection.
+.SS \fL*nousbohci=\fP
+.SS \fL*nousbuhci=\fP
+.SS \fL*nousbehci=\fP
+.SS \fL*nousbxhci=\fP
+Disable specific USB host controller types.
+.SS \fLnousbrc=\fP
+Disable
+.IR nusbrc (8)
+startup at boot time.
+.SS \fLnousbhname=\fP
+When defined,
+.IR nusbrc (8)
+will use the dynamically assigned usb device address to name
+usb devices instead of the device unique name.
.SS VIDEO
.SS \fLmonitor=\fIvalue\fP
.SS \fLvgasize=\fIvalue\fP
is set to
.B ask
then the user is prompted for a choice on boot.
+.SS \fL*bootscreen=\fIvalue\fP
+This is used by the kernel to attach a pre-initialized
+linear framebuffer that was setup by the bootloader
+or firmware.
+The
+.I value
+has four space separated fields: the resolution and bitdepth
+of the screen, the color channel descriptor, the physical
+address of the framebuffer and a optional aperture size.
+.EX
+ *bootscreen=800x600x32 x8r8g8b8 0x80000000 0x001d4c00
+.EE
.SS \fL*dpms=\fIvalue\fP
This is used to specify the screen blanking behavior of the MGA4xx
video driver.
.BR off .
The first two specify differing levels of power saving;
the third turns the monitor off completely.
-.SS \fL*vesashadow=\fP
-This enables the shadow framebuffer or softscreen of the VESA
-video driver. This is usefull on devices where access to
-the physical framebuffer is slow.
.SS NVRAM
.SS \fLnvram=\fIfile\fP
.SS \fLnvrlen=\fIlength\fP
serial0=type=generic port=0x3E8 irq=5
monitor=445x
vgasize=1600x1200x8
-bootfile=/386/9pcf
+bootfile=/386/9pc
%
.EE
.SH "SEE ALSO"
.IR 9boot (8),
.IR booting (8),
.IR boot (8)
-.SH BUGS
-Being able to set the console device to other than a
-display is marginally useful on file servers; MS-DOS
-and the programs which run under it are so tightly bound
-to the display that it is necessary to have a display if any
-setup or reconfiguration programs need to be run.
-Also, the delay before any messages appear at boot time
-is disconcerting, as any error messages from the BIOS
-are lost.
-.PP
-This idea is at best an interesting experiment that needs another iteration.