Tyan 32-bit PCI IDE Bus Master Miniport Driver for NT 3.51 Version 3.10 Copyright (C) 1995-1997 Table of Contents: A..........Features B..........Driver Requirements C..........Installation Procedures D..........Removing the Driver E..........Bus Master Knowledge Background F..........Frequently Asked Questions G..........Devices Tested H..........Tips On Performance +----------+ | Features | +----------+ This miniport driver has the following features. 1. It's a 32-bit miniport driver for Windows NT 3.51 2. It supports Ultra DMA mode 2, 1, and 0 ie. ultra DMA bus mastering. 3. It supports Multiword DMA mode 1 and mode 2 i.e. Bus Mastering. 4. It supports PIO mode 0, 1, 2, 3, and 4. 5. It supports IDE hard disk as well as ATAPI IDE CD-ROM in protected mode. 6. It uses synchronize transfer method. 7. It supports CHS and LBA paramters. This bus master driver does not support the followings. 1. It does not support any Disk Manager software. Because the Titan series support LBA parameters for the hard disk. You should ALWAYS use LBA parameters if the hard disk is larger than 528MB and never use the Disk Manager. 2. It does not support AT type of CD-ROM, only ATAPI CD-ROM. 3. It does not support single word DMA transfer because many PIO mode 2 hard disks have firmware bugs. 4. It does not support multiword DMA mode 0 beacuse it's too slow compare to PIO mode. These are the resources that the bus master driver uses under Windows NT. Setup will copy tynbmide.sys driver to \winnt35\system32\drivers directory. I/O Addresses: Primary IDE channel : 1F0 - 1F7, 3F6 - 3F6 Secondary IDE channel : 170 - 177, 376 - 376 IRAQ or Interrupt: Primary IDE channel : 14 Secondary IDe channel : 15 Base Memory Addresses: Award BIOS: Primary IDE channel : 3000 - 3007 or 9000 - 9007 Secondary IDE channel : 3008 - 300F or 9008 - 900F AMI BIOS: Primary IDE channel : 8000 - 8007 or FFA0 - FFA7 Secondary IDE channel : 8008 - 800F or FFA8 - FFAF For more detail information, please read the Bus Master Knowledge Background. +----------------------+ | Driver Requirements | +----------------------+ Before installing the driver, there are some issues that we need to address. We've noticed many old hard disks have timing problem or firmware bugs. These hard disks do not implement the bus master protocol correctly. So we've decided to make some requirements for the hard disks to eliminate unnecessary problems associate with firmware bugs. If these requirements are not met, then the driver will do the PIO transfer instead of bus master transfer. 1. The hard disk must support Multiword DMA transfer mode 1 or mode 2. Single word DMA will not be supported at this time due to many hard disks' firmware problems. Basically, if your hard disk supports PIO mode 3 then it should also support multiword DMA mode 1. And PIO mode 4 should support multiword DMA mode 2. 2. The hard disk must use LBA parameters if the total number of cylinder of the hard disk is greater than 1024 or your hard disk is larger than 528MB. 3. Please use the normal CHS parameters instead of LBA parameters if the number of cylinder of the hard disk is less than 1024 or the size of the hard disk is less than 528Mb. Even if the drive supports LBA. +-------------------------+ | Installation Procedures | +-------------------------+ 0. Perform a DMA timing test before installing the driver. Only do this test under DOS and Do not perform the test under Windows environment. If your hard disk return a number 04 then your hard disk can not do bus mastering. In that case, do not install this driver. Type DEBUG at the DOS prompt. Then enter the following to test your hard disk's DMA protocol timing. To test the primary IDE channel, enter the following. Press Enter before the --- mark. The first character of each line is O as in output not zero. O 1F6 A0 --- A-Zero is for master drive, use B0 for the slave drive O 1F2 21 --- 22 is for DMA mode 2 (PIO mode 4), use 21 for DMA mode 1 (PIO mode 3) --- 42 for ultra DMA mode 2, 41 for ultra dma mode 1, and 40 for ultra DMA mode 0 O 1F1 03 --- Zero-3 is to program the hard disk timing O 1F7 EF --- EF is the set feature command for the hard disk I 1F1 --- this reads in the error status If you get a number of 00 after I 1f1, then your hard disk accepts the multiword DMA protocol timing that you've programmed in the O 1f2 statement. If you get a number of 04, then it means the hard disk can not do bus mastering. In that case, do not install the driver. Normally, a PIO mode 3 hard disk should support multiword DMA mode 1 and a PIO mode 4 should support multiword DMA mode 2. If you have a PIO mode 4 drive but it does not support multiword DMA mode 2 then most likely the hard disk probably has firmware problem. Contact the hard disk manufacturer, and verify the firmware version with them. To test the secondary IDE channel, enter the following. Press Enter before the --- mark. O 176 A0 --- A0 is for master drive, use B0 for the slave drive O 172 21 --- 22 is for DMA mode 2, use 21 for DMA mode 1 --- 42 for ultra DMA mode 2, 41 for ultra dma mode 1, and 40 for ultra DMA mode 0 O 171 03 --- 03 is to program the hard disk timing O 177 EF --- EF is the set feature command for the hard disk I 171 --- this is to read in the error status If you get a number of 00 after I 1f1, then your hard disk accepts the DMA protocol timing that you've programmed in the O 1f2 statement. If you get a number of 04, then it means the hard disk can not do bus mastering. In that case, do not install the driver. 1. Install NT first. Unzip the zip file to a diskette. 2. Boot to Windows NT and double click Windows NT SETUP in the main group. 3. Click on the Options-> Add/Remove SCSI Adapter manu. Then click on the ADD button to add a new driver. Then go all the way down and select Other( Requires a disk from a hardware manufacturer). Next, insert the diskette in drive A: and click OK to continue. Select Tyan 32-bit Ultra DMA Bus Master Driver and click on the INSTALL button to install the driver. 4. Reboot the system. You can check the DEVICES in the Control Panel to see if tynbmide.sys is loaded. Also, the driver will disable the ATDISK.SYS and ATAPI.SYS from Microsoft. +---------------------+ | Removing the Driver | +---------------------+ There are two ways of removing this miniport driver. 1. Boot to NT and run the Windows NT Setup in the main group. Then select Options->Add/Remove SCSI Adapter. High-light Tyan 32-bit Ultra DMA Bus Master Driver and click on REMOVE button. 2. If for some reasons, you can not boot up to NT. You can do two things. One is to press the Space Bar and boot to the last good configuration. Or copy atdisk.sys to tynbmide.sys and boot up from there to remove the driver as described in step 1. Boot to DOS then go to the \winnt35\system32\drivers directory and type copy atdisk.sys tynbmide.sys Then boot up NT and follow the step 1 to remove the driver. +---------------------------------+ | Bus Master Knowledge Background | +---------------------------------+ What is bus mastering? Similar to the SCSI devices, Bus master IDE uses the DMA and memory scatter/gather implementation to reduce the CPU overhead and the bus utilization. Unlike the PIO(programmed input/output) transfer method where the CPU has to program all the transfer from/to the memory, the bus master chip on the Tyan's motherboard actually do the transfer of the data. Thus reduce the CPU overhead up to 90%. The advantage of the bus master transfer can be seen in a multi-task environment. For example, two programs are running at the same time. One program just does a CPU intensive calculation while the other program only does file transferring. In a PIO transferring environment, the CPU uses most of its power either doing the file transfer or the calculation. As a result, the PIO method either slows down the calculation program or slows down the file transferring process depending on the priority of the processes. Whereas in a bus master environment, the bus master chip actually does the file transfer so the CPU can do more calculation thus increase the overall performance. We tested several PIO mode 4 hard disks doing multiword DMA mode 2 transfer. We found out the CPU overhead drop from an average of 80% down to 15% while the interrupts per second reduced from an average of 6000 interrupts/s down to merely 160 interrupts/s with 30MB of file transfer. Definition: Ultra DMA mode 2 = 33MB burst transfer Ultra DMA mode 1 = 22MB burst transfer Ultra DMA mode 0 = 16MB burst transfer Multiword DMA mode 2 = 16.7MB burst transfer rate Multiword DMA mode 1 = 13.3MB burst transfer rate PIO mode 0 & 1 -> Boy, you still have those drives! PIO mode 2 = 8.3MB burst transfer rate PIO mode 3 = 11.3MB burst transfer rate PIO mode 4 = 16.7 MB burst transfer rate PIO mode 5 = 22MB burst transfer rate (proposed) +----------------+ | Devices Tested | +----------------+ This bus master driver has been tested with the following devices. Tyan's Titan I, II, & III motherboards. Tyan's Tomcat I & II motherboard Tyan's Titan Pro AT & ATX motherboards All Tyan's motherboards that use PIIX, PIIX2, PIIX3, and PIIX4 chipset. ATAPI CD-ROM Cinon 8X OK GoldStar 4x OK Hitachi 4x OK NEC 4x4 Can only see one drive instead of four drive. Mitsumi 2X OK Mitsumi 4X OK Mitsumi 6X OK Plextor 4X OK Sanyo 4X OK Sony 2X OK Sony 4X OK Teac 56E OK Toshiba 4X OK Wearnes 8X OK Hard Disk PIO Mode Multiword DMA mode Bus Mastering Conner 425MB 3 1 OK Conner 540MB 3 1 OK Conner 850MB 3 1 bad, firmware problem Conner 1275F 4 2 OK Conner 1275A 4 2 OK Fujitsu 1GB 4 2 OK Fujitsu 540MB 4 2 OK HP 1.6GB 4 2 OK IBM 540MB 3 1 OK IBM 1GB 4 2 OK Maxtor 850MB 3 1 bad, firmware problem Maxtor 71626A 3 1 bad, firmware problem Maxtor 71260AT 3 1 bad, firmware problem Maxtor 2GB 4 2 Ok NEC 1.6GB 3 1 OK Quantum 1GB 4 2 OK Quantum 1.2GB 4 2 OK Quantum 730MB 3 1 OK Quantum 540MB 3 1 bad, firmware problem Quantum 345MB 3 1 OK Quantum 270MB 3 1 bad, timing problem Quantum 640MB 3 1 OK Quantum 850MB 3 1 OK Quantum 2.5GB (Sirroco) OK Seagate 1GB 4 2 OK Seagate 1.6GB 4 2 OK Seagate 1.2GB 4 2 OK Seagate 540MB 4 2 OK Seagate 850MB 3 1 OK Seagate 2.1GB 4 2 OK SyQuest EZ135MB 0 0 PIO transfer only Western 31000 3 1 bad, timing problem Western 31600 4 2 bad Western 21000 4 2 OK Western 21200 4 2 OK Western 640MB 3 1 OK Western 540MB 3 1 bad, firmware problem Western 850MB 3 1 OK Western 700Mb 3 1 OK Western 32100 4 2 OK +---------------------+ | Tips on Performance | +---------------------+ 1. Always separate the hard disk from the CD-ROM. 2. Always separate the slow hard disk from the fast disk. If you attach a fast disk with a slow disk on the same IDE channel, the PCI IDE will use the slow timing for that IDE channel. For example, (Mode refer to PIO mode) Primary IDE Channel Secondary IDE Channel Master Slave Master Slave Good Mode 4 Mode 4 CD-ROM Good Mode 4 Mode 1 CD-ROM Good Mode 4 CD-ROM Good Mode 3 Mode 0 CD-ROM Good Mode 4 Mode 4 CD-ROM Good Mode 4 Mode 3 CD-ROM Bad Mode 4 CD-ROM Mode 1 Bad Mode 4 Mode 2 Mode 4 CD-ROM Bad Mode 3 CD-ROM Mode 3