PCI640X.DOC PCI640X.EXE ----------- A utility, PCI640X.EXE, for programming the PCI-0640x is included in the distribution. PCI640X.EXE allows you to experiment with different Enhanced IDE timing modes, set-up the PCI-0640x's timing, and display vital information about your drives. PCI-0640x is compatible with both PCI-bus and VL-bus. Below is a command description, followed by a tutorial example. WARNING: PCI640X.EXE is for power users only! Do not use it to alter your drive timings unless you are thoroughly familiar with the ATA-2 Specification. SERIOUS DATA LOSS MAY OCCUR IF THE PROGRAM IS IMPROPERLY USED! Form: PCI640X D[riveMode] drv mode where drv = target drive (0-3) mode= desired drive PIO mode (0-5) Use: Most drives revert to slower timing modes at power-up. This command enables setting up a drive to a particular PIO timing mode. After running DriveMode, the TimingMode command must be used to set-up the proper timing on the PCI-0640x chip. To set-up both the drive and PCI-0640x in a single command, see the Mode command below. To determine which timing modes your particular drive supports, use the Info command. Example: PCI640X M 0 3 : set Drive 0 to Mode 3 operation Form: PCI640X I[nfo] drv where: drv = target drive (0-3) Use: Displays info gathered from the IDE IDENTIFY DRIVE command in tabular form. This command is useful for determining which Advanced PIO modes your drives support. Example: PCI640X I 2 : display info about drive 2 Form: PCI640X M[ode] drv mode where drv = target drive (0-3) mode= desired drive PIO mode (0-5) Use: Most drives revert to slower timing modes at power-up. This command enables advanced PIO timing modes on both the drive and the PCI-0640x. To determine which timing modes your particular drive supports, use the Info command. Example: PCI640X M 0 3 : set Drive 0 to Mode 3 operation Form: PCI640X R[egister] [idx val] idx = register index in hexadecimal (51-59h) to set to val val = hexadecimal value to set register idx Use: Allows you to manually set the PCI-0640x registers. Set register index to . If and are not specified, the current register settings are displayed. Example: PCI640X R 52 45 : set register 52h to 45h Form: PCI640X S[peed] mhz where: mhz = local bus speed in MHz (20,25,33,40,50) Use: Specify system local bus speed. The program must know the current local bus speed in order for the Mode command to work properly. This information is stored in PCI640X.DAT. Example: PCI640X S 33 : specify 33 MHz PCI or VL bus speed. Form: PCI640X T[imingMode] drv mode where drv = target drive (0-3) mode= desired drive PIO mode (0-5) Use: Most drives revert to slower timing modes at power-up. This command enables advanced PIO timing modes on the the PCI-0640x. Unlike the Mode command, the TimingMode command DOES NOT setup the drive accordingly. You must run the DriveMode command before running the TimingMode command. To determine which timing modes your particular drive supports, use the Info command. WARNING: TimingMode is for diagnostic purposes only. Setting the PCI-0640x timing faster than what you drive can support may result in data corruption or system lock-up. Example: PCI640X T 0 3 : set PCI-0640x timing for Drive 0 to Mode 3 operation Tutorial Example ---------------- Say you have a new drive from FOOBAR Electronics hooked up as the master on Primary IDE. First, find out which timing modes it supports: pci640x i 0 --------------------------------------------------------------- CMD PCI-0640x IDE Configuration Utility V1.04 17 March 1994 Copyright 1993 CMD Technology, Inc. ALL RIGHTS RESERVED Local Bus Speed: 50 MHz Drive 0: Foobar Electronics IDE-345 Serial: XXFOBR000004579 Firmware Rev: 92919022 Geometry: cylinders 489, heads 11, sectors/track 35 unfmt bytes/track 57600, unfmt bytes/sector 600 Buffer size: 64 KB, Max R/W Mult Count: 32 sectors Current Translation: cylinders 0, heads 0, sectors/track 0, total sectors 0 Default PIO Transfer Mode: 2 Advanced PIO Transfer Mode(s): 3, 4 --------------------------------------------------------------- From the above information, we can see that the drive boots up in Mode 2, and it also supports Mode 3 and 4. If we want to try out Mode 3, we must set the drive and PCI-0640x to Mode 3 timings: pci640x m 0 3 --------------------------------------------------------------- CMD PCI-0640x IDE Configuration Utility V1.0 10 December 1993 Copyright 1993 CMD Technology, Inc. ALL RIGHTS RESERVED Local Bus Speed: 50 MHz Drive 0: Foobar Electronics IDE-345 Setting drive to Mode 3 Setting PCI-0640x timing to PIO Mode 3 --------------------------------------------------------------- Further performance improvements can be achieved by speeding up the host-side timing. As described in the PCI-0640x PCI-to-IDE Chip Manual, Register index 51 contains bits which control host timing. The fastest host timing is obtained with value 23h: pci640x r 51 23 For more information, see PIOMODES.DOC.