boot(HW)


boot -- boot parameters

Description

Parameters for the boot program control various system resources and behavior, and can be set or changed in one of two ways:

  1. Edit the file /stand/boot to set parameters as appropriate, and then reboot the system. When changed in this manner, the new boot parameter values will be used on every system boot.

  2. Use the Boot Command Processor (BCP) described on boot(ADM), The BCP command prompt is accessed during a system boot by pressing any key when you see the operating system logo. When you use the BCP during reboots, the changes you make apply to that boot session only, and are not reflected in /stand/boot.

In the parameters listed below, device can be prefixed to any filename to override the default device. Standard values for device, except in the CONSOLE parameter take the following forms:


fd(unit)
specifies the floppy disk, drive number unit

hd(unit[,partition][,slice])
specifies the hard disk, drive number unit (starting at zero), partition number partition, and slice number slice. partition can also be specified as an operating system type name (UNIX, DOS, (DOS_12, DOS_16, DOS_32, or DOS_EXT), NT, or OS2). If partition is not defined, it defaults to UNIX. slice specifies the slice number for the root filesystem, allowing the possibility of backup roots.

All parameters, whether recognized by boot or not, are passed to the kernel.

Parameters recognized by boot

The following parameters are recognized by boot and are also passed to the kernel for further processing.

ACPI=N
Support for booting systems using the Advanced Configuration and Power Interface (ACPI) BIOS tables is provided. This allows the OS to run on multiprocessor (MP) systems that do not have Intel Multi-Processor Specification (MPS) BIOS tables. Booting from ACPI tables is disabled by default. To enable booting from ACPI:

  1. Add the following line to the file /stand/boot:
       ACPI=Y
    
    Note: Booting from ACPI and hyperthreading may be used together by adding both ACPI=Y and ENABLE_JT=Y entries to the /stand/boot file and rebooting the system.

  2. Reboot the system to rebuild the kernel:
       shutdown -i6 -g0 -y
    

  3. If your hardware supports hyperthreading, enter the system BIOS utility as the system reboots to enable hyperthreading in your system BIOS. (See the hardware manufacturer's documentation for details.)

    Note: on systems that support hyperthreading, the hyperthreading feature should be enabled in the system BIOS when booting from the ACPI tables, even if hyperthreading is not enabled in the operating system. Otherwise, if you boot from the ACPI tables on a system that supports hyperthreading but does not have hyperthreading enabled in the BIOS, utilities like psrinfo may report fewer processors available than the actual number of processors installed.

    Save the BIOS configuration and reboot.

  4. After the system boots, use the psrinfo(ADM) command to check processor status.

ALIGN=num
Define this parameter to indicate the alignment requirement, in bytes, for FILES images. Normally, this parameter is specified by the kernel: it should not be changed manually.

ATAPI_DMA_DISABLE=YES
Disables DMA for all ATAPI IDE devices. This may be necessary to workaround errors generated by devices that do not conform to the ATAPI DMA specification. ATAPI DMA can also be disabled for individual models and model families through the IDE drive's space.c file.

To disable DMA at boot, interrupt the boot process as it begins by pressing a key when the system logo is displayed. Once the [boot] prompt is displayed, enter the following:

   [boot] ATAPI_DMA_DISABLE=YES
   [boot] boot

To disable DMA for either a particular model name or a family of models, use the ide_exceptions[] array in the /etc/conf/pack.d/ide/space.c file. The ide_exceptions[] array contains IDE devices that do not conform to specification when operating in DMA mode; the driver will disable DMA for any device or family of devices appearing in this array. The first argument is the model number and the second is the firmware version. Model numbers are matched based on the size of the string entered in the array. This means that the string "ABCD" will match all devices starting with "ABCD". Use sdiconfig -l to get a list of devices. Leading spaces in either argument are ignored for matching purposes. The third and fourth arguments in this array are not currently used, and should be given values as in the example below:

   struct sdi_blist ide_exceptions[] = {
           {"HITACHI CDR-8335","0008","", 1}
   };

AUTOBOOT=YES|NO|num
Define this parameter to indicate whether boot is to load the kernel, then either start booting it immediately (or after a defined amount of time), or enter the BCP (an interactive boot session). ``YES'' means the boot will begin immediately upon completion of loading. ``NO'' means enter the BCP immediately upon completion of loading. num specifies the minimum time (in seconds) to wait after the start of loading BOOTPROG to begin the boot. AUTOBOOT is set to ``5'' by default.

BLM=filename[,filename ...]
Define this parameter to indicate the Bootstrap Loadable Modules to be loaded into boot. BLM files are loaded from STARTDEV, unless filename specifies a device. Setting this parameter causes the specified BLM(s) to be immediately loaded.

BOOTDEV=device
Define this parameter to name the device BOOTPROG is loaded from.

BOOTPROG=filename
Define this parameter to change the name of the kernel file to boot. As delivered, the default is unix. During a user-initiated interactive session, the current value of BOOTPROG is the default file used when boot times out.

For example, BOOTPROG=myunix directs the boot program to load the /stand/myunix file. The kernel file is loaded from BOOTDEV unless filename specifies a device.


CONSOLE=device(minor[,params])
Define this parameter to override the kernel's default console device (used by the boot program for kernel messages, kernel debugger I/O, /dev/sysmsg, and the console login prompt). CONSOLE defaults to the console-capable device configured with the highest order number (see Master(DSP)). Typically this is kd.

If CONSOLE is defined, device specifies the device to use and minor specifies the minor number for that device.

If device is a console-capable device configured into the kernel, the kernel will use it for its default console. If device is one of the following, boot will use it for its console:


kd
the standard PC console (at minor 0)

iasy
minor can be 0 through 15.

iasy supports the serial port device. The minor number indicates the same device variant as it would under unix, however, because it is interpreted by boot, there may be other restrictions on its value. Hence, the only allowable values for the iasy device minor are 0 through 15, which specify various degrees of flow and modem control on COM1, COM2, COM3, and COM4 serial ports.


mirrorcon
at minor 0.

mirrorcon is the special console pseudo-device driver, useful for remote administration and debugging. It is found in the Advanced Commands package. The parameter string for mirrorcon is a list of console device specifications, each in the form described above and separated by plus signs:

   device(minor[,params])

All console output will be sent to each of the specified devices, and any input entered on any of the devices will be used as console input. The minor number for mirrorcon must always be zero.

The effect of mirrorcon does not extend to the console login prompt or use of /dev/console in general. /dev/console can only be a single device. Whichever device is first in the parameter string for mirrorcon will be used for /dev/console.


The optional parameter string, params, is passed to the console device driver. Its interpretation is driver-specific. The parameter string params is device-specific. The device kd does not accept params. For iasy and mirrorcon, params is used to specify baud rate, data bits, and parity, in the following syntax:
   Bbaud|Cdata|Pparity
baud can be 115200, 57600, 38400, 19200, 9600 (the default), 4800, 2400, 1200, 600, 300, or 110.

data can be any combination of 7, 8, or T. 7 and 8 specify the number of data bits (8 is the default). T specifies 2 stop bits (1 is the default).

parity defaults to none, and can be set to O (odd), or E (even).

Note that successful use of higher baud rates (above 9600) depends on the UART hardware in the machine and cannot be guaranteed: characters may be lost if flow control is not adhered to by the remote input device (terminal or modem).

For example, the following definition sets the console to iasy minor 0, the COM1 port using modem control (tests the state of the DCD line) and software flow control, the baud rate to 1200, the data bits to 7 (with 1 stop bit), and the parity to odd:

   CONSOLE=iasy(0,B1200|C7|PO)

The following definition sets the console to COM2, using no flow control, at 38400 baud, with no parity checking, and 1 stop bit:

   CONSOLE=iasy(5,B38400)

The following definition sets the console to the PC console keyboard (the default):

   CONSOLE=kd(0)

The following definition uses mirrorcon for two devices named kd and iasy, redirecting the data to and from /dev/console to the PC console and keyboard, and to the serial port at minor 2. That is, COM1 with no flow control and no modem control (/dev/tty00t), at a baud rate of 19200, with 8 data bits, 2 stop bits, and even parity:

   console=mirrorcon(0,kd(0)+iasy(2, B19200|C8T|PE))

ENABLE_HT=Y
ENABLE_JT=Y
HYPERTHREAD=Y
Enables Intel Jackson Technology (hyperthreading) available on some Pentium 4 processors. Hyperthreading can be enabled on uniprocessor and multiprocessor systems, even if the system does not provide Intel Multi_rocessor Specification (MPS) tables.

Note that using Jackson Technology may either increase or decrease system performance depending on the workload applied to the system. By default, Jackson Technology is disabled. To enable it, edit the file /stand/boot and add the following to the file:

   ENABLE_JT=Y
Hyperthreading can also be enabled with ACPI; see ACPI above for how to configure both hyperthreading and ACPI. Note that the osmp package is required on all systems to enable hyperthreading as well as ACPI.

Modifications were made to the MPS (Intel Multi-Processor Spec) PSM (Platform Specific Module) to read the ACPI BIOS tables. The PSM processes the tables as follows:

  1. If the "ENABLE_JT" boot parameter is set to "Y", the MPS PSM will attempt to use the ACPI tables to enumerate the processors on the system.

  2. If reading the ACPI tables fails, the PSM will fail to load.

  3. If the ACPI tables are loaded correctly and Jackson Technology is present, the OS assumes the ACPI tables have presented it with all the logical processors available on the system.

  4. During system initialization on a multi-procesor kernel, if the "ENABLE_JT" boot parameter is set to "Y" and Jackson Technology is present, the bootstrap processor is queried for the number of logical processors present in it. The number of logical processors/physical processor is saved for later use in determining the maximum number of processors to allow online. The default number of logical processors/physical processor is 1.

  5. Except for onlining processors, the OS does not distinguish between logical and physical processors. When requested to bring a processor online, the OS checks whether the CPU license is greater than or equal to the number of physical processors on the system. If this is true, all logical processors present in the system will be allowed to be brought online. If not all of the physical processors have been licensed, the number of logical processors allowed online is kept the same as the number of physical processors licensed.

Use the psrinfo(ADM) command to display processor status.


ENABLE_PCI32=Y
Enables 32-bit PCI BIOS call support. Disabled by default.

ENABLE_PSN=Y
Instructs the operating system to enable the processor serial number (PSN) feature, present on Pentium III systems. If enabled, the PSN can be read by applications via calls to the cpuid instruction. By default, the PSN is disabled.

FILES=[name:]filename[,filename ...]
Define this parameter to name the auxiliary files to be loaded when BOOTPROG is loaded. The memory used to load each file will appear in the MEMORY parameter as a single range with use set to name. If name is omitted here, use will be set to filename in the MEMORY parameter.

Auxiliary files are loaded from BOOTDEV unless filename specifies a device.


IVAR_DEBUG_ALL=num
Define this parameter to enable debugging output for the ISL scripts. If num is 1, debug output is enabled. All other values are ignored and are equivalent to not setting the parameter at all (the default). Log files are in /tmp/log during the process of installing the system. They are in /isl after the system has rebooted. Note that this parameter is effective only during ISL, not after the installation process is complete.

INITFILE=filename
Define this parameter to name a file to use as input to /sbin/init (default is /etc/inittab).

MEMADJUST={+|-}range[,{+|-}range ...]
Define this parameter to override memory. range is specified in the form low_address-high_address. Addresses are in decimal, and can be specified in bytes, or suffixed with K to indicate kilobytes (1024 bytes), M to indicate megabytes, or G to indicate gigabytes. Addresses can not exceed 4G.

A range that is prefixed with + is added to the known ranges so far; a range that begins with a - is subtracted. Ranges are applied in left-to-right order. If the first range has neither a + nor a -, all known ranges are discarded and replaced by the specified range. In general, memory that is already in use is never discarded.


MULTICORE=Y
By default multiple processor cores are utilized if they are detected. Setting "MULTICORE" to "N" disables the use of multiple processor cores and also disables hyperthreading. For more information about hyperthreading please refer to the "ENABLE_HT" parameter above.

PARAMS=filename
Define this parameter to load another boot parameter file in addition to /stand/boot. Setting this parameter causes the specified filename to be immediately loaded. Boot parameter files are loaded from STARTDEV unless filename specifies a device.

TIMEOUT=number
If boot is waiting for input from the user and TIMEOUT is set, it waits for number seconds, then boots the kernel file defined by BOOTPROG. The default is 0, which means to wait forever. Once any key is pressed, boot will wait forever for additional input.

USE_VESA_BIOS=NO
This parameter, when enabled, tells the kernel to initialize the graphics card for the console using VESA BIOS calls, instead of the ECM tables used on older graphics cards. It is disabled by default. To enable graphics detection using VESA BIOS calls, set this parameter to Y or YES.

Read-only parameters generated by boot

These parameters are used to pass information to the kernel, such as details of the hardware configuration. They are generated by boot and cannot be changed by you.

BOOTCONS=num,num
Console I/O routines for use by BOOTPROG.

BOOTSTAMP=string
Media stamp from boot device (BOOTDEV).

BUSTYPES=string[,string]
I/O bus type name(s).

HDPARM0=cyls,heads,sects
BIOS-reported geometry for first hard disk.

HDPARM1=cyls,heads,sects
BIOS-reported geometry for second hard disk.

KSYM=num,num,num,num,num
BOOTPROG symbol table information.

MEMORY=range[:use][,range[:use]]
Lists available memory and in-use memory.

range is specified in the form low_address-high_address. Addresses are in decimal, and can be specified in bytes, or suffixed with K to indicate kilobytes (1024 bytes), M to indicate megabytes, or G to indicate gigabytes. Addresses can not exceed 4G.


STARTDEV=device
Specifies the device from which the bootstrap itself was loaded.

USER_PARAMS=param[,param]
Specifies parameters that you set or modified manually.

Parameters recognized by the kernel

The following parameters are processed by the kernel rather than by boot.

CACHE_LINE=number
Set this parameter to specify the size of the L1 cache line (in bytes) of whichever processor cache has the greatest cache line size. Its purpose is to segregate the bin locks into separate cache lines. The default, 128, is taken from cache information provided by the processor itself. It may improve advantageous to adjust this value if an external cache of greater cache line size is used, or if a new processor, unknown to the kernel, is used.

DISABLE_CACHE=(YES|NO)
Set this parameter to ``YES'' to disable use of internal and external memory caches on i486 and above CPUs.

DISABLE_PGE=(YES|NO)
Set this parameter to ``YES'' to disable use of the PGE (Page Global Enable) optimization. Otherwise, PGE will be used on all CPUs that support it.

ENABLE_4GB_MEM=(YES|NO)
When the operating system detects memory above 4GB, it automatically enables PAE (Physical Address Extension) mode to access the memory. You can also set this parameter to YES to force PAE mode, or to NO to specifically disable PAE mode (and, consequently, any memory above 4GB).

GEN_MEM_MAX=memsize
Set this parameter to specify a maximum value, in megabytes, for general purpose memory. The default is ``8192'' (8GB). Any memory above this value can be used as dedicated memory by setting the DEDICATED_MEMORY parameter.

IGNORE_MACHINE_CHECK=(YES|NO)
Set this parameter to ``YES'' to ignore hardware machine check conditions. On some systems, external circuitry delivers spurious machine check conditions to the CPU. This parameter allows such machine checks to be ignored rather than disabling the system.

INITSTATE=sysstate
Define this parameter to specify the system state to enter after booting. This parameter is passed to /sbin/init and overrides the system state specified on the initdefault line in the /etc/inittab file. The value of sysstate can be ``0''-``6'', ``s'', or ``S''.

This parameter is particularly useful if a problem causes your system to fail before it reaches networking state. For example, if you have selected the wrong video driver, the graphical login will not start. If you interrupt a reboot, and define INITSTATE to be ``s'', you can boot to single-user state, and correct the problem.


LUNSEARCH=(c:b,t,l)[, ...]
Define this parameter to specify devices that should not be accessed beyond LUN 0. The argument c specifies the controller, b specifies the bus, t the target, and l the LUN of the device causing problems. The parentheses are required, but any of the arguments can be omitted. If omitted, all valid values for that argument are matched.

The following example shows that on controller 0, bus 0, the device at target 3 should be accessed only at LUN 0, and all devices on controller 1 should be accessed only at LUN 0.

   LUNSEARCH=(0:0,3),(C)

The following example limits device searching to LUN 0 for all devices:

   LUNSEARCH=()

PAGE_BINS=number
Set this paramter to specify the number of separate bins from which free pages are allocated. Its purpose is to optimize allocation of pages. The minimum value is 32, the default is 128, and is taken from cache information provided by the processor itself. It may be advantageous to raise the value if a large external cache is used, or if a new processor, unknown to the kernel, is used. The proper formula for computing this should be:
   MAX [cachesize/PAGESIZE/associativity]  (over all caches)

PDI_TIMEOUT=(YES|NO)
Set this parameter to ``YES'' to enable SCSI command timeouts that trigger SCSI device and bus recovery. Otherwise, SCSI commands will not time out and SCSI device and bus hangs can only be cleared by a system reboot. Setting this parameter to ``NO'' is useful when an unreasonable timeout value has been set for a SCSI command. The system can boot without using the timeout values, and then the unreasonable timeout value can be corrected using the sdi_timeout(ADM) command.

PSM=name
Define this parameter to force all PSMs except name to be ignored. Under normal circumstances, the kernel tries each PSM until one succeeds. The fallback PSM is atup.

RESMGR=filename
Specifies an alternative filename for /stand/resmgr. This parameter should be used in conjunction with FILES to load an alternative resource manager database. For example,
   FILES=resmgr:resmgr.sav
   RESMGR=resmgr.save

ROOTFS=fstype
This parameter overrides the default root filesystem type built into the kernel from the ROOTFSTYPE tunable parameter. The root filesystem will be assumed to be of type fstype instead (ufs or vxfs, for example). If fstype is blank, all configured filesystem types will be tried until one succeeds in mounting the root filesystem (the default).

Parameters that define boot messages

The following parameters permit you to override default messages that are stored in /stand/bootmsgs. Of these parameters, only BOOTMSG1, BOOTMSG2, BOOTMSG3, and BOOTMSG4 are recognized by boot, but all are passed to the kernel.

AUTOMSG=string
Define this parameter to change the message issued when an automatic reboot is about to occur. The default message that this parameter, if defined, will override is "Automatic Boot Procedure."

BOOTMSG1=string
Define this parameter to change the default boot message to string. This parameter is recognized by boot.

BOOTMSG2=string
Define this parameter to change the default boot string, used to indicate the beginning of an interactive boot session. The standard setting for this message, as defined in /stand/bootmsgs is:
   Bootstrap Command Processor
   Ready for boot commands . . . [? for help]
This parameter is recognized by boot.

BOOTMSG3=text
Define this parameter to change the default string displayed at the beginning of the command line. The default string is [boot]. This parameter is recognized by boot.

BOOTMSG4=text
Define this parameter to change the default string displayed when boot is waiting to display more. The default string is [MORE]. This parameter is recognized by boot.

COPYRIGHT=string
Define this parameter to change the default copyright line(s) to string. This parameter can be defined multiple times, to accommodate copyright notices that are more than one line long.

DEVICENAMES=string
Define this parameter to list the devices attached to the SCSI bus. string is a comma-separated list of SCSI device names. It defaults to the following:
   HBA,DISK,TAPE,PRINTER,PROCESSOR,WORM,CDROM,SCANNER,\
   OPTICAL,CHANGER,COMMUNICATION

The order of devices in this list must be maintained. Only the first 13 characters of any device name are used.


REBOOTMSG=string
Define this parameter to change the message issued when a user requests a reboot. If defined, this parameter will override the default message, "Press any key to reboot...."

STARTUPMSG=string
Define this parameter to change the last message issued before user processes are started. The default message that this parameter, if defined, will override is The system is coming up. Please wait..

TITLE=string
Define this parameter to change the default product name to string. The string can contain ``%'' tokens that will be replaced by information available from the sysinfo(S) system call as shown in the following list:

%a
SI_ARCHITECTURE string

%i
SI_INITTAB_NAME string

%m
SI_MACHINE string (uname -m)

%n
SI_HOSTNAME string (uname -n)

%r
SI_RELEASE string (uname -r)

%s
SI_SYSNAME string (uname -s)

%v
SI_VERSION string (uname -v)

%%
a percent sign

For example, the following string might be used:

   UNIX System V Release %r Version %v for the %a Family

This parameter can be defined multiple times in /stand/bootmsgs, to accommodate product names that are more than one line long.


variable=value
All other lines of the form variable=value are passed to the kernel.

Files

   /stand/boot
   /stand/bootmsgs

References

boot(ADM), asyc(HW)
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 02 June 2005