Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mvme328(7) — Motorola System V 88k Release 4 Version 4.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mt(1)

ddefs(1M)

dinit(1M)

close(2)

ioctl(2)

open(2)

read(2)

write(2)

edt_data(4)

cdrom(7)

disk(7)

floppy(7)

intro(7)

tape(7)

passthru(7)

mvme328(7)  —  SPECIAL FILES AND DEVICES

NAME

mvme328 − MVME328 SCSI Host Adapter

DESCRIPTION

The MVME328 driver controls up to a total of 8 MVME328 SCSI host adapters.  Each MVME328 SCSI host adapter can have one or two SCSI buses.  Each SCSI-1 or SCSI-2 (fast) bus supports up to seven SCSI devices while a SCSI-2 (fast/wide) bus supports up to fifteen SCSI devices. 

Assuming the necessary system resources are available, the MVME328 driver will send each command to the controller as soon as it receives the command from an application. 

The MVME328 driver does not have to wait for a command to complete before sending a command for another device. 

SUPPORT DEVICES

Disk Drives

Disk drives currently supported are:

DESCRIPTION ddefs(1M) FILE TYPE
150MB CDC 94161 Wren III mcdcIII Hard
300MB CDC 94171 Wren IV mcdcIV Hard
600MB CDC 94181 Wren V mcdcV Hard
1.2GB CDC 94601 Wren VII mcdcVII Hard
135MB FUJITSU M2613 mfuj2613 Hard
180MB FUJITSU M2614 mfuj2614 Hard
330MB FUJITSU M2622 mfuj2622 Hard
525MB FUJITSU M2624 mfuj2624 Hard
1.0GB SEAGATE ST11200 msea11200 Hard
2.0GB SEAGATE ST12400 msea12400 Hard
Toshiba XM3201B CDROM none CDROM
Toshiba XM3301B CDROM none CDROM
1.2MB TEAC 5¼ inch FC−1 see next table Floppy
2.88MB TEAC 3½ inch FC−1 see next table Floppy

Note that in all tables, each entry in the ddefs(1M) FILE column is the name of a file that defines the characteristics of the disk in the /etc/dskdefs directory.  Each entry in the BLOCKS column is the number of specified blocks when making a file system with mkfs(1M). 

The types of floppy diskettes currently supported are listed in the following two tables. 

5¼ INCH DISKETTES
ddefs(1M) MEDIA
DESCRIPTION FILE BLOCKS TYPE SLICE
Double density Motorola format mdsdd5 1276 MFD-2DD 0
Single density PC/XT 8 sect./track mpcxt8 640 MFD-2DD 12
Single density PC/XT 9 sect./track mpcxt9 720 MFD-2DD 9
Double density PC/AT mpcat 2400 MF2-HD 8
3½ INCH DISKETTES
ddefs(1M) MEDIA
DESCRIPTION FILE BLOCKS TYPE SLICE
Double density PC/XT 9 sect./track mpcxt9_3 1440 MFD-2DD 13
Double density PS/2 mps2 2880 MF2-HD 10
Super High Density (2.88MB formatted) mshd 5760 PMF2-ED 11

Tape Drives

Tape drives currently supported by the MVME328 host adapter are:

DESCRIPTION FORMAT TYPE
Archive 2150S QIC24, QIC120, QIC150 Streaming
Archive 2525 QIC24, QIC120, QIC150 Streaming
Archive Python DAT Streaming
Exabyte EXB-8200 8mm Streaming
Kennedy 9660 9-track Start/Stop
M4 Data 9914 9-track Start/Stop

MINOR NUMBERS

The MVME328 device driver interprets the minor number of a device using the standard SCSI-1 minor mapping. 

DISK SUPPORT

During system initialization, the MVME328 device driver will spin-up any disks that are strapped to spin-up. 

The hard disk drives supported by the MVME328 handle all defects internally.  A list of known defective locations is recorded on the medium.  During format, any data that would normally be loaded into these locations are automatically assigned alternate locations.  Also during format, the drive is checked for defects in addition to those on the known list.  If any additional defective locations are found, any data that would be stored there are assigned alternate locations. 

The MVME328 device driver complies with the disk support standard specified on the disk(7) man page with the following exceptions:

DKGETCFG ioctl command
The MVME328 driver returns only the parameters that are relevant to the MVME328 driver and controller.

DKGETINFO ioctl command
The MVME328 driver returns only the parameters that are relevant to the MVME328 driver and controller.

DKSETCFG ioctl command
The MVME328 driver sets only the parameters that are relevant to the MVME328 driver and controller.

DKSETINFO ioctl command
The MVME328 driver sets only the parameters that are relevant to the MVME328 driver and controller.

DKFORMAT ioctl command
The SCSI FORMAT command is used to format the device. The argument arg is not used.  Because the bad block strategy is perfect, no defect list is passed to the drive.  By turning on a bit in the controller attribute word of the disk definition file passed to dinit, the drive can be told to ignore the grown defect list on the disk.  Refer to the description of the controller attribute word on the disk(7) man page for more information. 

TAPE SUPPORT

The MVME328 device driver complies with the tape support standard specified on the tape(7) man page with no exceptions. 

FLOPPY DISK SUPPORT

The MVME328 supported floppy drives provide level one support as defined by the 88open PC Floppy Emulation Supplement to the Binary Compatibility Standard. 

The MVME328 device driver complies with the floppy disk support standard specified on the floppy(7) manual page with the following exceptions:

DKFIXBADSPOT ioctl command
This command always returns EINVAL. 

DKGETCFG ioctl command
The MVME328 driver returns only the parameters that are relevant to the MVME328 driver and controller.

DKGETINFO ioctl command
The MVME328 driver returns only the parameters that are relevant to the MVME328 driver and controller.

DKSETCFG ioctl command
This command performs no operation; it returns with no effect and no error.

DKSETINFO ioctl command
This command performs no operation; it returns with no effect and no error.

DKSETSLC ioctl command
This command performs no operation; it returns with no effect and no error.

FL_PC_LEVEL ioctl command
The MVME328 driver currently only supports level 1, so the integer pointed to by arg is always set to 1 by this call. 

Slicing
Floppy diskettes do not have volume ID blocks or Volume Table of Contents (VTOC). A floppy drive can be thought of as a hard disk with a single slice. The slice bits of the minor number select the drive geometry as described later in this manual page. 

V_PDREAD ioctl command
This command always returns EINVAL. 

V_PDWRITE ioctl command
This command always returns EINVAL. 

V_RVTOC ioctl command
This command always returns EINVAL. 

V_WVTOC ioctl command
This command always returns EINVAL. 

dinit/ddef
The ddef files for floppy disks are treated as placeholders.  Although they are required for dinit(1M) to work, the information is not used.  The format of the diskette is determined via the slice number of the device.  Please refer to the supported floppy tables at the beginning of this man page for more information. 

Bad blocks may not be mapped out on a floppy disk.  A bad block on a floppy disk make the entire floppy unacceptable. 

CDROM SUPPORT

The MVME328 device driver will not spin-up CDROM devices at system initialization time.  The MVME328 device driver complies with the CDROM support standard specified on the cdrom(7) manual page with the following exceptions:

DKGETCFG ioctl command
The MVME328 driver returns only the parameters that are relevant to the MVME328 driver and controller.

DKGETINFO ioctl command
The MVME328 driver returns only the parameters that are relevant to the MVME328 driver and controller.

DKGETCFG ioctl command
The MVME328 driver returns only the parameters that are relevant to the MVME328 driver and controller.

PASSTHRU SUPPORT

The MVME328 device driver complies with the passthru support standard specified on the passthru(7) man page with no exceptions. 

ERROR MESSAGES

The MVME328 driver will print the following messages on the system console if an error occurs during system initialization:

mvme328: ctlr %d: board OK not found
There may be a problem with the MVME328, its firmware, cabling, or a device attached to the specified controller. Devices attached to the specified controller will be inaccessible.

mvme328: ctlr %d: failed powerup diagnostics MSR=0x%x
There may be a problem with the MVME328, its firmware, cabling, or a device attached to the specified controller. Devices attached to the specified controller will be inaccessible.

mvme328: ctlr %d: CRBV bit not found, CRSW = 0x%x
There may be a problem with the MVME328, its firmware, cabling, or a device attached to the specified controller. Devices attached to the specified controller may be inaccessible.

mvme328: ctlr %d: CRSW = 0x%x, mask = 0x%x
There may be a problem with the MVME328, its firmware, cabling, or a device attached to the specified controller. Devices attached to the specified controller may be inaccessible.

mvme328: ctlr %d: initialization failed
There may be a problem with the MVME328, its firmware, cabling, or a device attached to the specified controller. Devices attached to the specified controller will be inaccessible.

mvme328: ctlr %d: unknown variation/firmware
The specified MVME328 is unknown or contains firmware not recognized by the device driver. Devices attached to the specified controller will be inaccessible.

mvme328: ctlr %d: no timeouts available
The specified MVME328 is using firmware that disables the device drivers ability to monitor each device and detect hung devices or commands. The device attached to the specified controller will be accessible but the above feature will not be used.

mvme328: initialize work queue failed on %s
There may be a problem with the MVME328, its firmware, cabling, or a device attached to the specified controller. The specified device will not be accessible.

mvme328: can’t allocate work area
The driver’s attempt to dynamically allocate the memory required for its internal data structures failed. All MVME328 devices will be inaccessible.

mvme328: ctlr %d: mapping failed
The specified MVME328 could not be mapped into the kernel. Devices attached to the specified controller will be inaccessible.

mvme328: ctlr %d: queue mode start failed
There may be a problem with the MVME328, its firmware, cabling, or a device attached to the specified controller. Devices attached to the specified controller will be inaccessible.

The MVME328 driver will occasionally print error or warning messages about problems or conditions it detects during normal operations. 

mvme328: Non-Motorola VID on device-name (disk)
The specified disk does not contain a Motorola Volume ID.

mvme328: Non-Motorola VID on device-name (CDROM)
The specified CDROM does not contain a Motorola Volume ID.

mvme328: Invalid VID on device-name (disk)
The specified disk does not contain the correct VID signature.

mvme328: Invalid VID on device-name (CDROM)
The specified CDROM does not contain the correct VID signature.

mvme328: Invalid VTOC on device-name (disk)
The specified disk does not contain a valid Volume Table of Contents.

mvme328: Invalid VTOC on device-name (CDROM)
The specified CDROM does not contain a valid Volume Table of Contents.

mvme328: Attempting spin up on device-name
This message occurs during system initialization. The specified disk device is strapped for spin up using software commands. The MVME328 driver is attempting to spin up the drive.

mvme328: Device not ready on device-name
This message occurs during system initialization. The specified disk could not be brought on-line.

mvme328: Device write protected on device-name (tape)
The specified tape contains write protected media.

mvme328: Device not ready on device-name (tape)
The specified tape is either off-line or does not contain media.

mvme328: Error from r4dbufopen on device-name (tape)
The specified tape failed to initialize its double buffering information correctly.

Additionally, the MVME328 device driver may report problems via the standard error logging mechanism.  These messages will clearly indicate the device name, attempted command name, and the final status of the command.  If the problem occurs on a disk device (e.g. disk, floppy, or CDROM) the block number of the disk that the error occurred on will also be reported. 

Two possible outcomes are common: FATAL ERROR and RECOVERED ERROR. 

Fatal error status means that the drive was not able to complete the command successfully. 

Recovered error status means that the drive was able to complete the command successfully after some recovery action. 

MASTER.D PARAMETERS

The following parameters affect the operation of the MVME328 device driver.  The following are parameters listed under the MVME328 description:

m328_max_spl
This parameter sets the maximum number of concurrent special commands. The default value is 8. Special commands are all SCSI commands except reads or writes (e.g. tape rewinds and disk formats). Most ioctl() commands are special commands, and special commands are used during open() and close() processing.  If this number is too low, some processes will sleep waiting for resources when doing special commands. 

m328_max_rbufs
This parameter specifies the number of 64K byte buffers that will be allocated if any MVME328 host adapters have revision XAM firmware. The default number is 1. These buffers are used to work around a problem in the firmware that affect raw I/O. Tuning this parameter higher when XAM firmware is present will result in improved raw I/O performance, however, the tuning is no replacement for obtaining a firmware upgrade.

m328_max_sglists
This parameter specifies the number of special scatter/gather lists that are available for use within the driver. It should be set to at least the number of processors plus 2; the default number is 8.

m328_vme_to
This parameter specifies the VMEBUS transfer time out in 32 millisecond ticks.

m328_vme_cnt
This parameter specifies the VMEBUS burst transfer count. On systems with a large number of disks and/or MVME328 host adapters this number may have to be lowered to avoid DMA problems.

m328_timeout_enable
This parameter enables or disables an activity  watchdog timer. If this value is zero, no watchdog timer will be started. If this value is not zero, a watchdog timer will be started and the value specifies the period (in seconds) of the timeout checking.

m328_scsi_bus_reset_delay
This parameter specifies the number of seconds to wait after a SCSI bus reset is issued before a bus will have any commands issued to it. The minimum value is 2 seconds, and the SCSI-2 specification specifies that all devices should be available within 10 seconds after a reset.

m328_noisy_disk_open
This parameter controls the printing of error messages on the console when disk devices do not have valid Motorola identification in them. If this parameter is non-zero, messages will be printed; zero, no messages will be printed.

SPECIAL CONSIDERATIONS

When an error occurs while writing or reading a tape, the best course of action in this case is to rewind the tape and repeat the operation. 

Removing a cartridge tape during an MTBSF operation hangs the tape drive. 

An incorrect transfer count may be returned by the MVME328 device driver when using variable mode tape devices (e.g. 9-tracks, EXABYTE) in variable mode.  This is due to a BUG in the XAM firmware and it is not found in any later firmware. 

The problem shows itself when an odd length read is used to read a tape that contains even length records. The returned transfer count will be one less than it should be.  The work-around is to read tapes with even length reads equal to or larger than the maximum size of the records found on the tape. 

The longest I/O operation which MVME328 host adapters can allow to occur on a tape device operating in variable mode depends on two factors.  If the MVME328 host adapter is using revision XAM firmware, the maximum length is 65535 bytes.  For all other boards and firmware combinations, the maximum length will vary from a minimum of 252K bytes (worst case page alignment) to 256K bytes (page aligned).  The actual maximum length may be either larger or smaller than the MVME328 host adapter may support.  Refer to the device’s documentation for more information. 

LUN SUPPORT

The MVME328 device driver supports SCSI Logical Unit Numbers (LUN).  Up to 8 LUNs per device may be configured on a per SCSI bus basis.  By default, the driver will only recognize LUN 0. To enable the driver to support additional LUNs, determine which controllers and SCSI bus have devices which require additional LUNs. Then add an aux-info directive (see edt_data(4) for more information) to the driver directives in the /stand/edt_data for the affected controllers.  Finally, set the first and/or second words of the aux-info directive to the number of LUNs required by the first and second SCSI buses respectively. 

WARNING

When an ARCHIVE 2150 or 2525 tape device is opened for the first time and a tape is present in the drive, the tape will be rewound.  This occurs because this is the only way to insure that drive has its parameters set properly. 

FILES

/dev/dsk/m328_∗
/dev/rdsk/m328_∗
/dev/rmt/m328_∗
/dev/generic/m328_∗
/etc/dskdefs/m∗
/usr/include/sys/dk.h
/usr/include/sys/mtio.h
/usr/include/sys/m328scsi.h
/usr/include/sys/m328sio.h
/usr/include/sys/m328space.h
/usr/include/sys/mvme328.h
/usr/include/sys/pcflio.h

SEE ALSO

mt(1), ddefs(1M), dinit(1M), close(2), ioctl(2), open(2), read(2), write(2), edt_data(4), cdrom(7), disk(7), floppy(7), intro(7), tape(7), passthru(7)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026