SiI0680A PCI to IDE/ATA
Data Sheet
Silicon Image, Inc.
program into this register for each PIO mode. If there is more than one device attached to the channel,
select the PIO mode of the slowest device. If PIO mode 3 or 4 is selected, bit 9 of the IDEx Task File
Timing + Configuration + Status register must also be set to enable the controller to monitor the state of the
IORDY signal.
Set the PIO data transfer timing. The PIO data transfer timing is set by programming bits [15:0] for device 0,
or bits [31:16] for device 1, of the IDEx PIO Timing register. See section 13.2.2 for recommended values to
program into this register for each PIO mode. The default value of this register sets the timing slow enough
to work with any ATA/ATAPI device, so this step is optional if the ATA/ATAPI device will not be used in PIO
mode.
Set the multiword DMA data transfer timing. This step is necessary only if the ATA/ATAPI device will be
operated in a multiword DMA mode. The multiword DMA timing is set by programming bits [15:0] for device
0, or bits [31:16] for device 1, of the IDEx DMA Timing register. See section 13.2.3 for recommended values
to program into this register for each multiword DMA mode.
Set the Ultra DMA data transfer timing. This step is necessary only if the ATA/ATAPI device will be operated
in an Ultra DMA mode. The Ultra DMA timing is set by programming bits [15:0] for device 0, or bits [31:16]
for device 1, of the IDEx UDMA Timing register. See sections 13.2.4 and 13.2.5 for recommended values to
program into this register for each Ultra DMA mode.
In order to use the controller’s DMA capability to perform the data transfer for an ATA/ATAPI command, the
controller needs to be configured for the transfer mode to use when transferring data to or from the ATA bus.
The data transfer mode is set by programming bits [1:0] for device 0, or bits [5:4] for device 1, of the IDEx
Data Transfer Mode register. The transfer mode select values are listed below:
00B = PIO Mode without IORDY monitoring
01B = PIO Mode with IORDY monitoring
10B = Multiword DMA
11B = Ultra DMA
NOTE: When using PIO to perform a data transfer, this register only instructs the controller as to whether or not it should
monitor the IORDY signal when the task file data register is accessed. Any value other than 00H will cause the
controller to monitor the IORDY signal.
11.4 Issue ATA Command
The following describes the sequence to issue a read/write type command to an ATA device.
Select the IDE device. The IDE device is selected by programming bits [23:16] in the IDEx Task File
Register 1 register.
Set the number of sectors to be transferred by programming bits [23:16] of the IDEx Task File Register 0
register.
Set the location of data to be transferred. The location is defined by programming the following.
Bits [31:24] in the IDEx Task File Register 0 register define the Starting Sector.
Bits [23:16] in the IDEx Task File Register 1 register define the Device and Head value.
Bits [15:08] in the IDEx Task File Register 1 register define the Cylinder High value.
Bits [07:00] in the IDEx Task File Register 1 register define the Cylinder Low value.
Issue the Read/Write PIO/DMA command by programming bits [31:24] in the IDEx Task File Register 1
register with the command desired.
11.5 IDE PIO Mode Read/Write Operation
Once the SiI 0680A is initialized via the initialization sequence described in Section 11.1, the ATA device has been initialized
for PIO mode data transfer per the guidelines in section 11.2, and the controller channel has been initialized for PIO mode data
transfer per the instructions in section 11.3, PIO read/write operations may be performed by following the programming
sequence described below.
© 2006 Silicon Image, Inc.
SiI-DS-0069-C
110