mcconfig(F) 19 June 1992 mcconfig(F) Name mcconfig - Irwin tape driver parameters Description /etc/default/mcconfig contains information on Irwin tape driver parame- ters. mcconfig entries are in the following format: variable=parameterlist variable is a case insensitive character string that names a configura- tion parameter. parameterlist is a string of one or more parameter values, the format of which are dependent on the variable used. The following variables are defined: IROPT driver options IRDBG debugging aids SYSFDC system floppy controller parameters ALTFDC alternate controller parameters 4100 Irwin 4100 PC bus controller parameters 4100B second 4100 PC bus controller parameters IRDRV drive searching sequence (old method 2.00) IRSRCH drive searching sequence (new method 2.02) 4251 4151 address When configuring parameters, space and tab characters cannot be used. For example, irdrv=3 is correct, while irdrv = 3 is incorrect and will be ignored. Parameters are passed to the tape driver by the daemon program /etc/mcdaemon. Configuration parameters are given on separate lines. The number sign character (#) may be used to open a comment. Comments are terminated by a newline. For example, the mcconfig file might contain: # this is a comment in the mcconfig file iropt=F 4251=31f Whenever changes are made to the mcconfig file, you need to reboot the system for the changes to take effect. IROPT: configuration option string The tape driver configuration variable IROPT may be used override certain default or automatically determined configuration parameters. The values for IROPT are as follows: B/b: 64K DMA Boundary Present/Absent B This computer's hardware architecture has a 64K DMA memory bound- ary. Tape data transfer buffers may not cross a 64K physical boundary. This is the case for most PC and AT compatible ma- chines. b This computer's hardware architecture does not have a 64K DMA physical memory boundary. Tape data transfer buffers may be allocated anywhere in memory. This is true for PS/2s with the Micro Channel Architecture. When neither ``B'' nor ``b'' is set, configuration is based upon the result of Micro Channel presence determination (see the M/m option). In a Micro Channel machine, ``b'' is assumed, otherwise ``B'' is used. D/d: Use Demand/Single Byte DMA with Controllers Having a FIFO D When running in PC or AT class machine an controller which has a first-in-first-out (FIFO) buffer, use demand mode DMA transfers. Both the Intel 82072 and 82077 floppy controller chips (the latter is used in the 4100PC) have a 16 byte FIFO. d When running in a PC or AT class machine, use the standard single byte DMA transfer mode regardless of the floppy controller type. When neither ``D'' nor ``d'' is set, automatic configuration deter- mines whether a floppy controller chip with a FIFO is present on a per controller basis. When a controller having a FIFO is found (for exam- ple, Intel 82072/82077 parts return a positive response to the CONFIG- URE command), DMA transfers with respect to that controller are set up using the demand mode. Using demand mode decreases the portion of the bus bandwidth consumed by tape read/write transfers. F/f: Floating/Pulled-Up Drive Search F When searching for drives on the system controller, use a special ``floating track 0'' drive search. The ``floating'' drive search assumes the track 0 floppy interface line floats (can be high or low) when no drive is attached. This algorithm works in all ma- chines but cannot locate a drive which is executing a load-point operation. The floating search is required on certain Adaptec controllers. f When searching for drives on the system controller, use the stan- dard ``pulled-up track 0'' drive search. The standard algorithm assumes the floppy interface's track 0 line is pulled up (is high) when no tape drive is attached. When the standard search is employed on a controller which ``floats'' the track 0 line, a drive may be erroneously detected at a line where none is present. To deal with this condition either the IRDRV environment variable may be set to specify the drive line (preferred) or the ``floating track 0'' drive search ``F'' may be specified. When neither ``F'' nor ``f'' is set, automatic configuration of this option is performed by examining the model information returned from the BIOS ``Get Machine Configuration'' service (int 15, AH = C0). The following model uses the ``floating'' drive search: ___________________________________________________ Model Type Sub-type PS/2 Model ___________________________________________________ F8 0D 24 MHz Model 70 H/h: Do/Don't Test for 4100 PC Bus Controller Signature H Test for Irwin 4100 PC Bus controller (default). h No 4100 PC controller present. In the PC or AT (not Micro Channel) hardware environment (see the M/m option), when testing for the presence of a 4100 PC controller, the driver reads a byte from a signature port on the controller and com- pares this against the value 45 hexadecimal. The I/O port address of the signature port is found by adding six to the board's base port address (see the controller configuration section). For a 4100 PC Bus controller with switches set to ``as shipped from the factory'' posi- tions, the signature port address is 0370 (hexadecimal) + 6. If the byte compares, the 4100 PC is present: otherwise it is not. This option is intended to be used when peeking at the factory set (0376 hexadecimal) signature port causes the disruption of some other adapter which is present at this address. I/i: Do/Don't Wait-for-Index I Wait-for-index before data transfer of each tape block. i No need to wait-for-index before data transfer. When neither ``I'' nor ``i'' is set, wait-for-index is enabled by default only when an Olivetti Micro Channel machine is present: other- wise wait-for-index is disabled. If the following symptoms are experienced, after installing the MC driver in certain Micro Channel machines, the wait-for-index algorithm may need to be enabled: + On the first backup this message is seen: mc tape write error: Defect list has unrecoverable error + If tape format gives the error: Formatting failed: Block 0 medium error : phase: CERTIFICATION, track: 0, cylinder: 0 + Extremely poor performance is experienced while listing the content of or restoring a previously written tape. A condition exists in some Micro Channel computers which causes errors reading the first sector of each tape block. Included are the IBM models 50, 60, and 80, and the Olivetti P-500. These machines employ 72065 (except for the Olivetti which has a 765) floppy controllers and data separators with certain characteristics. The 72065 differs from other controllers in that it does not inhibit VCO SYNC when an INDEX signal is received. Characteristically, the data separator circuit will: 1) have a phase lock loop (PLL) which totally looses synchronization when confronted with a 50/50 duty cycle read data signal; and 2) be slow to re-synchronize while in the ``data following mode''. Most Irwin drives generate a read data signal with the 50/50 duty cycle when transiting servo headers. When these factors are combined, and a tape is read, the following sequence of events occurs during a tape read operation: a servo header crosses the head. The drive sends a 50/50 duty cycle 250 KHz signal on the read data line. The PLL looses sync (that is, the loop control voltage goes to a rail). The end of the servo header crosses the head and the drive gives an INDEX pulse. No corresponding VCO SYNC inhibit is generated by the 72065 (this would normally put the PLL back on track). Sector 1 crosses the head but the PLL is still too far off to read the sector. The 72065 generates a record-not- found error. Some Irwin drives are fitted with a data compensator board. This board has a circuit which alters the 50/50 duty cycle to a value which allows most of these controllers to maintain PLL synchronization. One exception is certain Model 80s. For Micro Channel systems which do not have the compensator (and cer- tain Model 80s which do), this problem can be circumvented by soft- ware. The technique relies on a feature of the 72065 (and other con- trollers in the 765 class): a VCO SYNC inhibit is generated just after the last byte of a READ command is sent to the controller. Inhibiting the VCO SYNC pin (which is normally telling the PLL to lock on incoming read data) causes the VCO's input to be switched to a reference. This results in quickly returning the PLL to a state in which it will be nearly synchronized with the "real" read data. VCO SYNC inhibition results from programming the floppy controller using a ``wait-for-index'' algorithm. The wait-for-index algorithm sends all but the last byte of the data transfer command to the 72065. It then waits for a logical high to low transition of the floppy INDEX signal. The wait is accomplished by polling a special I/O port (at address 03F0h) provided by the Micro Channel floppy controller. The wait is used to delay the writing of the last byte of the 72065 transfer command until after the INDEX transition. As a result, the 72065 generates an inhibit pulse on VCO SYNC after INDEX, but with sufficient lead time to allow the PLL to achieve synchronization. Thus, sector one's ID can be correctly read. As no index interrupt is available, wait-for-index polls to accomplish its task. The sought INDEX event is time critical. Under DOS, control for polling comes from either a task time startup thread, or the con- troller completion or timer tick interrupt. Under OS/2 and UNIX/XENIX a high priority daemon thread is awakened to poll for the index tran- sition. Using the wait-for-index algorithm has the following draw- back: all other system task time processing is stopped until index polling is complete. This means that the user will see sluggish sys- tem performance at certain times: typically, a 3 or 4 second dead pe- riod at tape track switch time. This may prove unacceptable in cer- tain installations. M/m: Micro-Channel-Architecture/PC-Bus M This computer has a Micro Channel Architecture bus. m This machine does not have a Micro Channel Architecture. When neither ``M'' nor ``m'' is set, automatic configuration deter- mines if Micro Channel Architecture hardware is present. The algorithm used depends upon the operating system and driver version. The M/m option is used for automatic configuration of the B/b, I/i, and P/p options. If the string ``EISA'' is found at physical memory location 0xfffd9, (BIOS ROM location F000:FFD9) this is not a Micro Channel Architec- ture. Otherwise, if all 8 bits of the I/O port at address 0x0080 (DMA page register 0 in an AT compatibles) can be modified this is an AT 286/386 compatible. Otherwise this is a Micro Channel Architecture. O/o: System Controller Does/Doesn't Support 1-Meg Transfers O The system controller supports one Megabit data transfers. o One Megabit transfers are not supported by the system controller. When neither ``O'' nor ``o'' is set, automatic configuration deter- mines whether the system controller supports 1-Megabit transfer rates. This is important when a 2120 is attached to the system controller. If the controller does not support 1- Megabit transfers, 500-Kilobit transfers are used for 80 and 120 MegaByte tapes. The driver detects the presence of the following 1-Megabit controllers: Intel 82072 and 82077. P/p: 4251 Is/Isn't Present P A 4251 board is present in the system and has its jumpers config- ured to address the 4251's digital output register (DOR) at 0372h. When present, the tape driver echoes commands sent to the system floppy controller's DOR (at I/O port address 03F2h) to the 4251's DOR. p No 4251 board present. When neither ``P'' nor ``p'' is set, and when running in a PC-bus (non-Micro Channel) machine (see the M/m option), automatic configura- tion determines the presence of a 4251 board by reading I/O port 0372h and comparing the input byte with the signature of the 4251. The 4251 signature byte is 42h. See also 4151=port. Q/q: Compaq Portable III Piggy Back Tape Unit Is/Isn't Present Q A Compaq Portable III piggy back tape unit is present. q No Compaq Portable III piggy back tape unit is present. When neither ``Q'' nor ``q'' is set, the algorithm used to test for presence of an alternate (Compaq Portable III piggy back) controller does the following: first the model byte is checked to see if the ma- chine is other than an 8086 class machine (that is, the model byte must be less than FE). If this test passes, the BIOS address F000:FFEA is checked for the string ``COMPAQ''. When a match is found, the I/O port at the 0374 (that is, the floppy controller chip status port) is read and the three low order bits are tested. If all three bits are zero, the alternate controller is present. When an alternate floppy controller is present, the following port addresses are used by default: ____________________________________________________________ 765 765 Base DOR Stat Data Clock ____________________________________________________________ 03F0 03F2 03F4 03F5 03F7 Primary FLOPPY controller 0370 0372 0374 0375 0377 Alternate TAPE controller See the Controller Parameter Configuration section for information on reconfiguration of the default base address. X/x: One Megabit Transfers Are/Aren't Allowed X Allow 1 Megabit transfers when conditions permit. x Never allow 1 Megabit transfers. By default, 1 Megabit transfers ``X'' are allowed. If 1 Megabit transfers overload the system bus, the ``x'' option should be config- ured. IRDBG: debugging options Several debugging flags are available: s Drive search debug When ``s'' is set, the result of the tape drive search (presence test) is shown. The following shows an example: 4100MC:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND 4100MCB:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND 4100:3=DRVNOTFND :2=tapedrive :1=DRVNOTFND :0=DRVNOTFND 4100B:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND ALTFDC:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND SYDFDC:3=DRVNOTFND :2=tapedrive :1=nottested The order of drive presence testing is shown left to right and top to bottom. On a given line, the left most field has a symbol which represents a controller. Numeric fields preceded by a colon (:) give the unit select in the range 0 through 3. Fields preceded by an equals sign (=) have a symbol which represents result of tape drive presence testing for the controller and unit. These fields normally have an uppercase symbol which represents a driver error code. Two special strings are used: ``tapedrive'' if a drive was found, or ``nottested'' if drive presence was not tested. i Initialization value debug When ``i'' is set, certain initialization values are displayed. The following is an example: hz=18 12_us_scaler=12 scaler_loops=27510 model=0x1FC is64kdma=1 demanddma_ok=1 isuchannel=0 port_4251=3F0 timers=[ 0 1 2 1 2 7 19 37 181 235 ] r Interrupt debug When ``r'' is set, a character is displayed for each interrupt pro- cessed by the driver's finite state machine. In addition, reset cycles are shown. The following lists the characters and their meanings: ____________________________________________________________ Character Meaning ____________________________________________________________ N Floppy controller (NEC) interrupt T Timer Interrupt R Reset sent to floppy controller (start of reset) r Reset complete x Data transfer debug When ``x'' is set, the status of a transfer request is displayed at interrupt time. The display is similar to that shown below: Cylinder | | DMA | Overruns | | Alternating Track| | Positional Asterisk | | | Retries | | | | | | | | | | Interrupt | | | | | Status | Sector Map +--+ +---+ +--+ +--+ +---------+ | +--------------------+ | | | | | | | | | | | | | T= 2 C= 42 O=12 R= 0 CRC *[-c-- --Cs ---- M-O- --] Track (T=decimal number) has the transfer request's track number. Cylinder (C=decimal number) has the transfer request's cylinder num- ber (tape block for the given track). DMA Overruns (O=decimal number) has a count of DMA overruns (exclud- ing, if indicated by in the Interrupt Status, the current DMAOVER- RUN). Positional Retry (R=decimal number) has the current positional retry number for the request. Note that a ``free'' retry is allowed under the following conditions: 1) A track switch was performed. 2) The tape is moving logically forward: this transfer request's target head, cylinder, and sector addresses match current values, but there is some positional uncertainty because this transfer request was not started on the completion thread of the previous request (That is, the period of time the tape has been moving between requests is not known). 3) A DMA overrun has occurred during the previous pass for a given read/write/verify request. Interrupt Error has the current reason for the interrupt displayed symbolically. Alternating Asterisk (*) This one character field is alternately set with an asterisk (*) and a space `` '' character so that screen updates may be distinguished. Sector Map ([-c-- --Cs ---- M-O- --]) gives a visual indication of the status of each sector when an error occurs. Each printing char- acter in the sector map represents the status of a sector. Before the start of a transfer, each entry is set to ``s''. On successful transfer of a sector, the corresponding entry is set to a hyphen(-). The following is a list of characters which appear in the sector map and their meanings: _________________________________________________________ Character Interrupt Error Number Symbol Description _________________________________________________________ - 0 IENOERR No error C 12 IECRC Data CRC error c 13 IEIDCRC ID CRC error s 14 IERECNOTFND Record not found M 16 IEDATAMARK No data address mark O 17 IEDMAOVERRUN DMA overrun ? other unexpected Unexpected value IRDRV, IRSRCH: drive search control IRDRV drive searching sequence (old method) IRSRCH drive searching sequence (new method) The tape driver uses a default drive searching sequence to test for the presence of tape drives. The default sequence may be replaced with a user configured sequence using either the IRDRV or IRSRCH variables. This is useful in situations where tape drives are erroneously detected by the default sequence, or where multiple tape drives are supported and a different mapping of logical to physical drives is desired. For exam- ple, IRSRCH=SYSFDC:3,4100:2 says search for tape drives at unit select 3 on the system floppy con- troller, and unit select 2 on an Irwin 4100 PC bus controller. The equivalent IRDRV specification is: IRDRV=04,43 or alternately: IRDRV=4,43 IRDRV specifications use a 2-digit number to specify a controller and unit select. The high-order digit gives the controller, and the low- order digit the unit select. If the high-order digit is missing, 0 (for the system floppy controller) is assumed. Note that the unit select used by IRDRV is in the range 1-4 while the unit select used by IRSRCH is in the range 0-3. The following is a list of controllers supported by IRSRCH and IRDRV: _________________________________________________________________________ IRSRCH, IRDRV Name High Digit Controller _________________________________________________________________________ SYSFDC 0 System floppy (2.00) ALTFDC 1 Alternate floppy (2.00) 4100MC 2 Irwin 4100 Micro Channel (2.01) 4100MCB 3 Second 4100 Micro Channel (2.01) 4100 4 Irwin 4100 PC Bus (2.01) 4100B 5 Second 4100 PC Bus (2.02) The syntax of an IRSRCH drive search sequence specification is: IRSRCH = searchlist searchlist = searchspec searchspec,searchlist searchspec = controller:unitlist controller = SYSFDC (System floppy controller) ALTFDC (Alternate controller) 4100MC (Irwin 4100 Micro Channel tape controller) 4100MCB (Second 4100 Micro Channel controller) 4100 (Irwin 4100 PC Bus tape controller) 4100B (Second 4100 PC Bus controller) unitlist = unit unit:unitlist unit = 0, 1, 2, 3 The syntax of an IRDRV drive search sequence specification is: IRDRV = searchlist searchlist = searchspec searchspec,searchlist searchspec = controllerdigit:unitdigit controllerdigit = 0 (System floppy controller, may be omitted) 1 (Alternate controller) 2 (Irwin 4100 Micro Channel tape controller) 3 (Second 4100 Micro Channel controller) 4 (Irwin 4100 PC Bus tape controller) 5 (Second 4100 PC Bus controller) unitlist = unit unit:unitlist unitdigit = 0, 1, 2, 3 SYSFDC, ALTFDC, 4100, 4100B: controller parameter configuration Certain variables may be set to specify tape controller specific parame- ters. For example: 4100=P:370,I:6,D:2,T:2,T:0 says an Irwin 4100 PC bus controller is installed and configured with a base I/O Port address (P) 0370 hexadecimal, using IRQ (I) 6, DMA channel (D) 2, and has two tape units (T), one wired for physical unit select number 2, and the other 0. The general form for controller parameter specifications is: controller = paramlist paramlist = parameter parameter,paramlist parameter = name:value controller = SYSFDC (System floppy controller) ALTFDC (Alternate controller) 4100 (Irwin 4100 PC Bus controller) 4100B (Second 4100 PC Bus controller) name = P (Base I/O Port address) I (Interrupt Request line (IRQ)) D (DMA channel) T (Tape unit number [0-3]) value = [0123456789abcefABCDEF]+ (Hexadecimal number) 4100 PC configuration switch settings The following tables contain the 4100 switch settings. _________________________________________________________________________ Base Address SW1 SW2 SW3 SW4 _________________________________________________________________________ 300 ON ON ON ON 310 off ON ON ON 320 ON off ON ON 330 off off ON ON 340 ON ON off ON 350 off ON off ON 360 ON off off ON * 370 off off off ON 380 ON ON ON off 390 off ON ON off 3a0 ON off ON off 3b0 off off ON off 3c0 ON ON off off 3d0 off ON off off 3e0 ON off off off 3f0 off off off off _________________________________________________________________________ DMA Channel SW5 SW6 SW7 SW8 _________________________________________________________________________ 1 ON off ON off * 2 off ON off ON _________________________________________________________________________ IRQ SW9 SW10 _________________________________________________________________________ 3 ON off * 6 off ON * factory setting 4251: floppy extender address configuration The Irwin 4251 adapter board augments the system floppy controller. It extends the total number of drives which may be attached from 2 to 4, and allows for the attachment of an external drive. The 4251 uses a single drive select I/O port. By design, the 4251 I/O port partially mimics the functionality of the system floppy controller's drive select port. The system controller's drive select port is called the Digital Output Regis- ter (DOR). When written with certain values, both the system control- ler's DOR and the 4251's drive select port activates a drive select line at the floppy interface. In the standard ``as shipped from the factory'' configuration, the 4251's port is addressed at 03F2 hexadecimal. The same address is used by system floppy controller's DOR. Thus, in the standard configuration, the 4251 monitors (that is, listens to and uses) bytes written to the system's DOR to select a drive. The 4251 uses unit selects 2 and 3. Unit selects are used by the software and should not be confused with the DRIVE SELECT jumpers on the tape drive which are almost always set to DRIVE SELECT 2. In certain hardware environments, the standard 4251 configuration either does not detect the presence of or fails to write tapes in a tape drive. When a 4251 is configured for the standard address and is connected to: + a DTC controller, data is never written to tape. The reason: DTC con- trollers disable the floppy interface WRITE GATE signal when unit selects 2 or 3 (the third and fourth) selects are activated. This means the tape drive's write circuitry is never enabled. + an Adaptec suffix ``B'' controller (for example, ACB-2xxxB or 1542B SCSI controllers), driver software never detects the presence of a tape drive. The reason: Adaptec suffix ``B'' controllers drive the TRACK 0 line active for unit selects 2 or 3. The TRACK 0 line is the line used by the drive to return the results of status requests and motion commands issued by the driver software. The conditions listed in the above three paragraphs can be overcome. Typically, reconfiguring the 4251 to use the recommended alternate address by installing the A7 jumper allows the tape drive to function correctly. When this is done, the 4251's I/O address moves from 3F2 to 372 hexadecimal. When configuring the address of the Irwin 4251, the board address jumpers are changed from the "as shipped" A0, A2, A3 position. Normally, the change involves reinstalling a jumper stored on one pin of the A7 pin pair to connect the "A7" pin pair. This selects the address 372. How- ever, when a secondary floppy controller (such as the Irwin 4100) or other adapter is present, the 372 address may be in conflict. In gen- eral, a secondary floppy controller uses addresses in the range 370 through 377, which includes the alternate "372" address of the 4251. To resolve this conflict, the 4251 can be re-addressed. In addition, the tape driver software must be informed of the new address. The following information is given to aid in understanding of the rela- tionship of the 4251 and tape driver software, the meaning of the 4251 jumpers A0 through A9, and an example of a non-standard configuration. At initialization, the tape driver software tests for the presence of a 4251 at an alternate address. By default, the alternate address is 372 hexadecimal. (To select the 372 address on the 4251 install jumpers across the A0, A2, A3, and A7 pin pairs.) The test reads a byte from the alternate address and compares the byte with the signature. When the 4251's select port is read, a signature byte (42 hexadecimal) is returned. If the signature compares, the driver sends select bytes to both the system's DOR and the 4251's port. The default alternate address may overridden by using the variable named "4251". For example, 4251=31f tells the driver to test and use, if present, the port at 030F hexade- cimal. The 4251's port uses a single 10-bit I/O port address. The address is set using the jumper pin pairs labeled A0 through A9. Each jumper pin pair corresponds directly with an I/O port address bit. When a jumper pin pair is connected, the corresponding address bit is set to a logical 0. When the pin pair is disconnected, the address bit is set to a logical 1. For example, to address the 4251 at 31F (an address which is unlikely to conflict with standard adapters), connect jumper pin pairs A5, A6, and A7. See also tape(C), tape(HW)