Boot Arguments for SCSI Peripherals.

# 4. Boot Arguments for SCSI Peripherals.

Contents of this section

This section contains the descriptions of the boot args that are used for passing information about the installed SCSI host adapters, and SCSI devices.

General notation for this section:

`iobase` -- the first I/O port that the SCSI host occupies. These are specified in hexidecimal notation, and usually lie in the range from `0x200` to `0x3ff`.

`irq` -- the hardware interrupt that the card is configured to use. Valid values will be dependant on the card in question, but will usually be 5, 7, 9, 10, 11, 12, and 15. The other values are usually used for common preipherals like IDE hard disks, floppies, serial ports, etc.

`scsi-id` -- the ID that the host adapter uses to identify itself on the SCSI bus. Only some host adapters allow you to change this value, as most have it permanently specified internally. The usual default value is seven, but the Seagate and Future Domain TMC-950 boards use six.

`parity` -- whether the SCSI host adapter expects the attached devices to supply a parity value with all information exchanges. Specifying a one indicates parity checking is enabled, and a zero disables parity checking. Again, not all adapters will support selection of parity behaviour as a boot argument.

## 4.1 Maximum Probed LUNs (`max_scsi_luns=')

Each SCSI device can have a number of `sub-devices' contained within itself. The most common example is one of the new SCSI CD-ROMs that handle more than one disk at a time. Each CD is addressed as a `Logical Unit Number' (LUN) of that particular device. But most devices, such as hard disks, tape drives and such are only one device, and will be assigned to LUN zero.

The problem arises with single LUN devices with bad firmware. Some poorly designed SCSI devices (old and unfortunately new) can not handle being probed for LUNs not equal to zero. They will respond by locking up, and possibly taking the whole SCSI bus down with them.

Newer kernels have the configuration option that allows you to set the maximum number of probed LUNs. The default is to only probe LUN zero, to avoid the problem described above.

To specify the number of probed LUNs at boot, one enters `max_scsi_luns=n' as a boot arg, where n is a number between one and eight. To avoid problems as described above, one would use n=1 to avoid upsetting such broken devices

## 4.2 Parameters for SCSI Tape drives (`st=')

Some boot time configuration of the SCSI tape driver can be achieved by using the following:

            st=buf_size[,write_threshold[,max_bufs]]

The fisrt two numbers are specified in units of kB. The default `buf_size` is 32kB, and the maximum size that can be specified is a ridiculous 16384kB. The `write_threshold` is the value at which the buffer is committed to tape, with a default value of 30kB. The maximum number of buffers varies with the number of drives detected, and has a default of two. An example usage would be:

            st=32,30,2

Full details can be found in the `README.st` file that is in the `scsi` directory of the kernel source tree.

## 4.3 Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI (`aha152x=')

The aha numbers refer to cards and the aic numbers refer to the actual SCSI chip on these type of cards, including the Soundblaster-16 SCSI.

The probe code for these SCSI hosts looks for an installed BIOS, and if none is present, the probe will not find your card. Then you will have to use a boot arg of the form:

             aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]

Note that if the driver was compiled with debugging enabled, a sixth value can be specified to set the debug level.

All the parameters are as described at the top of this section, and the `reconnect` value will allow device disconnect/reconnect if a non-zero value is used. An example usage is as follows:

            aha152x=0x340,11,7,1

Note that the parameters must be specified in order, meaning that if you want to specify a parity setting, then you will have to specify an iobase, irq, scsi-id and reconnect value as well.

## 4.4 Adaptec aha154x (`aha1542=')

These are the aha154x series cards. The aha1542 series cards have an i82077 floppy controller onboard, while the aha1540 series cards do not. These are busmastering cards, and have parameters to set the ``fairness'' that is used to share the bus with other devices. The boot arg looks like the following.

            aha1542=iobase[,buson,busoff[,dmaspeed]]

Valid `iobase` values are usually one of: `0x130, 0x134, 0x230, 0x234, 0x330, 0x334`. Clone cards may permit other values.

The `buson, busoff` values refer to the number of microseconds that the card dominates the ISA bus. The defaults are 11us on, and 4us off, so that other cards (such as an ISA LANCE Ethernet card) have a chance to get access to the ISA bus.

The `dmaspeed` value refers to the rate (in MB/s) at which the DMA (Direct Memory Access) transfers proceed at. The default is 5MB/s. Newer revision cards allow you to select this value as part of the soft-configuration, older cards use jumpers. You can use values up to 10MB/s assuming that your motherboard is capable of handling it. Experiment with caution if using values over 5MB/s.

## 4.5 Adaptec aha274x, aha284x, aic7xxx (`aic7xxx=')

These boards can accept an argument of the form:

            aic7xxx=extended,no_reset

The `extended` value, if non-zero, indicates that extended translation for large disks is enabled. The `no_reset` value, if non-zero, tells the driver not to reset the SCSI bus when setting up the host adaptor at boot.

## 4.6 BusLogic SCSI Hosts (`buslogic=')

At present, the buslogic driver accepts only one parameter, that being the I/O base. It expects that to be one of the following valid values: `0x130, 0x134, 0x230, 0x234, 0x330, 0x334`.

## 4.7 Future Domain TMC-8xx, TMC-950 (`tmc8xx=')

The probe code for these SCSI hosts looks for an installed BIOS, and if none is present, the probe will not find your card. Or, if the signature string of your BIOS is not recognised then it will also not be found. In either case, you will then have to use a boot arg of the form:

            tmc8xx=mem_base,irq

The `mem_base` value is the value of the memory mapped I/O region that the card uses. This will usually be one of the following values: `0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000`.

## 4.8 Pro Audio Spectrum (`pas16=')

The PAS16 uses a NC5380 SCSI chip, and newer models support jumper-less configuration. The boot arg is of the form:

            pas16=iobase,irq

The only difference is that you can specify an IRQ value of 255, which will tell the driver to work without using interrupts, albeit at a performance loss. The `iobase` is usually `0x388`.

## 4.9 Seagate ST-0x (`st0x=')

The probe code for these SCSI hosts looks for an installed BIOS, and if none is present, the probe will not find your card. Or, if the signature string of your BIOS is not recognised then it will also not be found. In either case, you will then have to use a boot arg of the form:

            st0x=mem_base,irq

The `mem_base` value is the value of the memory mapped I/O region that the card uses. This will usually be one of the following values: `0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000`.

## 4.10 Trantor T128 (`t128=')

These cards are also based on the NCR5380 chip, and accept the following options:

            t128=mem_base,irq

The valid values for `mem_base` are as follows: `0xcc000, 0xc8000, 0xdc000, 0xd8000`.

## 4.11 Cards that don't Accept Boot Args

At present, the following SCSI cards do not make use of any boot-time parameters. In some cases, you can hard-wire values by directly editing the driver itself, if required.

Always IN2000, Adaptec aha1740, EATA-DMA, EATA-PIO, Future Domain 16xx, NCR5380 (generic), NCR53c7xx to NCR53c8xx, Qlogic, Ultrastor (incl. u?4f), Western Digital wd7000,

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter