Data Sheet SiI0680A PCI to IDE/ATA Data Sheet Document # SiI-DS-0069-C SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Revision History: Version Comment Date Rev. 0.1 First draft (from Engineering Design Specification) 08/07/00 Rev. 0.2 Additional register definitions added 10/09/00 Rev. 0.3 Changed package type to TQFP 10/10/00 Rev. 0.4 Changed TQFP drawing: minor changes to pinout and PLL external component values 10/13/00 Rev. 0.5 Completely re-written from technical standpoint 01/23/01 Rev. 0.5A PRELIMINARY markings removed: submitted for review/comment 01/26/01 Rev 0.90 Major Content Changes 07/05/01 Rev. 0.91 More content changes 08/08/01 Rev. 0.92 Content corrections 08/09/01 Rev. 0.93 Made Minor corrections 08/10/01 Rev. 0.99 Corrections made in preparation of releasing Rev 1.0 version including adding references to ATA/133 Rev. 1.0 Final corrections made, errata added 09/24/01 Rev. 1.05 Errata for chip Revision 00, marked “680 CES”, removed 11/15/01 Rev. 1.1 Changed Register defaults and Resistor Values consistent with chip Revision 01. Clarified OS support. 11/29/01 Rev. 1.2 Changed Document Number 01/09/02 Rev. 1.3 Made minor corrections and change the document name from 680 to 680A 05/16/02 Rev. A3 Updated part ordering number at section 4 package drawing 02/01/05 Rev. B Updated Formatting 10/24/06 Rev. C Removed confidential markings 11/29/06 SiI-DS-0069-C © 2006 Silicon Image, Inc. 2 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Table of Contents 1. Overview ..............................................................................................................................................9 1.1 1.2 Key Benefits ................................................................................................................................................ 9 Features....................................................................................................................................................... 9 1.2.1 1.2.2 1.2.3 1.2.4 Overall Features ......................................................................................................................................................9 PCI Features ...........................................................................................................................................................9 ATA Features ........................................................................................................................................................10 Other Features ......................................................................................................................................................10 1.3 SiI 0680A Technical Description ............................................................................................................. 10 1.4 References ................................................................................................................................................ 10 1.5 Functional Description............................................................................................................................. 10 1.6 Functional Block Diagram ....................................................................................................................... 11 1.7 PCI Interface.............................................................................................................................................. 12 1.8 PCI Initialization ........................................................................................................................................ 12 1.9 PCI Bus Operations.................................................................................................................................. 12 1.10 PCI Configuration Space ....................................................................................................................... 13 1.11 Deviations from the Specification ........................................................................................................ 13 2.1 Device Electrical Characteristics ............................................................................................................... 14 2.2 PCI 33 MHz Timing Specifications.......................................................................................................... 15 2.3 ATA/ATAPI-6 Slew Rate Specifications ................................................................................................. 15 2.4 ATA/ATAPI-6 AC/DC Specifications ...................................................................................................... 15 2.5 Power Supply Bypass Considerations.................................................................................................. 16 3. Pin Definition.....................................................................................................................................17 3.1 SiI 0680A Pin Listing ................................................................................................................................ 17 3.2 SiI 0680A Pin Diagram.............................................................................................................................. 23 3.3 SiI 0680A Pin Descriptions ......................................................................................................................... 24 3.3.1 IDE/ATA Primary Channel.........................................................................................................................................24 3.3.2 IDE/ATA Secondary Channel ....................................................................................................................................25 3.3.3 PCI 33MHz 32-bit Section .........................................................................................................................................27 3.3.4 Miscellaneous I/O .....................................................................................................................................................29 4. Package Drawing ..............................................................................................................................32 5. ASIC Block Diagram .........................................................................................................................34 6. Clocking System ...............................................................................................................................37 7. Phased Locked Loop (PLL)..............................................................................................................38 7.1 PLL Connections ...................................................................................................................................... 38 7.1.1 7.1.2 7.1.3 PLL Schematic ......................................................................................................................................................38 PLL Components................................................................................................................................................39 PLL Layout Requirements ..................................................................................................................................40 8. Auto-Initialization..............................................................................................................................43 8.1 8.2 Auto-Initialization from FLASH ............................................................................................................... 43 Auto-Initialization from EEPROM............................................................................................................ 44 9. Register Definitions ..........................................................................................................................46 9.1 PCI Configuration Space ......................................................................................................................... 46 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.1.6 9.1.7 Device ID – Vendor ID ...........................................................................................................................................48 PCI Status – PCI Command ..................................................................................................................................48 PCI Class Code – Revision ID ...............................................................................................................................49 BIST – Header Type – Latency Timer – Cache Line Size .....................................................................................50 Base Address Register 0 .......................................................................................................................................50 Base Address Register 1 .......................................................................................................................................50 Base Address Register 2 .......................................................................................................................................51 SiI-DS-0069-C © 2006 Silicon Image, Inc. 3 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.8 Base Address Register 3 .......................................................................................................................................51 9.1.9 Base Address Register 4 .......................................................................................................................................51 9.1.10 Base Address Register 5 .....................................................................................................................................52 9.1.11 Subsystem ID – Subsystem Vendor ID................................................................................................................52 9.1.12 Expansion ROM Base Address ...........................................................................................................................53 9.1.13 Capabilities Pointer..............................................................................................................................................53 9.1.14 Max Latency – Min Grant – Interrupt Pin – Interrupt Line ....................................................................................53 9.1.15 Configuration .......................................................................................................................................................54 9.1.16 Software Data Register........................................................................................................................................54 9.1.17 Power Management Capabilities .........................................................................................................................54 9.1.18 Power Management Control + Status ..................................................................................................................55 9.1.19 PCI Bus Master – IDE0........................................................................................................................................55 9.1.20 PRD Table Address – IDE0 .................................................................................................................................56 9.1.21 PCI Bus Master – IDE1........................................................................................................................................56 9.1.22 PRD Table Address – IDE1 .................................................................................................................................56 9.1.23 Data Transfer Mode – IDE0.................................................................................................................................57 9.1.24 Data Transfer Mode – IDE1.................................................................................................................................57 9.1.25 System Configuration Status – Command ...........................................................................................................57 9.1.26 System Software Data Register...........................................................................................................................58 9.1.27 FLASH Memory Address – Command + Status ..................................................................................................58 9.1.28 FLASH Memory Data...........................................................................................................................................58 9.1.29 EEPROM Memory Address – Command + Status ..............................................................................................59 9.1.30 EEPROM Memory Data.......................................................................................................................................59 9.1.31 IDE0 Task File Timing + Configuration + Status..................................................................................................59 9.1.32 IDE0 PIO Timing..................................................................................................................................................60 9.1.33 IDE0 DMA Timing ................................................................................................................................................60 9.1.34 IDE0 UDMA Timing .............................................................................................................................................60 9.1.35 IDE1 Task File Timing + Configuration + Status..................................................................................................61 9.1.36 IDE1 PIO Timing..................................................................................................................................................61 9.1.37 IDE1 DMA Timing ................................................................................................................................................61 9.1.38 IDE1 UDMA Timing .............................................................................................................................................62 9.2 Internal Register Space – Base Address 0 ............................................................................................ 63 9.2.1 9.2.2 9.3 Internal Register Space – Base Address 1 ............................................................................................ 64 9.3.1 9.4 IDE0 Task File Register 0......................................................................................................................................63 IDE0 Task File Register 1......................................................................................................................................63 IDE0 Task File Register 2......................................................................................................................................64 Internal Register Space – Base Address 2 ............................................................................................ 65 9.4.1 9.4.2 IDE1 Task File Register 0......................................................................................................................................65 IDE1 Task File Register 1......................................................................................................................................65 9.5 Internal Register Space – Base Address 3................................................................................................ 66 9.5.1 IDE1 Task File Register 2..........................................................................................................................................66 9.6 Internal Register Space – Base Address 4................................................................................................ 67 9.6.1 PCI Bus Master – IDE0 .............................................................................................................................................67 9.6.2 PRD Table Address – IDE0.......................................................................................................................................67 9.6.3 PCI Bus Master – IDE1 .............................................................................................................................................68 9.6.4 PRD Table Address – IDE1.......................................................................................................................................68 9.7 Internal Register Space – Base Address 5................................................................................................ 69 9.7.1 9.7.2 9.7.3 9.7.4 9.7.5 9.7.6 9.7.7 9.7.8 9.7.9 9.7.10 9.7.11 9.7.12 9.7.13 9.7.14 9.7.15 PCI Bus Master – IDE0..........................................................................................................................................71 PRD Table Address – IDE0 ...................................................................................................................................72 PCI Bus Master – IDE1..........................................................................................................................................73 PRD Table Address – IDE1 ...................................................................................................................................73 PCI Bus Master2 – IDE0........................................................................................................................................74 PCI Bus Master2 – IDE1........................................................................................................................................75 PRD Address – IDE0 .............................................................................................................................................76 PCI Bus Master Byte Count – IDE0 .......................................................................................................................76 PRD Address – IDE1 .............................................................................................................................................76 PCI Bus Master Byte Count – IDE1 .....................................................................................................................77 FIFO Valid Byte Count and Control – IDE0..........................................................................................................77 FIFO Valid Byte Count and Control – IDE1..........................................................................................................78 System Configuration Status – Command ...........................................................................................................79 System Software Data Register...........................................................................................................................79 FLASH Memory Address – Command + Status ..................................................................................................80 SiI-DS-0069-C © 2006 Silicon Image, Inc. 4 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.16 9.7.17 9.7.18 9.7.19 9.7.20 9.7.21 9.7.22 9.7.23 9.7.24 9.7.25 9.7.26 9.7.27 9.7.28 9.7.29 9.7.30 9.7.31 9.7.32 9.7.33 9.7.34 9.7.35 9.7.36 9.7.37 9.7.38 9.7.39 9.7.40 9.7.41 9.7.42 9.7.43 9.7.44 9.7.45 9.7.46 9.7.47 9.7.48 9.7.49 9.7.50 9.7.51 9.7.52 FLASH Memory Data...........................................................................................................................................80 EEPROM Memory Address – Command + Status ..............................................................................................81 EEPROM Memory Data.......................................................................................................................................81 FIFO Port – IDE0.................................................................................................................................................82 FIFO Pointers1– IDE0 .........................................................................................................................................82 FIFO Pointers2– IDE0 .........................................................................................................................................83 FIFO Port – IDE1.................................................................................................................................................83 FIFO Pointers1– IDE1 .........................................................................................................................................84 FIFO Pointers2– IDE1 .........................................................................................................................................84 IDE0 Task File Register 0....................................................................................................................................85 IDE0 Task File Register 1....................................................................................................................................85 IDE0 Task File Register 2....................................................................................................................................86 IDE0 Read Ahead Data .......................................................................................................................................86 IDE0 Task File Register 0 – Command Buffering ................................................................................................87 IDE0 Task File Register 1 – Command Buffering ................................................................................................87 IDE0 UDMA Control.............................................................................................................................................88 IDE0 Virtual DMA/PIO Read Ahead Byte Count ..................................................................................................88 IDE0 Task File Timing + Configuration + Status..................................................................................................89 IDE0 PIO Timing..................................................................................................................................................90 IDE0 DMA Timing ................................................................................................................................................91 IDE0 UDMA Timing .............................................................................................................................................92 Test Register – IDE0 ...........................................................................................................................................93 Data Transfer Mode – IDE0.................................................................................................................................94 IDE1 Task File Register 0....................................................................................................................................94 IDE1 Task File Register 1....................................................................................................................................95 IDE1 Task File Register 2....................................................................................................................................95 IDE1 Read/Write Ahead Data ..............................................................................................................................96 IDE1 Task File Register 0 – Command Buffering ................................................................................................96 IDE1 Task File Register 1 – Command Buffering ................................................................................................97 Rserved Register .................................................................................................................................................97 IDE1 Virtual DMA/PIO Read Ahead Byte Count ..................................................................................................98 IDE1 Task File Timing + Configuration + Status..................................................................................................98 IDE1 PIO Timing..................................................................................................................................................99 IDE1 DMA Timing ..............................................................................................................................................100 IDE1 UDMA Timing ...........................................................................................................................................100 Test Register – IDE1 .........................................................................................................................................101 Data Transfer Mode – IDE1...............................................................................................................................102 10. Design for Testability ...................................................................................................................103 10.1 Test Mode Register.................................................................................................................................. 104 10.2 NAND Tree Test........................................................................................................................................ 104 10.3 Full Chip Internal Scan ............................................................................................................................ 106 10.4 PLL TEST .................................................................................................................................................. 107 10.4.1 BYPASSING the VCO ...........................................................................................................................................107 10.4.2 TESTING the VCO ................................................................................................................................................107 11. Programming Sequences.............................................................................................................108 11.1 Recommended Initialization Sequence for the SiI 0680A.................................................................... 108 11.2 ATA/ATAPI Device Initialization ............................................................................................................. 108 11.3 Initialization of Controller Channel Timing Registers.......................................................................... 109 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.............................................................................................................................................110 11.4 Issue ATA Command............................................................................................................................... 110 11.5 IDE PIO Mode Read/Write Operation ..................................................................................................... 110 If no error, repeat the previous four steps until all data for the write command has been transferred or an error has been detected. ..........................................................................................................................................................................111 11.6 Watchdog Timer Operation..................................................................................................................... 111 11.7 IDE PIO Mode Read Ahead Operation ................................................................................................... 113 11.8 IDE MDMA/UDMA Read/Write Operation............................................................................................... 113 11.9 IDE Virtual DMA Read/Write Operation ................................................................................................. 114 SiI-DS-0069-C © 2006 Silicon Image, Inc. 5 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 11.9.1 Using Virtual DMA with Non-DMA Capable Devices......................................................................... 114 11.9.2 Using Virtual DMA with DMA Capable Devices ................................................................................. 116 11.10 Second PCI Bus Master Registers Usage ........................................................................................... 116 12. FLASH and EEPROM Programming Sequences........................................................................118 12.1 FLASH Memory Access........................................................................................................................... 118 12.1.1 PCI Direct Access .................................................................................................................................................118 12.2.2 Register Access ....................................................................................................................................................118 12.2 EEPROM Memory Access ....................................................................................................................... 119 13. SiI 0680A Timing Registers..........................................................................................................120 13.1 Timing Register Definition ...................................................................................................................... 120 13.2 Timing Registers Programming Suggestion ........................................................................................ 121 13.2.1 TF Timing Register Programming in Number of 33 MHz PCI clock.......................................................................121 13.2.2 PIO Timing Register Programming in Number of 33 MHz PCI clock .....................................................................121 13.2.3 DMA Timing Register Programming in Number of 33 MHz PCI clock ...................................................................121 13.2.4 UDMA Timing Register Programming in Number of 100 MHz IDE clock...............................................................121 13.2.4 UDMA Timing Register Programming in Number of 133 MHz IDE clock...............................................................121 SiI-DS-0069-C © 2006 Silicon Image, Inc. 6 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Table of Tables Table 2-1: Absolute Maximum Ratings......................................................................................................................................14 Table 2-2: DC Specifications ......................................................................................................................................................14 Table 2-3: PCI 33 MHz Timing Specifications ............................................................................................................................15 Table 2-4: ATA /ATAPI-6 Slew Rate Specifications ...................................................................................................................15 Table 2-5: ATA/ATAPI-6 DC Specifications ...............................................................................................................................15 Table 3-1: SiI 0680A Pin Listing .................................................................................................................................................17 Table 3-2: ATA Configuration....................................................................................................................................................30 Table 3-3: Base Address 5 Configuration..................................................................................................................................31 Table 5-1: PCI Bus Signals Group .............................................................................................................................................35 Table 5-2: IDE Channel #0 Signals Group .................................................................................................................................35 Table 5-3: IDE Channel #1 Signals Group .................................................................................................................................35 Table 5-4: SiI 0680A FLASH Memory Signals Group – Shared Signals.....................................................................................36 Table 5-5: SiI 0680A EEPROM Memory Signals Group – Shared Signals.................................................................................36 Table 5-6: SiI 0680A Test Signals Group ...................................................................................................................................36 Table 8-1: Auto-Initialization from Flash Timing .........................................................................................................................43 Table 8-2: FLASH Data Description ...........................................................................................................................................44 Table 8-3: Auto-Initialization from EEPROM Timing..................................................................................................................45 Table 8-4: Auto-Initialization from EEPROM Timing Symbols ....................................................................................................45 Table 8-5: EEPROM Data Description .......................................................................................................................................45 Table 9-1: SiI 0680A PCI Configuration Space ..........................................................................................................................46 Table 9-2: SiI 0680A Internal Register Space – Base Address 0 ..............................................................................................63 Table 9-3: SiI 0680A Internal Register Space – Base Address 1 ..............................................................................................64 Table 9-4: SiI 0680A Internal Register Space – Base Address 2 ..............................................................................................65 Table 9-5: SiI 0680A Internal Register Space – Base Address 3 ..............................................................................................66 Table 9-6: SiI 0680A Internal Register Space – Base Address 4 ..............................................................................................67 Table 9-7: SiI 0680A Internal Register Space – Base Address 5 ...............................................................................................71 Table 9-8: Software Data Byte, Base Address 5, Offset 00H .....................................................................................................72 Table 9-9: Software Data Byte, Base Address 5, Offset 10H .....................................................................................................74 Table 9-10: IDE0 Test Register Selections ...............................................................................................................................93 Table 9-11: IDE1 Test Register Selections ..............................................................................................................................101 Table 10-1: Test Mode Register Selections .............................................................................................................................104 Table 10-2: SiI 0680A NAND Tree Order .................................................................................................................................105 Table 10-2, SiI 0680A NAND Tree Order (continued) ..............................................................................................................106 Table 11-1, Physical Region Descriptor (PRD) Format ............................................................................................................117 SiI-DS-0069-C © 2006 Silicon Image, Inc. 7 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Table of Figures Figure 1-1: SiI 0680A Functional Block Diagram........................................................................................................................11 Figure 1-2: Address Lines During Configuration Cycle...............................................................................................................13 Figure 3-1: SiI 0680A Pin Diagram.............................................................................................................................................23 Figure 3-2: Package Drawing – 144 LQFP.................................................................................................................................32 Figure 3-3: Marking Specification – SiI0680ACL144 ..................................................................................................................33 Figure 3-4: Marking Specification – SiI0680ACLU144................................................................................................................33 Figure 5-1: SiI 0680A ASIC Block Diagram ................................................................................................................................34 Figure 6-1: SiI 0680A Clocking System and Test Feature Diagram ...........................................................................................37 Figure 7-1: Schematic of PLL Circuitry......................................................................................................................................38 Figure 7-2: Example Layout – Ground Plane ............................................................................................................................41 Figure 7-2: Example Layout – Power Plane ..............................................................................................................................42 Figure 8-1: Auto-Initialization from Flash Timing .......................................................................................................................43 Figure 8-2: Auto-Initialization from EEPROM Timing .................................................................................................................44 Figure 10-1: SiI 0680A Clocking System and Test Feature Diagram .......................................................................................103 Figure 10-2: Test Mode Register Programming (A1H) ..............................................................................................................104 Figure 10-3: SiI 0680A NAND Tree ..........................................................................................................................................105 Figure 10-4: PLL Test Logic ....................................................................................................................................................107 SiI-DS-0069-C © 2006 Silicon Image, Inc. 8 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 1. Overview The Silicon Image PCI-680 is a single-chip solution for a PCI to ATA controller. It accepts host commands through the PCI bus, processes them and transfers data between the host and ATA devices. It can be used to control two independent ATA channels: primary and secondary. Each channel has its own ATA bus and will support up to two ATA/ATAPI devices for a maximum of four devices. The PCI-680 supports up to a 133 MB/sec transfer rate exceeding that which is specified in ATA/ATAPI-6. This controller provides OEMs with an enabling solution for interfacing to storage media such as hard disk drives. For personal computer manufacturers, using the PCI-680 will differentiate them from the competition by allowing for the addition of more drives and incorporating the newest drive standards, all at a lower cost. For embedded applications, the SiI 0680A provides a high performance and cost effective interface for storage and ATAPI device support. 1.1 Key Benefits The Silicon Image PCI-680 stand-alone Ultra ATA/133 PCI to ATA host controller is the perfect single-chip solution for designs based on chipsets without an integrated ATA host controller, or designs which need to expand the number of ATA channels to accommodate the growing number of storage peripherals with ATA interface. The PCI-680 comes complete with drivers for Windows 98, Windows Millennium, Windows NT 4.0, Windows 2000, Windows XP and Linux. It is also fully operational and compatible with default IDE drivers from Microsoft. Comprehensive RAID (0, 1, 0+1) software support is also provided for Windows 98, NT 4.0, Windows Me, Windows 2000 and Windows XP. 1.2 Features 1.2.1 Overall Features • • • • • • • • • Standalone PCI to ATA host controller chip Compliant with PCI Specification, revision 2.2. Compliant with PCI IDE Controller Specification, revision 1.0. Compliant with Programming Interface for Bus Master IDE Controller, revision 1.0. Compliant with ATA/ATAPI-6 specifications. Compliant with UDMA6 ATA/133 Specification Driver support for Win98, WinME, NT4, Win2K and XP.(IDE and RAID including Linux IDE support) Supports up to 4Mbit external FLASH or EPROM for BIOS expansion. Supports an external EEPROM, FLASH or serial EPROM for programmable subsystem vendor ID and subsystem product ID. • Supports all necessary test requirements for WHQL. • Supports the Microsoft driver protocols for PIO and bus master DMA operations. • • Supports DMA transfers across the 64K physical boundary and supports transfer sizes >64K (up to 2TB) • Provides virtual DMA support for efficient PCI bus utilization for PIO transfers • Fabricated in a 0.35μ CMOS process with a 3.3 volt core and 5 volt tolerant I/Os. • Available in a 144-pin LQFP package. 1.2.2 PCI Features • Supports PCI 33 MHz with 32-bit data. • Supports PCI PERR and SERR reporting. • Supports PCI bus master operations: Memory Read, Memory Read Multiple, and Memory Write. • Supports PCI bus target operations: Configuration Read, Configuration Write, I/O Read, I/O Write, Memory Read, Memory Write, Memory Read Line (Memory Read), Memory Read Multiple (Memory Read), Memory Write and Invalidate (Memory Write). • Supports byte alignment for odd-byte PCI address access. • Supports jumper configurable PCI class code. • Supports programmable and EEPROM, FLASH and EPROM loadable PCI class code. • Supports memory space (BAR5) accesses. Supports IDE native mode (non-legacy) functions only. SiI-DS-0069-C © 2006 Silicon Image, Inc. 9 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 1.2.3 ATA Features • Supports two independent ATA channels. • Supports ATA 133. • Supports full speed burst transfers on the ATA bus. • Supports software-controlled ATA bus tri-state. • Supports device specific timing registers. • Supports device read-ahead and write-ahead capability under Virtual DMA. 1.2.4 Other Features • Features one 256-byte FIFO (32-bit x 64 deep) per IDE channel for host reads and writes. • Features ATA to PCI interrupt masking. • Features command buffering from the PCI to ATA. • Features Virtual DMA: Bus master transfer on the PCI bus and PIO transfer on the ATA bus. • Features Watch Dog Timer for fault resiliency. 1.3 PCI-680 Technical Description The PCI-680A is available in a 144-pin LQFP (Thin Quad Flat Package) including more ground pins in order to accommodate the new higher data transfer rate specified in the ATA/ATAPI-6 specification. The chip has an internal phase lock loop that will provide the 100/133MHz (selectable) internal clock, allowing a data transfer rate of 100/133MB/sec (selectable) on ATA interface. A built-in 80-pin cable detector provides users the ability to determine whether a cable can support the latest Ultra ATA/100/133 (selectable) transfer rate. The PCI-680 is capable of supporting Native mode, external BIOS, Enhanced IDE mode (ultra DMA and multiword DMA mode) and PIO mode. 1.4 References For more details about the ATA technology, the reader is referred to the following industry specifications: • ATA/ATAPI-6 (at time of publication, ATA/ATAPI-6 has not been formally approved) • PCI Local Bus Specification Revision 2.2 • Advanced Power Management Specification Revision 1.0 • PCI IDE Controller Specification Revision 1.0 • Programming Interface for Bus Master IDE Controller, Revision 1.0 1.5 Functional Description PCI-680 is more than a PCI-to-ATA bridge chip that transfers data between the PCI bus and storage media (e.g hard disk drive, etc) over the ATA bus. As a host controller, it also performs functions associated with the host, such as storing configuration information, and processing data for errors. The PCI-680 can be described in the following functional blocks: • PCI Interface. Provides the interface to any system that has a PCI bus. Instructions and system clocks are based on this interface. • ATA Interface. Two separate channels (Primary and Secondary) to access storage media such as hard disk drives, CD-ROM’s etc. • Controller Interface. Additional hardware interface for controlling and configuring the Host Controller. SiI-DS-0069-C © 2006 Silicon Image, Inc. 10 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 1.6 Functional Block Diagram PCI DM A transf er counter PCI State M achi ne 32 bi ts PCI Figure 1-1: SiI 0680A Functional Block Diagram SiI-DS-0069-C © 2006 Silicon Image, Inc. 11 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 1.7 PCI Interface The PCI-680 PCI interface is compliant with the PCI Local Bus Specification (Revision 2.2). PCI stands for Peripheral Component Interconnect, a high-performance and robust interconnect bus that provides a processor-independent data path between the CPU and high-speed peripherals. The PCI Specification is monitored by the PCI Special Interest Group (PCISIG). The PCI-SIG is an unincorporated association of members of the microcomputer industry created to monitor and enhance the development of PCI architecture and is governed by PCI-SIG bylaws (HTTP://www.pcisig.com/). The PCI-680 can act as a PCI master and a PCI slave, and contains the PCI-680 PCI configuration space and internal registers. When the PCI-680 needs to access shared memory, it becomes the bus master of the PCI bus and completes the memory cycle without external intervention. In the mode when it acts as a bridge between the PCI bus and the IDE/ATA bus it will behave as a PCI slave. 1.8 PCI Initialization Generally, when a system initializes a module containing a PCI device, the configuration manager reads the configuration space of each PCI device on the PCI bus. Hardware signals select a specific PCI device based on a bus number, a slot number, and a function number. If a device that is addressed (via signal lines) responds to the configuration cycle by claiming the bus, then that function's configuration space is read out from the device during the cycle. Since any PCI device can be a multifunction device, every supported function's configuration space needs to be read from the device. Based on the information read, the configuration manager will assign system resources to each supported function within the device. Sometimes new information needs to be written into the function's configuration space. This is accomplished with a configuration write cycle. 1.9 PCI Bus Operations PCI-680 behaves either as a PCI master or a PCI slave device at any time and switches between these modes as required during device operation. As a PCI slave, the PCI-680 responds to the following PCI bus operations: • I/O Read • I/O Write • Configuration Read • Configuration Write • Memory Read • Memory Write All other PCI cycles are ignored by the PCI-680. As a PCI master, the PCI-680 generates the following PCI bus operations: • Memory Read Multiple • Memory Read Line • Memory Read • Memory Write SiI-DS-0069-C © 2006 Silicon Image, Inc. 12 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 1.10 PCI Configuration Space This section describes how the PCI-680 implements the required PCI configuration register space. The intent is to provide an appropriate set of configuration registers that satisfy the needs of current and anticipated system configuration mechanisms, without specifying those mechanisms or otherwise placing constraints on their use. These registers allow for: • Full device relocation (including interrupt binding) • Installation, configuration, and booting without user interventions • System address map construction by device-independent software Bit Number 31 11 10 Don’t Care 8 7 3-Bit Function Number 2 1 6-Bit Register Number Bit 0 Number 2-Bit Type Number Figure 1-2: Address Lines During Configuration Cycle PCI-680 only responds to Type 0 configuration cycles. Type 1 cycles, which pass a configuration request on to another PCI bus, are ignored. The address phase during a PCI-680 configuration cycle indicates the function number and register number being addressed which can be decoded by observing the status of the address lines AD[31:0]. The value of the signal lines AD[7:2] during the address phase of configuration cycles selects the register of the configuration space to access. Valid values are between 0 and 15, inclusive. Accessing registers outside this range results in an all-0s value being returned on reads, and no action being taken on writes. The Class Code register contains the Class Code, Sub-Class Code, and Register-Level Programming Interface registers. All writable bits in the configuration space are reset to 0 by the hardware reset, PCI RESET (RST#) asserted. After reset, PCI680 is disabled and will only respond to PCI configuration write and PCI configuration read cycles. 1.11 Deviations from the Specification The PCI-680 product has been developed and tested to the specification listed in this document. As a result of testing and customer feedback, we may become aware of deviations to the specification that could affect the component's operation. To ensure awareness of these deviations by anyone considering the use of the PCI-680, we will include them in this document. SiI-DS-0069-C © 2006 Silicon Image, Inc. 13 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 2. Electrical Characteristics 2.1 Device Electrical Characteristics Specifications are for temperature range, 0oC to 70oC, unless otherwise specified. Symbol VDDH Parameter Ratings Unit 3.6 V -0.3 ~ 6.0 V 16 mA Supply Voltage VIN Input Voltage IOUT DC Output Current TSTG Storage Temperature o -65 ~ 150 C Table 2-1: Absolute Maximum Ratings Symbol VDD IDD VIH VIL Parameter Condition Type Limits Unit Min Typ Max Supply Voltage - - 3.0 3.3 3.6 V Supply Current (See Sec. 2.5) Quiescent - - 250 - mA Operating - - 350 - - 3.3V PCI - - - Non-PCI 2.0 - - - 3.3V PCI - - 0.3xVDD - Non-PCI - - 0.8 Input High Voltage Input Low Voltage 0.5xVDD V V V+ Input High Voltage - Schmitt - 1.8 2.3 V V- Input Low Voltage - Schmitt 0.5 0.9 - V VH Hysteresis Voltage - Schmitt 0.4 - - V IIH Input High Current VIN = VDD - -10 - 10 μA IIL Input Low Current VIN = VSS - -10 - 10 μA Output High Voltage Output Low Voltage - - 2.4 - - V - - - - 0.4 V 3-State Leakage Current - - -10 - 10 μA VOH VOL IOZ Table 2-2: DC Specifications SiI-DS-0069-C © 2006 Silicon Image, Inc. 14 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 2.2 PCI 33 MHz Timing Specifications Symbol Parameter Limits Unit Min Max CLK to Signal Valid – Bussed Signals 2.0 11.0 ns CLK to Signal Valid – Point to Point 2.0 11.0 ns TON Float to Active Delay 2.0 - ns TOFF Active to Float Delay - 28.0 ns TSU Input Setup Time – Bussed Signals 7.0 - ns Input Setup Time – Point to Point 10.0 - ns Input Hold Time 0.0 - ns TVAL TVAL (PTP) TSU (PTP) TH Table 2-3: PCI 33 MHz Timing Specifications 2.3 ATA/ATAPI-6 Slew Rate Specifications Symbol SRISE Parameter Output Slew Rate – Rising Output Slew Rate – Falling SFALL Condition Refer to ATA Specification for specific test condition requirements Refer to ATA Specification for specific test condition requirements Limits Unit Min Max 0.4 1 V/ns 0.4 1 V/ns Table 2-4: ATA /ATAPI-6 Slew Rate Specifications 2.4 ATA/ATAPI-6 AC/DC Specifications Symbol Parameter Condition Limits Unit Min Max IOL Output Sink Current - 4 - mA IOH Output Source Current - 400 - μA V+ Low-to-High Input Threshold - 1.5 2.0 V V- High-to-Low Input Threshold - 1.0 1.5 V Output Voltage High -6 mA < IOUT < 3 mA VDD 0.51 VDD+ 0.3 V Output Voltage Low IOUT = 6 mA - 0.51 V VOH VOL Table 2-5: ATA/ATAPI-6 DC Specifications SiI-DS-0069-C © 2006 Silicon Image, Inc. 15 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 2.5 Power Supply Bypass Considerations It is recommended that a 4-layer board (minimum) with internal Power and Ground Planes be used when i integrating the SiI 0680A . Good high-speed layout techniques should be used and proper power supply bypassing is essential. Both bulk and local (high frequency) bypass capacitors should be used. Bulk bypassing is intended to reduce the voltage noise (droop) induced by changes in load current and the inductance in the power distribution system (wires and/or etch). Since the currents vary greatly from no activity to worst case data patterns, a significant amount of capacitance is required. All bypass capacitors should be connected to the power and ground plane with a low inductance connection (short, wide traces connecting component pad to plane). The bulk bypass capacitor(s) should have good high frequency characteristics. A capacitor with low ESR (Equivalent Series Resistance) should be used. It should be located close to the source of +3.3V (output pin of regulator or connector pin for off board regulators). The following minimum values are recommended: Low ESR Tantalum – 100uF Low ESR Aluminum Electrolytic – 600uF Local high frequency 0bypass should also be implemented. Capacitors should be located on all four sides of the chip close to the VDD/VSS pins. Three caps per side are recommended (12 total). Additional capacitors (x6) should be distributed evenly around the board area. The following capacitor is recommended for local bypass: Ceramic X7R Dielectric - 0.01uF For a slight improvement in high frequency impedance of the bypass capacitors, two capacitors in parallel can be used for Local Bypass. The paired caps must be located as close as possible to each other. The following values are recommended for the capacitor pairs: Ceramic X7R Dielectric - 0.1uF Ceramic X7R Dielectric – 1000pF SiI-DS-0069-C © 2006 Silicon Image, Inc. 16 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 3. Pin Definition 3.1 PCI-680 Pin Listing This section describes the pin-out of the SiI 0680A PCI-to-ATA host controller ASIC. Pin # Pin Name Type Drive Internal Resistor Description 1 VSS GND - - Ground 2 PLL_VDD PWR - - PLL 3.3 Volt Power 3 PLL_CPBIAS Analog - - PLL Charge Pump Bias 4 PLL_VCOBIAS Analog - - PLL VCO Bias 5 PLL_LOOPFLT Analog - - PLL Loop Filter 6 PLL_GND GND - - PLL Ground 7 TEST_MODE I - PD – 20k ASIC Test Mode Enable 8 IDE0_DD00 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 0 / FLASH memory address bit 18 9 IDE0_DD01 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 1 / FLASH memory address bit 17 10 IDE0_DD02 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 2 / FLASH memory address bit 16 11 IDE0_DD03 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 3 / FLASH memory address bit 15 12 IDE0_DD04 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 4 / FLASH memory address bit 14 13 IDE0_DD05 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 5 / FLASH memory address bit 13 14 IDE0_DD06 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 6 / FLASH memory address bit 12 15 IDE0_DD07 I/O ATA Buffer PD – 100k IDE #0 Data Bus bit 7 / FLASH memory address bit 11 16 VDD PWR - - 3.3 Volt Power 17 VSS GND - - Ground 18 IDE0_DD08 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 8 / FLASH memory address bit 10 19 IDE0_DD09 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 9 / FLASH memory address bit 9 Table 3-1: SiI 0680A Pin Listing SiI-DS-0069-C © 2006 Silicon Image, Inc. 17 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin # Pin Name Type Drive Internal Resistor Description 20 IDE0_DD10 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 10 / FLASH memory address bit 8 21 IDE0_DD11 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 11 / FLASH memory address bit 7 22 IDE0_DD12 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 12 / FLASH memory address bit 6 23 IDE0_DD13 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 13 / FLASH memory address bit 5 24 IDE0_DD14 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 14 / FLASH memory address bit 4 25 IDE0_DD15 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 15 / FLASH memory address bit 3 26 VDD PWR - - 3.3 Volt Power 27 VSS GND - - Ground 28 IDE0_CS0_N I/O 12 mA - IDE #0 Chip Select / memory read strobe FLASH 29 IDE0_CS1_N I/O 12 mA - IDE #0 Chip Select / memory write strobe FLASH 30 IDE0_DA0 I/O 12 mA - IDE #0 Device Address / FLASH memory address bit 2 31 IDE0_DA1 I/O 12 mA - IDE #0 Device Address / FLASH memory address bit 1 32 IDE0_DA2 I/O 12 mA - IDE #0 Device Address / FLASH memory address bit 0 33 IDE0_DIOR_N I/O ATA Buffer - IDE #0 Device I/O Read 34 IDE0_DIOW_N I/O ATA Buffer - IDE #0 Device I/O Write 35 IDE0_DMACK_N I/O ATA Buffer - IDE #0 DMA Acknowledge 36 VDD PWR - - 3.3 Volt Power 37 VSS GND - - Ground 38 IDE0_CBLID_N I-Schmitt - PU – 100k IDE #0 Cable ID 39 IDE0_INTRQ I-Schmitt - PD – 100k IDE #0 Interrupt Request 40 IDE0_IORDY I-Schmitt - PU – 100k IDE #0 I/O Ready 41 IDE0_AT_REXT Analog - - 42 IDE0_DMARQ I-Schmitt - PD – 100k 43 IDE0_RST_N I/O 12 mA - IDE #0 External Bias Circuit IDE #0 DMA Request IDE #0 Reset Table 3-1: SiI 0680A Pin Listing (continued) SiI-DS-0069-C © 2006 Silicon Image, Inc. 18 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin # Pin Name Type Drive Internal Resistor Description 44 IDE1_DD00 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 0 / FLASH memory data bit 0 45 IDE1_DD01 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 1 / FLASH memory data bit 1 46 IDE1_DD02 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 2 / FLASH memory data bit 2 47 IDE1_DD03 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 3 / FLASH memory data bit 3 48 IDE1_DD04 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 4 / FLASH memory data bit 4 49 IDE1_DD05 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 5 / FLASH memory data bit 5 50 IDE1_DD06 I/O ATA Buffer PU – 100k IDE #0 Data Bus bit 6 / FLASH memory data bit 6 51 VDD PWR - - 3.3 Volt Power 52 VSS GND - - Ground 53 IDE1_DD07 I/O 54 IDE1_DD08 I/O 55 IDE1_DD09 56 ATA Buffer PD – 100k IDE #0 Data Bus bit 7 / FLASH memory data bit 7 ATA Buffer PU – 100k IDE #1 Data Bus I/O ATA Buffer PU – 100k IDE #1 Data Bus IDE1_DD10 I/O ATA Buffer PU – 100k IDE #1 Data Bus 57 IDE1_DD11 I/O ATA Buffer PU – 100k IDE #1 Data Bus 58 IDE1_DD12 I/O ATA Buffer PU – 100k IDE #1 Data Bus 59 IDE1_DD13 I/O ATA Buffer PU – 100k IDE #1 Data Bus 60 IDE1_DD14 I/O ATA Buffer PU – 100k IDE #1 Data Bus 61 VDD PWR 62 VSS GND 63 IDE1_DD15 64 - 3.3 Volt Power - - Ground I/O ATA Buffer PU – 100k IDE1_CS0_N I/O 12 mA - IDE #1 Chip Select / EEPROM SCLK 65 IDE1_CS1_N I/O 12 mA - IDE #1 Chip Select / EEPROM SDAT 66 IDE1_DA0 I/O 12 mA - IDE #1 Device Address 67 IDE1_DA1 I/O 12 mA - IDE #1 Device Address 68 IDE1_DA2 I/O 12 mA - IDE #1 Device Address IDE #1 Data Bus Table 3-1: SiI 0680A Pin Listing (continued) SiI-DS-0069-C © 2006 Silicon Image, Inc. 19 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin # Pin Name Type Drive Internal Resistor 69 Description IDE1_DIOR_N I/O ATA Buffer - IDE #1 Device I/O Read 70 IDE1_DIOW_N I/O ATA Buffer - IDE #1 Device I/O Write 71 IDE1_CBLID_N I-Schmitt - PU – 100k 72 VDD PWR - - 3.3 Volt Power 73 VSS GND - - Ground 74 IDE1_DMACK_N I/O ATA Buffer - IDE #1 DMA Acknowledge 75 IDE1_INTRQ I-Schmitt - PD – 100k IDE #1 Interrupt Request 76 IDE1_IORDY I-Schmitt - PU – 100k IDE #1 I/O Ready 77 IDE1_AT_REXT Analog - - 78 IDE1_DMARQ I-Schmitt - PD – 100k 79 IDE1_RST_N I/O 12 mA - 80 JP I - PU – 20k 81 PCI_AD31 I/O PCI - PCI Address/Data 82 PCI_AD30 I/O PCI - PCI Address/Data 83 PCI_AD29 I/O PCI - PCI Address/Data 84 PCI_AD28 I/O PCI - PCI Address/Data 85 PCI_AD27 I/O PCI - PCI Address/Data 86 PCI_AD26 I/O PCI - PCI Address/Data 87 VDD PWR - - 3.3 Volt Power 88 VSS GND - - Ground 89 PCI_AD25 I/O PCI - PCI Address/Data 90 PCI_AD24 I/O PCI - PCI Address/Data 91 PCI_CBE3 I/O PCI - PCI Command/Byte Enable 92 PCI_IDSEL I - - PCI ID Select 93 PCI_AD23 I/O PCI - PCI Address/Data 94 PCI_AD22 I/O PCI - PCI Address/Data 95 PCI_AD21 I/O PCI - PCI Address/Data 96 PCI_AD20 I/O PCI - PCI Address/Data 97 PCI_AD19 I/O PCI - PCI Address/Data 98 VDD PWR - - 3.3 Volt Power 99 VSS GND - - Ground IDE #1 Cable ID IDE #1 External Bias Circuit IDE #1 DMA Request IDE #1 Reset IDE Configuration Jumper Table 3-1: SiI 0680A Pin Listing (continued) SiI-DS-0069-C © 2006 Silicon Image, Inc. 20 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin # Pin Name Type Drive Internal Resistor Description 100 PCI_AD18 I/O PCI - PCI Address/Data 101 PCI_AD17 I/O PCI - PCI Address/Data 102 PCI_AD16 I/O PCI - PCI Address/Data 103 PCI_CBE2 I/O PCI - PCI Command/Byte Enable 104 PCI_FRAME_N I/O PCI - PCI Frame 105 PCI_IRDY_N I/O PCI - PCI Initiator Ready 106 PCI_TRDY_N I/O PCI - PCI Target Ready 107 PCI_DEVSEL_N I/O PCI - PCI Device Select 108 VDD PWR - - 3.3 Volt Power 109 VSS GND - - Ground 110 PCI_STOP_N I/O PCI - PCI Stop 111 PCI_PERR_N I/O PCI - PCI Parity Error 112 PCI_SERR_N OD PCI - PCI System Error 113 PCI_PAR I/O PCI - PCI Parity 114 PCI_CBE1 I/O PCI - PCI Command/Byte Enable 115 PCI_AD15 I/O PCI - PCI Address/Data 116 PCI_AD14 I/O PCI - PCI Address/Data 117 PCI_AD13 I/O PCI - PCI Address/Data 118 VDD PWR - - 3.3 Volt Power 119 VSS GND - - Ground 120 PCI_AD12 I/O PCI - PCI Address/Data 121 PCI_AD11 I/O PCI - PCI Address/Data 122 PCI_AD10 I/O PCI - PCI Address/Data 123 PCI_AD09 I/O PCI - PCI Address/Data 124 PCI_AD08 I/O PCI - PCI Address/Data 125 PCI_CBE0 I/O PCI - PCI Command/Byte Enable 126 PCI_AD07 I/O PCI - PCI Address/Data 127 PCI_AD06 I/O PCI - PCI Address/Data 128 VDD PWR - - 3.3 Volt Power 129 VSS GND - - Ground 130 PCI_AD05 I/O PCI - PCI Command/Byte Enable Table 3-1: SiI 0680A Pin Listing (continued) SiI-DS-0069-C © 2006 Silicon Image, Inc. 21 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin # Pin Name Type Drive Internal Resistor Description 131 PCI_AD04 I/O PCI - PCI Command/Byte Enable 132 PCI_AD03 I/O PCI - PCI Command/Byte Enable 133 PCI_AD02 I/O PCI - PCI Command/Byte Enable 133 PCI_AD02 I/O PCI - PCI Command/Byte Enable 134 PCI_AD01 I/O PCI - PCI Command/Byte Enable 135 PCI_AD00 I/O PCI - PCI Command/Byte Enable 136 PCI_REQ_N T PCI - PCI Bus Request 137 PCI_GNT_N I - - PCI Bus Grant 138 PCI_INTA_N OD PCI - PCI Interrupt 139 BA5_EN I - - Base Address 5 Enable Jumper 140 PCI_CLK I - - PCI Clock 141 PCI_RST_N I-Schmitt - - PCI Reset 142 SCAN_EN I - PD – 20k Internal Scan Enable 143 MEM_CS_N I/O 4 mA - Memory Chip Select 144 VDD PWR - - 3.3 Volt Power Table 3-1: SiI 0680A Pin Listing (continued) Pin Type I I-Schmitt O T I/O OD Pin Description Input Pin with LVTTL Thresholds Input Pin with Schmitt Trigger Output Pin Tri-state Output Pin Bidirect Pin Open Drain Output Pin SiI-DS-0069-C © 2006 Silicon Image, Inc. 22 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 3.2 PCI-680 Pin Diagram 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 VDD PCI_DEVSEL_N PCI_TRDY_N PCI_IRDY_N PCI_FRAME_N PCI_CBE2 PCI_AD16 PCI_AD17 PCI_AD18 VSS VDD PCI_AD19 PCI_AD20 PCI_AD21 PCI_AD22 PCI_AD23 PCI_IDSEL PCI_CBE3 PCI_AD24 PCI_AD25 VSS VDD PCI_AD26 PCI_AD27 PCI_AD28 PCI_AD29 PCI_AD30 PCI_AD31 JP IDE1_RST_N IDE1_DMARQ IDE1_AT_REXT IDE1_IORDY IDE1_INTRQ IDE1_DMACK_N VSS The PCI-680 pin diagram is shown in Figure 3-1. 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 SiI 0680 Top View VDD IDE1_CBLID_N IDE1_DIOW_N IDE1_DIOR_N IDE1_DA2 IDE1_DA1 IDE1_DA0 IDE1_CS1_N IDE1_CS0_N IDE1_DD15 VSS VDD IDE1_DD14 IDE1_DD13 IDE1_DD12 IDE1_DD11 IDE1_DD10 IDE1_DD09 IDE1_DD08 IDE1_DD07 VSS VDD IDE1_DD06 IDE1_DD05 IDE1_DD04 IDE1_DD03 IDE1_DD02 IDE1_DD01 IDE1_DD00 IDE0_RST_N IDE0_DMARQ IDE0_AT_REXT IDE0_IORDY IDE0_INTRQ IDE0_CBLID_N VSS EEPROM SDAT EEPROM SCLK FLASH DATA[07] FLASH FLASH FLASH FLASH FLASH FLASH FLASH DATA[06] DATA[05] DATA[04] DATA[03] DATA[02] DATA[01] DATA[00] ADDR[10] ADDR[09] ADDR[08] ADDR[07] ADDR[06] ADDR[05] ADDR[04] ADDR[03] FLASH FLASH FLASH FLASH FLASH FLASH FLASH FLASH FLASH RD_N FLASH WR_N FLASH ADDR[02] FLASH ADDR[01] FLASH ADDR[00] ADDR[18] ADDR[17] ADDR[16] ADDR[15] ADDR[14] ADDR[13] ADDR[12] ADDR[11] FLASH FLASH FLASH FLASH FLASH FLASH FLASH FLASH VSS PLL_VDD PLL_CPBIAS PLL_VCOBIAS PLL_LOOPFLT PLL_GND TEST_MODE IDE0_DD00 IDE0_DD01 IDE0_DD02 IDE0_DD03 IDE0_DD04 IDE0_DD05 IDE0_DD06 IDE0_DD07 VDD VSS IDE0_DD08 IDE0_DD09 IDE0_DD10 IDE0_DD11 IDE0_DD12 IDE0_DD13 IDE0_DD14 IDE0_DD15 VDD VSS IDE0_CS0_N IDE0_CS1_N IDE0_DA0 IDE0_DA1 IDE0_DA2 IDE0_DIOR_N IDE0_DIOW_N IDE0_DMACK_N VDD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 EEPROM SDAT EEPROM SCLK VSS PCI_STOP_N PCI_PERR_N PCI_SERR_N PCI_PAR PCI_CBE1 PCI_AD15 PCI_AD14 PCI_AD13 VDD VSS PCI_AD12 PCI_AD11 PCI_AD10 PCI_AD09 PCI_AD08 PCI_CBE0 PCI_AD07 PCI_AD06 VDD VSS PCI_AD05 PCI_AD04 PCI_AD03 PCI_AD02 PCI_AD01 PCI_AD00 PCI_REQ_N PCI_GNT_N PCI_INTA_N BA5_EN PCI_CLK PCI_RST_N SCAN_EN MEM_CS_N VDD Figure 3-1: PCI-680 Pin Diagram SiI-DS-0069-C © 2006 Silicon Image, Inc. 23 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 3.3 PCI-680 Pin Descriptions 3.3.1 IDE/ATA Primary Channel IDE0 Disk Data Bus Pin Names: IDE0_DD[15..0] Pin Numbers: 25, 24, 23, 22, 21, 20, 19, 18, 15, 14, 13, 12, 11, 10, 9, 8 Disk Data bits 0 through 15 are the 16-bit bi-directional data bus which connects to the ATA device(s). IDE0_DD[15:0] are data signals to the primary Channel. IDE0_DD[7:0] defines the low byte while IDE0_DD[15:8] defines the high byte of this 16bit data register. The data bus is normally in a high impedance state and is driven by the SiI 0680A during the IDE0_DIOW_N command pulse in either single/multi-word DMA mode, or valid at every edge of IDE0_DIOR_N (HSTROBE) or IDE0_IORDY (DSTROBE) in Ultra DMA mode. IDE0_DD[7] is a multifunction pin which allows a host to recognize the absence of an ATA/ATAPI device at power-up. It is recommended that a 10kΩ pull-down resistor be connected to this pin. IDE0 Chip Select Pin Names: IDE0_CS0_N; IDE0_CS1_N Pin Numbers: 28, 29 These are the chip select signals from the host used to select the Command Block or Control Block registers. When IDE0_DMACK_N is asserted, IDE0_CS0_N and IDE0_CS1_N shall be negated and transfers shall be 16 bits wide. IDE0 Disk Address Pin Names: IDE0_DA[2..0] Pin Numbers: 32, 31, 30 Disk Address bits 0 through 2 are normally outputs to the ATA connector selecting the register in the drive’s Command Block register. IDE0_DA[2:0] sends address signals to the primary channel. These address signals are decoded from the PCI_AD[2:0] and PCI_CBE[3:0] inputs. IDE0 Disk I/O Read Pin Name: IDE0_DIOR_N Pin Number: 33 Primary Channel Disk I/O Read is an active low output which enables data to be read from the drive. The duration and repetition rate of IDE0_DIOR_N cycles is determined by SiI 0680A programming. IDE0_DIOR_N to the primary channel is driven high when inactive. This signal is defined as HSTROBE in Ultra DMA write mode to write data to the primary channel drive. This signal is also defined as primary channel HDMARDY_N in Ultra DMA read mode. IDE0 Disk I/O Write Pin Name: IDE0_DIOW_N Pin Number: 34 Primary Channel Disk I/O Write is an active low output that enables data to be written to the drive. The duration and repetition of IDE0_DIOW_N cycles is determined by SiI 0680A Programming. IDE0_DIOW_N to the primary channel is driven high when inactive. This signal is defined as primary channel STOP in ultra DMA mode. IDE0 DMA Acknowledge Pin Name: IDE0_DMACK_N Pin Number: 35 This signal is normally used by the SiI 0680A in response to IDE0_DMARQ to either acknowledge that the primary channel is ready to accept data, or that data is available. This signal is also used to write CRC code to the primary channel drive at the end of each Ultra DMA burst transfer. SiI-DS-0069-C © 2006 Silicon Image, Inc. 24 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. IDE0 Cable Detect Pin Names: IDE0_CBLID_N Pin Numbers: 38 IDE0_CBLID_N (Cable Detect) determines the type of cable attached to the primary channel. In general, a low on this pin indicates that an 80 conductor cable is attached. A high indicates that a 40 conductor cable is attached. Refer to the ATA/ATAPI-6 Specification for complete details. IDE0 Interrupt Request Pin Name: IDE0_INTRQ Pin Number: 39 Primary channel interrupt request is an input signal used to generate the PCI_INTA_N output. This input should have a 10kΩ pull-down resistor connected to it. IDE0 I/O Ready Pin Name: IDE0_IORDY Pin Number: 40 The Primary channel drive I/O ready is an active high input. It indicates that the IDE/ATA disk drive has completed the current command cycle. A 4.7kΩ pull-up resistor is recommended. This signal is defined as DSTROBE in Ultra DMA read mode to read data from the currently selected drive to the primary channel. This signal is also defined as DDMARDY_N in Ultra DMA write mode. IDE0 External Bias Circuit Pin Name: IDE0_AT_REXT Pin Number: 41 IDE0_AT_REXT is an analog pin for connection to an external bias circuit. Connect (in parallel) an 1.74KΩ, 1% resistor and an 820 pF, 5% capacitor between this pin and ground. This pin is sensitive to noise and must be routed carefully. Keep the trace length on this pin as short as possible and away from any sources of noise. IDE0 DMA Request Pin Name: IDE0_DMARQ Pin Number: 42 This signal is used in a handshake manner with IDE0_DMACK_N, and shall be asserted high by the currently selected drive attached to the primary IDE/ATA Channel when it is ready to transfer data to or from the host. This pin should have a 5.6 KΩ pull-down resistor connected to it. IDE0 Disk Reset Pin Name: IDE0_RST_N Pin Number: 43 IDE0 Disk Reset is an active low output which signals the IDE/ATA drive to initialize its control register. IDE0_RST_N is a buffered version of the PCI_RST_N input. It can also be generated by programming the SiI 0680A register and connects directly to the ATA connector. IDE0_RST_N asserts reset to the primary IDE/ATA channel. 3.3.2 IDE/ATA Secondary Channel IDE1 Disk Data Bus Pin Names: IDE1_DD[15..0] Pin Numbers: 63, 60, 59, 58, 57, 56, 55, 54, 53, 50, 49, 48, 47, 46, 45, 44 Disk Data bits 0 through 15 are the 16-bit bi-directional data bus, which connects to the IDE/ATA device(s). IDE1_DD[15:0] are data signals to the secondary channel. IDE1_DD[7:0] defines the low data byte while IDE1_DD[15:8] defines the high data byte of this 16-bits data register. The data bus is normally in a high impedance state and is driven by the SiI 0680A during the IDE1_DIOW_N command pulse in either single/multi-word DMA mode, or valid at every edge of IDE1_DIOR_N (HSTROBE) or IDE1_IORDY (DSTROBE) in Ultra DMA mode. IDE1_DD07 is a multifunction pin, which allows a host to recognize the SiI-DS-0069-C © 2006 Silicon Image, Inc. 25 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. absence of an ATA/ATAPI device at power-up. It is recommended that a 10kΩ pull-down resistor is recommended to be connected to this pin. IDE1 Chip Select Pin Names: IDE1_CS0_N; IDE1_CS1_N Pin Numbers: 64, 65 These are the chip select signals from the host used to select the Command Block or Control Block registers. When IDE1_DMACK_N is asserted, IDE1_CS0_N and IDE1_CS1_N shall be negated and transfers shall be 16 bits wide. IDE1 Disk Address Pin Names: IDE1_DA[2..0] Pin Numbers: 68, 67, 66 Disk Address bits 0 through 2 are normally outputs to the ATA connector to select the register in the drive’s Command Block register. IDE1_DA [2:0] sends address signals to the secondary channel. These address signals are decoded from the PCI_AD[2:0] and PCI_CBE[3:0] inputs. IDE1 Disk I/O Read Pin Name: IDE1_DIOR_N Pin Number: 69 This is an active low output which enables data to be read from the drive. The duration and repetition rate of IDE1_DIOR_N cycles is determined by programming the SiI 0680A PIO timing registers. IDE1_DIOR_N to the secondary channel is driven high when inactive. This signal is defined as HSTROBE in Ultra DMA write mode to write data to the secondary channel drive. This signal is also defined as secondary channel HDMARDY_N in Ultra DMA read mode. IDE1 Disk I/O Write Pin Name: IDE1_DIOW_N Pin Number: 70 This is an active low output that enables data to be written to the drive. The duration and repetition rate of IDE1_DIOW_N cycles is determined by programming the SiI 0680A PIO timing registers. IDE1_DIOW_N to the Secondary channel is driven high when inactive. This signal is also defined as secondary channel STOP in Ultra DMA mode. IDE1 Cable Detect Pin Names: IDE1_CBLID_N Pin Number: 71 IDE1_CBLID_N (Cable Detect) determines the type of cable attached to the primary channel. In general, a low on this pin indicates that a 40 conductor cable is attached. A high indicates that an 80 conductor cable is attached. Refer to the ATA/ATAPI-6 Specification for complete details. IDE1 DMA Acknowledge Pin Name: IDE1_DMACK_N Pin Number: 74 This signal is normally used by the SiI 0680A in response to IDE1_DMARQ to either acknowledge that the secondary channel is ready to accept data, or that data is available. This signal is also used to write CRC code to the secondary channel drive at the end of each Ultra DMA burst transfer. IDE1 Interrupt Request Pin Name: IDE1_INTRQ Pin Number: 75 Primary channel interrupt request is an input signal used to generate the PCI_INTA_N output. This input should have a 10kΩ pull-down resistor connected to it. IDE1 I/O Ready SiI-DS-0069-C © 2006 Silicon Image, Inc. 26 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin Name: IDE1_IORDY Pin Number: 76 The Secondary Channel Drive Channel’s Initiator Ready is an active high input. It indicates that the ATA disk drive has completed the current command cycle. A 4.7KΩ pull-up resistor is recommended. This signal is defined as DSTROBE in Ultra DMA read mode to read data from the currently selected drive attached to the secondary channel. This signal is also defined as DDMARDY_N in Ultra DMA write mode. IDE1 External Bias Circuit Pin Name: IDE1_AT_REXT Pin Number: 77 IDE1_AT_REXT is an analog pin for connection to an external bias circuit. Connect (in parallel) an1.74K, 1% resistor and an 820 pF, 5% capacitor between this pin and ground. This pin is sensitive to noise and must be routed carefully. Keep the trace length on this pin as short as possible and away from any sources of noise. IDE1 DMA Request Pin Name: IDE1_DMARQ Pin Number: 78 This signal is used in a handshake manner with IDE1_DMACK_N and shall be asserted high by the currently selected drive attached to the secondary IDE/ATA channel when it is ready to transfer data to or from the host. . This pin should have a 5.6 KΩ pull-down resistor connected to it. IDE1 Disk Reset Pin Name: IDE1_RST_N Pin Number: 79 Disk Reset is an active low output which signals the IDE/ATA drive to initialize its control register. IDE1_RST_N is a buffered version of the PCI_RST_N input. It can also be generated by programming the SiI 0680A register, and connects directly to the ATA connector. IDE1_RST_N asserts reset to the secondary ATA channel. 3.3.3 PCI 33MHz 32-bit Section PCI Address and Data Pin Names: PCI_AD[31..0] Pin Numbers: 81~86, 89, 90, 93~97, 100~102, 115~117, 120~124, 126, 127, 130~135 Address and Data buses are multiplexed on the same PCI pins. A bus transaction consists of an address phase followed by one or more data phases. PCI supports both read and write bursts. The address phase is the first clock cycle in which PCI_FRAME_N signal is asserted. During the address phase, PCI_AD[31:0] contain a physical address (32 bits). For I/O, this can be a byte address. For configuration and memory it is a DWORD address. During data phases, PCI_AD[7:0] contain the least significant byte (LSB) and PCI_AD[31:24] contain the most significant byte (MSB). Write data is stable and valid when PCI_IRDY_N is asserted; read data is stable and valid when PCI_TRDY_N is asserted. Data is transferred during those clocks where both PCI_IRDY_N and PCI_TRDY_N are asserted. PCI Command and Byte Enables Pin Names: PCI_CBE[3..0] Pin Numbers: 91, 103, 114, 125 Command and Byte Enables are multiplexed on the same PCI pins. During the address phase of a transaction, PCI_CBE[3:0]_N define the bus command. During the data phase, PCI_CBE[3:0]_N are used as Byte Enables. Byte Enables are valid for the entire data phase and determine which byte lanes carry meaningful data. PCI ID Select Pin Name: PCI_IDSEL Pin Number: 92 This signal is used as a chip select during configuration read and write transactions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 27 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. PCI Frame Cycle Pin Name: PCI_FRAME_N Pin Number: 104 Cycle Frame is driven by the current master to indicate the beginning and duration of an access. PCI_FRAME_N is asserted to indicate that a bus transaction is beginning. While PCI_FRAME_N is asserted, data transfers continue. When PCI_FRAME_N is de-asserted, the transaction is in the final data phase or has completed. PCI Initiator Ready Pin Name: PCI_IRDY_N Pin Number: 105 Initiator Ready indicates the initializing agent’s (bus master’s) ability to complete the current data phase of the transaction. This signal is used with PCI_TRDY_N. A data phase is completed on any clock when both PCI_IRDY_N and PCI_TRDY_N are sampled as asserted. Wait cycles are inserted until both PCI_IRDY_N and PCI_TRDY_N are asserted together. PCI Target Ready Pin Name: PCI_TRDY_N Pin Number: 106 Target Ready indicates the target agent’s ability to complete the current data phase of the transaction. PCI_TRDY_N is used with PCI_IRDY_N. A data phase is completed on any clock when both PCI_TRDY_N and PCI_IRDY_N are sampled asserted. During a read, PCI_TRDY_N indicates that valid data is present on PCI_AD[31:0]. During a write, it indicates the target is prepared to accept data. PCI Device Select Pin Name: PCI_DEVSEL_N Pin Number: 107 Device Select, when actively driven, indicates the driving device has decoded its address as the target of the current access. As an input, PCI_DEVSEL_N indicates to a master whether any device on the bus has been selected. PCI Stop Pin Name: PCI_STOP_N Pin Number: 110 PCI_STOP_N indicates the current target is requesting that the master stop the current transaction. PCI Parity Error Pin Name: PCI_PERR_N Pin Number: 111 PCI_PERR_N indicates a data parity error between the current master and target on PCI. On a write transaction, the target always signals data parity errors back to the master on PCI_PERR_N. On a read transaction, the master asserts PCI_PERR_N to indicate to the system that an error was detected. PCI System Error Pin Name: PCI_SERR_N Pin Number: 112 System Error is for reporting address parity errors, data parity errors on Special Cycle Command, or any other system error where the result will be catastrophic. The PCI_SERR_N is a pure open drain and is actively driven for a single PCI clock by the agent reporting the error. The assertion of PCI_SERR_N is synchronous to the clock and meets the setup and hold times of all bused signals. However, the restoring of PCI_SERR_N to the de-asserted state is accomplished by a weak pull-up. Note that if an agent does not want a non-maskable interrupt (NMI) to be generated, a different reporting mechanism is required. PCI Parity Pin Name: PCI_PAR SiI-DS-0069-C © 2006 Silicon Image, Inc. 28 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin Number: 113 PCI_PAR is even parity across PCI_AD[31:0] and PCI_CBE[3:0]_N. Parity generation is required by all PCI agents. PCI_PAR is stable and valid one clock after the address phase. For data phases PCI_PAR is stable and valid one clock after either PCI_IRDY_N is asserted on a write transaction or PCI_TRDY_N is asserted on a read transaction. Once PCI_PAR is valid, it remains valid until one clock after the completion of the current data phase. (PCI_PAR has the same timing as PCI_AD[31:0] but delayed by one clock.) PCI Request Pin Name: PCI_REQ_N Pin Number: 136 This signal indicates to the arbiter that this agent desires use of the PCI bus. PCI Grant Pin Name: PCI_GNT_N Pin Number: 137 This signal indicates to the agent that access to the PCI bus has been granted. In response to a PCI request, this is a point-topoint signal. Every master has its own PCI_GNT_N, which must be ignored while PCI_RST_N is asserted. PCI Interrupt A Pin Name: PCI_INTA_N Pin Number: 138 Interrupt A is used to request an interrupt on the PCI bus. PCI_INTA_N is open collector and is an open drain output. PCI Clock Signal Pin Names: PCI_CLK Pin Number: 140 Clock Signal provides timing for all transactions on PCI and is an input to every PCI device. All other PCI signals (except PCI_RST_N, and PCI_INTA_N) are sampled on the rising edge of PCI_CLK. All other timing parameters are defined with respect to this edge. PCI Reset Pin Name: PCI_RST_N Pin Number: 141 PCI_RST_N is an active low input that is used to set the internal registers to their initial state. PCI_RST_N is typically the system power-on reset signal as distributed on the PCI bus. 3.3.4 Miscellaneous I/O Ground Pin Name: VSS Pin Number: 1, 17, 27, 37, 52, 62, 73, 88, 99, 109, 119, 129 Ground reference point to power supply. PLL VDD Pin Name: PLL_VDD Pin Number: 2 Dedicated PLL Power supply (3.3 Volts +/- 10%). Refer to section 7.1 for PLL connections. PLL Charge Pump Bias Pin Name: PLL_CPBIAS Pin Number: 3 Dedicated PLL analog pin for charge pump bias. Refer to section 7.1 for PLL connections. SiI-DS-0069-C © 2006 Silicon Image, Inc. 29 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. PLL VCO Bias Pin Name: PLL_VCOBIAS Pin Number: 4 Dedicated PLL analog pin for VCO bias. Refer to section 7.1 for PLL connections. PLL Loop Filter Pin Name: PLL_LOOPFLT Pin Number: 5 Dedicated PLL analog input for off-chip loop filter. Refer to section 7.1 for PLL connections. PLL Ground Pin Name: PLL_GND Pin Number: 6 Dedicated PLL Ground (Power supply reference). Refer to section 7.1 for PLL connections. Test Mode Pin Name: TEST_MODE Pin Number: 7 This pin, in conjunction with other pins, enables various test functions within the device. This pin should tied to ground for normal operation. Power Supply Pin Name(s): VDD Pin Number(s): 16, 26, 36, 51, 61, 72, 87, 98, 108, 118, 128and144 Power Supply Input (3.3 volts +/- 10%) IDE Configuration Pin Names: JP Pin Numbers: 80 IDE Configuration Jumper Pin. JP Pin 0 1 CONFIGURATION RAID Class, PCI Class Code = 010400h IDE Class, PCI Class Code = 010185h Table 3-2: ATA Configuration This pin has an internal pull-up resistor, and if left unconnected, will default to ‘1’. Otherwise, tie this pin high (1,) or low (0) to select the desired mode. It is recommended that this pin to be tied to low (RAID Class) when Silicon Image drivers (RAID or Non-RAID) are used. Base Address 5 Enable Pin Name: BA5_EN Pin Number: 139 Base Address 5 Enable Jumper Pin. BA5_EN Pin 0 1 CONFIGURATION Base Address 5 Disabled ( Note 1) Base Address 5 Enabled SiI-DS-0069-C © 2006 Silicon Image, Inc. 30 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Table 3-3: Base Address 5 Configuration Note 1: Reading Base Address 5 returns all zeroes. This pin does not have an internal resistor and therefore must be tied high (1) or low (0) to select the desired mode. It is recommended that this pin is enabled (tied high)() for all configurations. Internal Scan Enable Pin Name: SCAN_EN Pin Number: 142 This pin when active (high) will place all scan flip-flops into a scan mode. This pin should be tied to ground for normal operation. Memory Chip Select Pin Name: MEM_CS_N Pin Number: 143 This pin is used to select and enable the external memory. It is active low SiI-DS-0069-C © 2006 Silicon Image, Inc. 31 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 4. Package Drawing 22.0 + 0.25 SQ 20.0 + 0.10 SQ 108 73 109 72 INDEX 37 144 PIN #1 0.50 NOM 0.22 + 0.05 36 Dimensions in millimeters 1.40 + 0.05 0.10 + 0.05 Figure 3-2: Package Drawing – 144 LQFP Part Ordering Number: SiI0680ACLU144 (144pin LQFP lead free package) SiI0680ACL144 (144pin LQFP standard package) SiI-DS-0069-C © 2006 Silicon Image, Inc. 32 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Pin 1 designator location Logo SiI0680ACL144 LLLLLL.LL YYWW SiI P/N Lot # (= Job#) Date Code Figure 3-3: Marking Specification – SiI0680ACL144 Pin 1 designator location Logo SiI0680ACLU144 LLLLLL.LL YYWW SiI P/N Lot # (= Job#) Date Code Figure 3-4: Marking Specification – SiI0680ACLU144 SiI-DS-0069-C © 2006 Silicon Image, Inc. 33 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 5. ASIC Block Diagram The PCI-680 ASIC contains the major logic modules shown in Figure 5-1. PCI680 PCI680_CORE Bus Interface Data FIFO Parallel ATA Channel #0 PCI DMA Engine PCI Interface Flash & EEPROM Interface Arbiter PCI DMA Engine Bus Interface Data FIFO 400 MHz Phase Locked Loop Parallel ATA Channel #1 Clock Select Figure 5-1: PCI-680 ASIC Block Diagram SiI-DS-0069-C © 2006 Silicon Image, Inc. 34 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. PCI Bus PCI_AD[31:00] PCI_CBE[3:0] PCI_IDSEL PCI_FRAME_N PCI_IRDY_N PCI_TRDY_N PCI_STOP_N PCI_DEVSEL_N PCI_PAR PCI_PERR_N PCI_SERR_N PCI_REQ_N PCI_GNT_N PCI_M66EN PCI_CLK PCI_RST_N Bits 32 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Type I/O I/O I I/O I/O I/O I/O I/O I/O I/O OD T I I I I Description PCI address/data bus PCI command/byte enables PCI ID select PCI FRAME# signal PCI IRDY# signal PCI TRDY# signal PCI STOP# signal PCI DEVSEL# signal PCI parity bit PCI parity error signal PCI system error signal PCI bus request PCI bus grant PCI 66 MHz enable PCI clock PCI bus reset Table 5-1: PCI Bus Signals Group IDE Channel #0 IDE0_DD[15:00] IDE0_CS0_N IDE0_CS1_N IDE0_DA0 IDE0_DA1 IDE0_DA2 IDE0_DIOR_N IDE0_DIOW_N IDE0_DMACK_N IDE0_CBLID_N IDE0_INTRQ IDE0_IORDY IDE0_AT_REXT IDE0_DMARQ IDE0_RST_N Bits 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Type I/O I/O I/O I/O I/O I/O I/O I/O I/O I I I I/O I I/O Description IDE data bus IDE chip select IDE chip select IDE device address IDE device address IDE device address IDE device IO read IDE device IO write IDE DMA acknowledge IDE cable ID IDE interrupt request IDE IO channel ready IDE external bias circuit IDE DMA request IDE reset Table 5-2: IDE Channel #0 Signals Group IDE Channel #1 IDE1_DD[15:00] IDE1_CS0_N IDE1_CS1_N IDE1_DA0 IDE1_DA1 IDE1_DA2 IDE1_DIOR_N IDE1_DIOW_N IDE1_DMACK_N IDE1_CBLID_N IDE1_INTRQ IDE1_IORDY IDE1_AT_REXT IDE1_DMARQ IDE1_RST_N Bits 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Type I/O I/O I/O I/O I/O I/O I/O I/O I/O I I I I/O I I/O Description IDE data bus IDE chip select IDE chip select IDE device address IDE device address IDE device address IDE device IO read IDE device IO write IDE DMA acknowledge IDE cable ID IDE interrupt request IDE IO channel ready IDE external bias circuit IDE DMA request IDE reset Table 5-3: IDE Channel #1 Signals Group SiI-DS-0069-C © 2006 Silicon Image, Inc. 35 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. FLASH Interface IDE0_DD[07] IDE0_DD[05] IDE0_DD[08] IDE0_DD[09] IDE0_DD[04] IDE0_DD[03] IDE0_DD[10] IDE0_DD[00] IDE0_DA2 IDE0_DD[01] IDE0_DD[02] IDE0_DD[11] IDE0_DD[12] IDE0_DD[13] IDE0_DD[14] IDE0_DD[15] IDE0_DA0 IDE0_CS0_N IDE0_CS1_N IDE1_DD[07] IDE1_DD[06] IDE1_DD[05] IDE1_DD[04] IDE1_DD[11] IDE1_DD[10] IDE1_DD[09] IDE1_DD[08] IDE0_DA1 IDE0_DD[06] MEM_CS_N Bits 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Type O O O O O O O O O O O O O O O O O O O I/O I/O I/O I/O I/O I/O I/O I/O O O O Description FLASH memory address bit 18 FLASH memory address bit 17 FLASH memory address bit 16 FLASH memory address bit 15 FLASH memory address bit 14 FLASH memory address bit 13 FLASH memory address bit 12 FLASH memory address bit 11 FLASH memory address bit 10 FLASH memory address bit 09 FLASH memory address bit 08 FLASH memory address bit 07 FLASH memory address bit 06 FLASH memory address bit 05 FLASH memory address bit 04 FLASH memory address bit 03 FLASH memory address bit 02 FLASH memory address bit 01 FLASH memory address bit 00 FLASH memory data bit 07 FLASH memory data bit 06 FLASH memory data bit 05 FLASH memory data bit 04 FLASH memory data bit 03 FLASH memory data bit 02 FLASH memory data bit 01 FLASH memory data bit 00 FLASH memory read strobe FLASH memory write strobe FLASH memory chip select Table 5-4: PCI-680 FLASH Memory Signals Group – Shared Signals EEPROM Interface IDE1_CS1_N IDE1_CS0_N Bits 1 1 Type O O Description EEPROM serial data EEPROM serial clock Table 5-5: PCI-680 EEPROM Memory Signals Group – Shared Signals Test Mode Signals SCAN_EN TEST_MODE Bits 1 1 Type I I Description ASIC internal scan mode enable ASIC test mode enable Table 5-6: PCI-680 Test Signals Group SiI-DS-0069-C © 2006 Silicon Image, Inc. 36 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 6. Clocking System The SiI 0680A ASIC utilizes an on-chip 400 MHz PLL to synthesize the clock frequencies required to support the various ATA modes. The clock frequency for the ATA UDMA mode logic is software programmable for 66, 100 or 133 MHz. The ATA clock can also be disabled. The clock frequency for the PCI interface logic and most of the device is derived from the 33 MHz PCI bus clock. The clock tree for ATA Channel #1 is offset by 5 nsec relative to the clock tree for IDE Channel #0. This reduces the amount of simultaneous switching activity within the core and on external pins. Several test modes within the clocking system are required for PLL and internal scan testing. These topics are covered in Chapter 10. SYS_NAND_TEST Test Register JP Nand Tree 1 PCI_INTA_N Normal Function 0 Normal Function 0 4K RST_PLL_TEST PCI_IDSEL & MEM_CS_N 1 & SCAN_MODE BA5_EN & 1 PLL_TEST_CLK_SEL P_CLK 33 MHz 2 & 0 SYS_IDE_CLKSEL[1:0] 2 PLL_TEST_MODE TEST_MODE PCI_GNT_N 3 & 3 133 MHz 2 0 1 1 0 I0_CLK ( FB Clock ) (Ref Clock) PLL PCI_CLK 100 MHz 0 (Test Clock) IDE0_DMARQ 2 5ns 2 2 0 1 1 I1_CLK PCI_CLK x 2 (Test Clock) IDE0_CBLID_N IDE1_CBLID_N SCAN_EN (Test Clock) To all scan flip flops Figure 6-1: SiI 0680A Clocking System and Test Feature Diagram SiI-DS-0069-C © 2006 Silicon Image, Inc. 37 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 7. Phased Locked Loop (PLL) 7.1 PLL Connections The SiI 0680A ASIC utilizes an on-chip Phase Locked Loop (PLL) for high frequency clock synthesis. The PLL is designed to generate a 400 MHz internal clock, which is divided down to produce the clocks for the ATA UDMA interface logic, and is further divided down to produce 33 MHz for the system logic. 7.1.1 PLL Schematic The schematic of PLL related components are shown in Figure 7-1. Reference Designators shown are for illustration purposes only and do not reflect those on the evaluation board. The values are subject to change. Please contact Silicon Image for the latest revision of the schematic for current reference designators and component values used on evaluation boards. Figure 7-1: Schematic of PLL Circuitry SiI-DS-0069-C © 2006 Silicon Image, Inc. 38 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 7.1.2 PLL Components Recommended part specifications: 1.) Ferrite Bead = 40 Ohm, 300ma, 0805 Qty = 1 Ref Des. = L1 Example Part Numbers: ACT DCB-0805 Steward-USA LI0805E400R AEM MCB0805F400 2.) Resistor = Metal Film, 10.5K Ohm, 1%, 1/10W, 0805 Qty = 1 Ref Des. = R3 Example Part Numbers: Rohm – MCR10-EZHM-F-1052 KOA – RM73-B-2A-T-1052-F Meritek – CR10-1052-F Dale – CRCW0805-1052FT 3.) Resistor = Metal Film, 10.0K Ohm, 1%, 1/10W, 0805 Qty = 1 Ref Des. = R2 Example Part Numbers: Rohm – MCR10-EZHM-F-1002 KOA – RM73-B-2A-T-1002-F Meritek – CR10-1002-F Dale – CRCW0805-1002FT 4.) Resistor = Metal Film, 2.0K Ohm, 1%, 1/10W, 0805 Qty = 1 Ref Des. = R1 Example Part Numbers: Rohm – MCR10-EZHM-F-2001 KOA – RM73-B-2A-T-2001-F Meritek – CR10-2001-F Dale – CRCW0805-2001FT 5.) Capacitor = Ceramic, 6.8pF, 50V, 5%, NPO, 0805 Qty = 1 Ref Des. = C4 Example Part Numbers: AVX – 0805-5-A-689-J Rohm – MCH21-5A-6R8-JK Johanson – 101-R15-N-6R8-J-V4E Kemet – C0805C689J5GAC 6.) Capacitor = Ceramic, 220pF, 50V, 5%, NPO, 0805 Qty = 1 Ref Des. = C5 Example Part Numbers: AVX – 0805-5-A-221-J Rohm – MCH21-5A-221-JK Johanson – 101-R15-N-221-J-V4E Kemet – C0805C221J5GAC 7.) Capacitor = Ceramic, 0.01uF, 50V, 20%, Y5V, 0805 Qty = 2 Ref Des. = C1, C3 Example Part Numbers: AVX – 0805-5-G-103-M Rohm – MCH21-5-C-103-KK Johanson – 500-R15-Z-103-M-V6E Kemet – C0805C103M5UAC 8.) Capacitor = Ceramic, 0.1uF, 50V, 20%, X7R, 0805 Qty = 1 Ref Des. = C2 Example Part Numbers: AVX – 0805-5-C-104-KATMA Rohm – MCH21-5-E-104-M Johanson – 500-R15-W-104-M-V4E SiI-DS-0069-C © 2006 Silicon Image, Inc. 39 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Kemet – C0805C104M5UAC 7.1.3 PLL Layout Requirements The SiI 0680A uses a high speed Phase Lock Loop (PLL) for clock generation. The layout of this high-speed analog circuit is critical to the proper operation of the circuit. Power and Ground Planes should be used with the Ground Plane located directly under the top external layer. Isolated “islands” for power and ground plane should be used to isolate high-speed digital currents from the PLL circuitry. The isolated planes should be identical in size and shape. Figures 7-2 and 7-3 show an example 4-layer layout. The SiI 0680A’s pin PLL_VDD (pin 2) should be connected to the isolated PLL_VDD plane. This plane should be completely isolated with no connection to the main power plane. The SiI 0680A’s pin PLL_GND (pin 6) should be connected to the isolated PLL_GND plane. The “island” should be connected to the ground plane with a narrow “bridge” of at least 0.015” width of copper. Locate this “bridge” directly under L1 as shown in Figure 7-2. The PLL components (C2, C3, C4, C5, R1, R2, and R3) should be mounted on top of the PLL_GND “island”. The island should cover all areas under the components, their pads and connected traces. No PLL circuitry should be exposed (be located on top of) to either the main ground plane or cut in the planes. Only the listed PLL components should connect to the “island”. No other ground connections should be made there. It is important to keep the trace lengths short. No high-speed digital signals should be allowed to pass through, above or below, any portion of the power and ground “islands”. Take extra care to make sure the data bits located on pins 8 through 15 are routed clear of the “islands”. SiI-DS-0069-C © 2006 Silicon Image, Inc. 40 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Figure 7-2: Example Layout – Ground Plane SiI-DS-0069-C © 2006 Silicon Image, Inc. 41 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Figure 7-2: Example Layout – Power Plane SiI-DS-0069-C © 2006 Silicon Image, Inc. 42 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 8. Auto-Initialization The SiI 0680A ASIC supports an external FLASH and/or EEPROM device for BIOS extensions and user-defined PCI configuration header data. Interface to either memory device is performed through a set of special function ATA pins. These pins are active in the SiI 0680A auto-initialization mode after release of PCI_RST_N, and return to normal ATA function mode after the auto-initialization is complete. 8.1 Auto-Initialization from FLASH The SiI 0680A initiates the FLASH detection and configuration space loading sequence upon the release of PCI_RST_N. It begins by reading the highest two addresses (7FFFFH and 7FFFEH), checking for the correct data signature pattern – AAH and 55H, respectively. If the data signature pattern is correct, the SiI 0680A continues to sequence the address downward, reading a total of twelve bytes. If the Data Signature is correct (55H at 7FFFCH), the last eight bytes are loaded into the PCI Configuration Space registers. Note: If both Flash and EEPROM are installed, the PCI Configuration Space registers will be loaded with EEPROM’s data. While the sequence is active, the SiI 0680A responds to all PCI bus accesses with a Target Retry. MEM_ADDR 7FFFF 7FFFE 7FFFD 7FFFC 7FFFB 7FFFA 7FFF9 7FFF8 7FFF7 7FFF6 7FFF5 7FFF4 MEM_DATA D00 D01 D02 D03 D04 D05 D06 D07 D08 D09 D10 D11 MEM_RD_N MEM_WR_N t1 t2 MEM_CS_N PCI_RST_N Figure 8-1: Auto-Initialization from Flash Timing Parameter Value Description t1 660 ns PCI reset to Flash Auto-Initialization cycle begin t2 7200 ns Flash Auto-Initialization cycle time Table 8-1: Auto-Initialization from Flash Timing SiI-DS-0069-C © 2006 Silicon Image, Inc. 43 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Address Data Byte Description 7FFFFH D00 Data Signature = AAH 7FFFEH D01 Data Signature = 55H 7FFFDH D02 AA = 120 ns FLASH device / Else, 240 ns FLASH device 7FFFCH D03 Data Signature = 55H 7FFFBH D04 PCI Device ID [23:16] 7FFFAH D05 PCI Device ID [31:24] 7FFF9H D06 PCI Class Code [15:08] 7FFF8H D07 PCI Class Code [23:16] 7FFF7H D08 PCI Sub-System Vendor ID [07:00] 7FFF6H D09 PCI Sub-System Vendor ID [15:08] 7FFF5H D10 PCI Sub-System ID [23:16] 7FFF4H D11 PCI Sub-System ID [31:24] Table 8-2: FLASH Data Description 8.2 Auto-Initialization from EEPROM The SiI 0680A initiates the EEPROM detection and configuration space loading sequence after the FLASH read sequence. The SiI 0680A supports up to 256 byte EEPROM with a 2-wire serial interface. The sequence of operations consists of the following. 1) START condition defined as a high-to-low transition on SDAT while SCLK is high. 2) Control byte = 1010 (Control Code) + 000 (Chip Select) + 0 (Write Address) 3) Acknowledge 4) Starting address field = 00000000. 5) Acknowledge 6) Sequential data bytes separated by Acknowledges. 7) STOP condition. While the sequence is active, the SiI 0680A responds to all PCI bus accesses with a Target Retry. S 1 0 1 0 0 0 0 W A D D D N P SDAT t1 t2 SCLK t3 MEM_CS_N Figure 8-2: Auto-Initialization from EEPROM Timing SiI-DS-0069-C © 2006 Silicon Image, Inc. 44 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Parameter Value Description 26.00 μs End of Auto-Initialization from FLASH to start of Auto-Initialization from EEPROM t2 2.66 ms Auto-Initialization from EEPROM cycle time t3 19.26 μs EEPROM serial clock period t1 Table 8-3: Auto-Initialization from EEPROM Timing Parameter Description S START condition W R/W 0 = Write Command, 1 = Read Command A Acknowledge D Serial data N No-Acknowledge P STOP condition Table 8-4: Auto-Initialization from EEPROM Timing Symbols Address Data Byte Description 00H D00 Memory Present Pattern = AAH 01H D01 Memory Present Pattern = 55H 02H D02 Data Signature = AAH 03H D03 Data Signature = 55H 04H D04 PCI Device ID [23:16] 05H D05 PCI Device ID [31:24] 06H D06 PCI Class Code [15:08] 07H D07 PCI Class Code [23:16] 08H D08 PCI Sub-System Vendor ID [07:00] 09H D09 PCI Sub-System Vendor ID [15:08] 0AH D0A PCI Sub-System ID [23:16] 0BH D0B PCI Sub-System ID [31:24] Table 8-5: EEPROM Data Description SiI-DS-0069-C © 2006 Silicon Image, Inc. 45 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9. Register Definitions This section describes the registers within the SiI 0680A PCI-ATA host controller ASIC. 9.1 PCI Configuration Space The PCI Configuration Space registers define the operation of the SiI 0680A on the PCI bus. These registers are accessible only when the SiI 0680A detects a Configuration Read or Write operation, with its IDSEL asserted, on the 32-bit PCI bus. Table 9-1, outlines the PCI Configuration space for the SiI 0680A. Address Offset Register Name Access Type 31 16 15 00 00H Device ID (0680h) Vendor ID (1095h) R/W 04H PCI Status PCI Command R/W 08H 0CH PCI Class Code BIST Header Type Latency Timer Revision ID R/W Cache Line Size R/W 10H Base Address Register 0 R/W 14H Base Address Register 1 R/W 18H Base Address Register 2 R/W 1CH Base Address Register 3 R/W 20H Base Address Register 4 R/W 24H Base Address Register 5 R/W 28H Reserved - 2CH Subsystem ID (0680h) 30H Expansion ROM Base Address 34H Reserved 38H 3CH 40H Subsystem Vendor ID (1095h) R/W Capabilities Ptr Reserved Max Latency Min Grant Interrupt Pin Reserved R/W R R/W Interrupt Line R/W Configuration R/W 44H Software Data Register R/W 48H Reserved - 4CH Reserved - 50H Reserved - Table 9-1: PCI-680 PCI Configuration Space SiI-DS-0069-C © 2006 Silicon Image, Inc. 46 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Address Offset Register Name 31 16 Access Type 15 00 54H Reserved - 58H Reserved - 5CH Reserved - 60H 64H Power Management Capabilities Data Next Item Pointer Reserved Capability ID Functions Control and Status R/W R/W 68H Reserved - 6CH Reserved - 70H Reserved 74H 78H 7CH PCI Bus Master Status – IDE0 Reserved PCI Bus Master Command – IDE0 PRD Table Address – IDE0 Reserved PCI Bus Master Status – IDE1 Reserved R/W R/W PCI Bus Master Command – IDE1 PRD Table Address – IDE1 R/W R/W 80H Reserved IDE0 Data Transfer Mode R/W 84H Reserved IDE1 Data Transfer Mode R/W 88H System Configuration Status System Command R/W 8CH System Software Data R/W 90H FLASH Memory Address – Command + Status R/W 94H 98H 9CH Reserved Flash Memory Data EEPROM Memory Address – Command + Status Reserved IDE0 R/W EEPROM Memory Data R/W IDE0 R/W A0H IDE0 TF Timing A4H IDE0 Device 1 PIO Timing IDE0 Device 0 PIO Timing R/W A8H IDE0 Device 1 DMA Timing IDE0 Device 0 DMA Timing R/W ACH IDE0 Device 1 UDMA Timing IDE0 Device 0 UDMA Timing R/W B0H IDE1 TF Timing B4H IDE1 Device 1 PIO Timing IDE1 Device 0 PIO Timing R/W B8H IDE1 Device 1 DMA Timing IDE1 Device 0 DMA Timing R/W BCH IDE1 Device 1 UDMA Timing IDE1 Device 0 UDMA Timing R/W IDE1 Config + Status R/W Config + Status Cmd + Status IDE1 Cmd R/W + Status Table 9-1: SiI 0680A PCI Configuration Space (continued) SiI-DS-0069-C © 2006 Silicon Image, Inc. 47 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.1 Device ID – Vendor ID Address Offset: 00H Access Type: Read /Write Reset Value: 0x0680_1095 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device ID Vendor ID This register defines the Device ID and Vendor ID associated with the SiI 0680A. The register bits are defined below. • • Bit [31:16]: Device ID (R/W) – Device ID. This value in this bit field is determined by any one of three options: • 1) This field defaults to 0x0680 to identify the device as a Silicon Image SiI 0680A. • 2) loaded from an external memory device : If an external memory device – FLASH or EEPROM – is present with the correct signature, the PCI Class Code is loaded from that device after reset. The correct signature for an EEPROM device is the data pattern 55AAH at addresses [03H:02H] and 55AAH at addresses [01H:00H]. The correct signature for a FLASH device is the data pattern AA55H at addresses [7FFFFH:7FFFEH] and 55H at address 7FFFCH. See chapter 8 for details. • 3) system programmable : If Bit 0 of the Configuration register (40H) is set, to enables writes, the three bytes are system programmable. Bit [15:00]: Vendor ID (R) – Vendor ID. This field defaults to 0x1095 to identify the vendor as Silicon Image/CMD Technology. 9.1.2 PCI Status – PCI Command Address Offset: 04H Access Type: Read/Write/Write-One-to-Clear Reset Value: 0x0290_0000 IO Space Bus Master Memory Space Special Cycles VGA Palette Memory Wr & Inv Par Error Address Stepping Fast B-to-B Reserved SERR Enable 66 MHz Capable Capabilities List Reserved Fast B-to-B Det M Data Par Err Devsel Timing Sig T Abort Rcvd T Abort Rcvd M Abort Det Par Err Sig Sys Err 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the various control functions associated with the PCI bus. The register bits are defined below. • • • • • • • • • Bit 31: Det. Par Err (R/W1C) – Detected Parity Error. This bit set indicates that the SiI 0680A detected a parity error on the PCI bus-address or data parity error-while responding as a PCI target. Bit 30: Sig. Sys Err (R/W1C) – Signaled System Error. This bit set indicates that the SiI 0680A signaled SERR on the PCI bus. Bit 29: Rcvd M Abort (R/W1C) – Received Master Abort. This bit set indicates that the SiI 0680A terminated a PCI bus operation with a Master Abort. Bit 28: Rcvd T Abort (R/W1C) – Received Target Abort. This bit set indicates that the SiI 0680A received a Target Abort termination. Bit 27: Sig. T Abort (R/W1C) – Signaled Target Abort. This bit set indicates that the SiI 0680A terminated a PCI bus operation with a Target Abort. Bit [26:25]: Devsel Timing (R) – Device Select Timing. This bit field indicates the DEVSEL timing supported by the SiI 0680A. The hardwired value is 01B for Medium decode timing. Bit 24: Det M Data Par Err (R/W1C) – Detected Master Data Parity Error. This bit set indicates that the SiI 0680A, as bus master, detected a parity error on the PCI bus. The parity error may be either reported by the target device via PERR# on a write operation or by the SiI 0680A on a read operation. Bit 23: Fast B-to-B Capable (R) – Fast Back-to-Back Capable. This bit is hardwired to 1 to indicate that the SiI 0680A is Fast Back-to-Back capable as a PCI target. Bit 22: Reserved (R). SiI-DS-0069-C © 2006 Silicon Image, Inc. 48 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. • • • • • • • • • • • • • Bit 21: 66 MHz Capable (R) – 66 MHz PCI Operation Capable. This bit is hardwired to 0 to indicate that the SiI 0680A is not 66 MHz capable. Bit 20: Capabilities List (R) – PCI Capabilities List. This bit is hardwired to 1 to indicate that the SiI 0680A has a PCI Power Management Capabilities register linked at offset 34H. Bit [19:10]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit 09: Fast B-to-B Enable (R) – Fast Back-to-Back Enable. This bit is hardwired to 0 to indicate that the SiI 0680A does not support Fast Back-to-Back operations as bus master. Bit 08: SERR Enable (R/W) – SERR Output Enable. This bit set enables the SiI 0680A to drive the PCI SERR# pin when it detects an address parity error. The Parity Error Response bit (06) must also be set to enable SERR# reporting. Bit 07: Address Stepping (R) – Address Stepping Enable. This bit is hardwired to 0 to indicate that the SiI 0680A does not support Address Stepping. Bit 06: Par Error Response (R/W) – Parity Error Response Enable. This bit set enables the SiI 0680A to respond to parity errors on the PCI bus. If this bit is cleared, the SiI 0680A will ignore PCI parity errors. Bit 05: VGA Palette (R) – VGA Palette Snoop Enable. This bit is hardwired to 0 to indicate that the SiI 0680A does not support VGA Palette Snooping. Bit 04: Mem Wr & Inv (R) – Memory Write and Invalidate Enable. This bit is hardwired to 0 to indicate that the SiI 0680A does not support Memory Write and Invalidate. Bit 03: Special Cycles (R) – Special Cycles Enable. This bit is hardwired to 0 to indicate that the SiI 0680A does not respond to Special Cycles. Bit 02: Bus Master (R/W) – Bus Master Enable. This bit set enables the SiI 0680A to act as PCI bus master. Bit 01: Memory Space (R/W) – Memory Space Enable. This bit set enables the SiI 0680A to respond to PCI memory space access. Bit 00: IO Space (R/W) – IO Space Enable. This bit set enables the SiI 0680A to respond to PCI IO space access. 9.1.3 PCI Class Code – Revision ID Address Offset: 08H Access Type: Read/Write Reset Value: 0x0101_8501 IDE0 Mode Prog IDE0 Pwr-Up Mode PCI Prog Int IDE1 Pwr-Up Mode PCI Class Code IDE1 Mode Prog 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Revision ID This register defines the various control functions associated with the PCI bus. The register bits are defined below. • • Bit [31:08]: PCI Class Code (R) – PCI Class Code. This value in this bit field is determined by any one of three options: • 1) the default value, set by an external jumper: If JP = 0, the value is 010400h for RAID mode If JP = 1, the value is 010185h for ATA mode • 2) loaded from an external memory device : If an external memory device – FLASH or EEPROM – is present with the correct signature, the PCI Class Code is loaded from that device after reset. The correct signature for an EEPROM device is the data pattern 55AAH at addresses [03H:02H] and 55AAH at addresses [01H:00H]. The correct signature for a FLASH device is the data pattern AA55H at addresses [7FFFFH:7FFFEH] and 55H at address 7FFFCH. See chapter 8 for details. • 3) system programmable : If Bit 0 of the Configuration register (40H) is set, to enables writes, the three bytes are system programmable. Bit [07:00]: Revision ID (R) – Chip Revision ID. This bit field is hardwired to 01H to indicate the first revision silicon. SiI-DS-0069-C © 2006 Silicon Image, Inc. 49 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.4 BIST – Header Type – Latency Timer – Cache Line Size Address Offset: 0CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 BIST Header Type Latency Timer Cache Line Size This register defines the various control functions associated with the PCI bus. The register bits are defined below. • • • • Bit [31:24]: BIST (R). This bit field is hardwired to 00H. Bit [23:16]: Header Type (R). This bit field is hardwired to 00H. Bit [15:08]: Latency Timer (R/W). This bit field is used to specify the time in number of PCI clocks, the SiI 0680A as a master is still allowed to control the PCI bus after its GRANT_L is deasserted. The lower four bits [0B:08] are hardwired to 0 H , resulting in a time granularity of 16 clocks. Bit [07:00]: Cache Line Size (R/W). This bit field is used to specify the system cacheline size in terms of 32-bit words. The upper 2 bits are not used, resulting a maximum size of 64 32-bit words. With the SiI 0680A as a master, initiating a read transaction, it issues PCI command Read Multiple in place , when empty space in its FIFO is larger than the value programmed in this register. 9.1.5 Base Address Register 0 Address Offset: 10H Access Type: Read/Write Reset Value: 0x0000_0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Base Address Register 0 Not Used This register defines the addressing of various control functions within the SiI 0680A. The register bits are defined below. • • Bit [31:03]: Base Address Register 0 (R/W). This register defines the I/O Space base address for the IDE Channel #0 task file registers. Bit [02:00]: Base Address Register 0 (R). This bit field is not used and is hardwired to 001B 9.1.6 Base Address Register 1 Address Offset: 14H Access Type: Read/Write Reset Value: 0x0000_0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Base Address Register 1 Not Used This register defines the addressing of various control functions within the SiI 0680A. The register bits are defined below. • • Bit [31:02]: Base Address Register 1 (R/W). This register defines the I/O Space base address for the IDE Channel #0 Device Control- Alternate Status register. Bit [01:00]: Base Address Register 1 (R). This bit field is not used and is hardwired to 01B. SiI-DS-0069-C © 2006 Silicon Image, Inc. 50 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.7 Base Address Register 2 Address Offset: 18H Access Type: Read/Write Reset Value: 0x0000_0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Base Address Register 2 Not Used This register defines the addressing of various control functions within the SiI 0680A. The register bits are defined below. • • Bit [31:03]: Base Address Register 2 (R/W). This register defines the I/O Space base address for the IDE Channel #1 task file registers. Bit [02:00]: Base Address Register 2 (R). This bit field is not used and is hardwired to 001B. 9.1.8 Base Address Register 3 Address Offset: 1CH Access Type: Read/Write Reset Value: 0x0000_0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Base Address Register 3 Not Used This register defines the addressing of various control functions within the SiI 0680A. The register bits are defined below. • • Bit [31:02]: Base Address Register 3 (R/W). This register defines the I/O Space base address for the IDE Channel #1 Device Control- Alternate Status register. Bit [01:00]: Base Address Register 3 (R). This bit field is not used and is hardwired to 01B. 9.1.9 Base Address Register 4 Address Offset: 20H Access Type: Read/Write Reset Value: 0x0000_0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Base Address Register 4 Not Used This register defines the addressing of various control functions within the SiI 0680A. The register bits are defined below. • • Bit [31:04]: Base Address Register 4 (R/W). This register defines the I/O Space base address for the PCI bus master registers. Bit [03:00]: Base Address Register 4 (R). This bit field is not used and is hardwired to 0001B. SiI-DS-0069-C © 2006 Silicon Image, Inc. 51 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.10 Base Address Register 5 Address Offset: 24H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Base Address Register 5 Not Used This register defines the addressing of various control functions within the SiI 0680A. This register is enabled when input BA5_EN is set to one. See section 3.1.5 for descriptions. The register bits are defined below. • • Bit [31:08]: Base Address Register 5 (R/W). This register defines the Memory Space base address for all Silicon Image driver specific functions. Bit [07:00]: Base Address Register 5 (R). This bit field is not used and is hardwired to 00H. 9.1.11 Subsystem ID – Subsystem Vendor ID Address Offset: 2CH Access Type: Read/Write Reset Value: 0x0680_1095 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Subsystem ID Subsystem Vendor ID This register defines the Subsystem ID fields associated with the PCI bus. See chapter 8 for details. The register bits are defined below. • • Bit [31:16]: Subsystem ID (R) – Subsystem ID. Bit [15:00]: Subsystem Vendor ID (R) – Subsystem Vendor ID. The value in this bit field is determined by any one of three options: • 1) Bit [31:16]: Subsystem ID (R) – Subsystem ID defaults to 0680AH. Bit [15:00]: Subsystem Vendor ID (R) – Subsystem Vendor ID defaults to 1095H. • 2) loaded from an external memory device : If an external memory device – FLASH or EEPROM – is present with the correct signature, the PCI Class Code is loaded from that device after reset. The correct signature for an EEPROM device is the data pattern 55AAH at addresses [03H:02H] and 55AAH at addresses [01H:00H]. The correct signature for a FLASH device is the data pattern AA55H at addresses [7FFFFH:7FFFEH] and 55H at address 7FFFCH. See chapter 8 for details. • 3) system programmable : If Bit 0 of the Configuration register (40H) is set, to enables writes, the three bytes are system programmable. SiI-DS-0069-C © 2006 Silicon Image, Inc. 52 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.12 Expansion ROM Base Address Address Offset: 30H Access Type: Read/Write Reset Value: 0x0000_0000 Expansion ROM Base Address Exp ROM Enable 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Not Used This register defines the Expansion ROM base address associated with the PCI bus. The register bits are defined below. • • • Bit [31:19]: Expansion ROM Base Address (R/W) – Expansion ROM Base Address. This bit field defines the upper bits of the Expansion ROM base address. Bit [18:01]: Not Used (R). This bit field is hardwired to 00000H. The minimum Expansion ROM address range is 512K bytes. Bit [00]: Exp ROM Enable (R/W) – Expansion ROM Enable. This bit is set to enable the Expansion ROM access. 9.1.13 Capabilities Pointer Address Offset: 34H Access Type: Read Reset Value: 0x0000_0060 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Capabilities Pointer This register defines the link to a list of new capabilities associated with the PCI bus. The register bits are defined below. • • Bit [31:08]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [07:00]: Capabilities Pointer (R) – Capabilities Pointer. This bit field defaults to 60H to define the address for the 1st entry in a list of PCI Power Management capabilities. 9.1.14 Max Latency – Min Grant – Interrupt Pin – Interrupt Line Address Offset: 3CH Access Type: Read/Write Reset Value: 0x0000_0100 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Max Latency Min Grant Interrupt Pin Interrupt Line This register defines the various control functions associated with the PCI bus. The register bits are defined below. • • • • Bit [31:24]: Max Latency (R) – Maximum Latency. This bit field is hardwired to 00H. Bit [23:16]: Min Grant (R) – Minimum Grant. This bit field is hardwired to 00H. Bit [15:08]: Interrupt Pin (R) – Interrupt Pin Used. This bit field is hardwired to 01H to indicate that the SiI 0680A uses the INTA# interrupt. Bit [07:00]: Interrupt Line (R/W) – Interrupt Line. This bit field is used by the system to indicate interrupt line routing information. The SiI 0680A does not use this information. SiI-DS-0069-C © 2006 Silicon Image, Inc. 53 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.15 Configuration Address Offset: 40H Access Type: Read/Write Reset Value: 0x0000_0000 PCI Hdr Wr Ena 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved This register defines the various control functions associated with the PCI bus. The register bits are defined below. • • Bit [31:01]: Reserved (R). This bit field is hardwired to 00000000H. Bit [00]: PCI Hdr Wr Ena (R/W) – PCI Configuration Header Write Enable. This bit is set to enable write access to the following registers in the PCI Configuration Header: Device ID (03-02H), PCI Class Code (09-0BH), Subsystem Vendor ID (2D-2CH), and Subsystem ID (2F-2EH). 9.1.16 Software Data Register Address Offset: 44H Access Type: Read/Write Reset Value: Undefined 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Software Data This register is used by the software for non-resettable data storage. The contents are unknown on power-up and are never cleared by any type of reset. 9.1.17 Power Management Capabilities Address Offset: 60H Access Type: Read Only Reset Value: 0x0622_0001 Reserved PME Clock Auxiliary Current Dev Special Init PPM D1 Support PME Support PPM D2 Support 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 PPM Rev Next Item Pointer Capability ID This register defines the power management capabilities associated with the PCI bus. The register bits are defined below. • • • • • • Bit [31:27]: PME Support (R) – Power Management Event Support. This bit field is hardwired to 00H to indicate that the SiI 0680A does not support PME. Bit [26]: PPM D2 Support (R) – PCI Power Management D2 Support. This bit is hardwired to 1 to indicate support for the D2 Power Management State. Bit [25]: PPM D1 Support (R) – PCI Power Management D1 Support. This bit is hardwired to 1 to indicate support for the D1 Power Management State. Bit [24:22]: Auxiliary Current (R) – Auxiliary Current. This bit field is hardwired to 000B. Bit [21]: Dev Special Init (R) – Device Special Initialization. This bit is hardwired to 1 to indicate that the SiI 0680A does not require special initialization Bit [20]: Reserved (R). This bit is reserved and returns zero on a read. SiI-DS-0069-C © 2006 Silicon Image, Inc. 54 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. • • • • Bit [19]: PME Clock (R) – Power Management Event Clock. This bit is hardwired to 0. The SiI 0680A does not support PME. Bit [18:16]: PPM Rev (R) – PCI Power Management Revision. This bit field is hardwired to 010B to indicate compliance with the PCI Power Management Interface Specification revision 1.1. Bit [15:08]: Next Item Pointer (R) – PCI Additional Capability Next Item Pointer. This bit field is hardwired to 00H to indicate that there are no additional items on the Capabilities List. Bit [07:00]: Capability ID (R) – PCI Additional Capability ID. This bit field is hardwired to 01H to indicate that this Capabilities List is a PCI Power Management definition. 9.1.18 Power Management Control + Status Address Offset: 64H Access Type: Read/Write Reset Value: 0x6400_4000 PPM Power State PPM Data Sel Reserved PME Ena Reserved PME Status PPM Data PPM Data Scale 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the power management capabilities associated with the PCI bus. The register bits are defined below. • • • • • • • • Bit [31:24]: PPM Data (R) – PCI Power Management Data. This bit field is hardwired to 64h. Bit [23:16]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [15]: PME Status (R) – PME Status. This bit field is hardwired to 0. The SiI 0680A does not support PME. Bit [14:13]: PPM Data Scale (R) – PCI Power Management Data Scale. This bit field is hardwired to 11B to indicate a scaling factor of one. Bit [12:09]: PPM Data Sel (R/W) – PCI Power Management Data Select. This bit field is set by the system to indicate which data field is to be reported through the PPM Data bits. Bit [08]: PME Ena (R) – PME Enable. This bit field is hardwired to 0. The SiI 0680A does not support PME. Bit [07:02]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [01:00]: PPM Power State (R/W) – PCI Power Management Power State. This bit field is set by the system to dictate the current Power State: 00 = D0 (Normal Operation), 01 = D1, 10 = D2, and 11 = D3 Hot. 9.1.19 PCI Bus Master – IDE0 Address Offset: 70H Access Type: Read/Write Reset Value: 0x0000_0000 PBM Enable Reserved Reserved Reserved PBM Rd-Wr PBM Error PBM Active IDE0 DMA Comp Reserved PBM DMA Cap 0 PBM Simplex Reserved PBM DMA Cap 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the PCI bus master register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to Base Address 4, Offset 00H, Base Address 5, Offset 00H, and Base Address 5, Offset 10H. See Section 9.7.1 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 55 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.20 PRD Table Address – IDE0 Address Offset: 74H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved PRD Table Address – IDE0 This register defines the PRD Table Address register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to Base Address 4, Offset 04H and Base Address 5, Offset 04H. See Section 9.7.2 for bit definitions. 9.1.21 PCI Bus Master – IDE1 Address Offset: 78H Access Type: Read/Write Reset Value: 0x0000_0000 PBM Enable Reserved Reserved Reserved PBM Rd-Wr PBM Error PBM Active IDE1 DMA Comp Reserved PBM DMA Cap 0 PBM Simplex Reserved PBM DMA Cap 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the PCI bus master register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to Base Address 4, Offset 08H, Base Address 5, Offset 08H, and Base Address 5, Offset 18H. See Section 9.7.3 for bit definitions. 9.1.22 PRD Table Address – IDE1 Address Offset: 7CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved PRD Table Address – IDE1 This register defines the PRD Table Address register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to Base Address 4, Offset 0CH and Base Address 5, Offset 0CH. See Section 9.7.4 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 56 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.23 Data Transfer Mode – IDE0 Address Offset: 80H Access Type: Read/Write Reset Value: 0x0000_0022 IDE0 Device 0 Transfer Mode Reserved Reserved Reserved IDE0 Device 1 Transfer Mode 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the transfer mode register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset B4H. See Section 9.7.38 for bit definitions. 9.1.24 Data Transfer Mode – IDE1 Address Offset: 84H Access Type: Read/Write Reset Value: 0x0000_0022 IDE1 Device 0 Transfer Mode Reserved Reserved Reserved IDE1 Device 1 Transfer Mode 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the transfer mode register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset F4H. See Section 9.7.52 for bit definitions. 9.1.25 System Configuration Status – Command Address Offset: 88H Access Type: Read/Write Reset Value: 0x0000_0000 PBM Module Rst ARB Module Rst Reserved FF1 Module Rst FF0 Module Rst IDE1 Module Rst IDE0 Module Rst Reserved Reserved BA5_EN IDE Clk Select IDE0 Int Block Reserved IDE1 Int Block 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the system configuration status and command register for the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 48H. See Section 9.7.13 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 57 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.26 System Software Data Register Address Offset: 8CH Access Type: Read/Write Reset Value: Undefined 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 System Software Data This register is used by the software for non-resettable data storage. The contents are unknown on power-up and are never cleared by any type of reset. The register bits are also mapped to Base Address 5, Offset 4CH. See Section 9.7.14 for bit definitions. 9.1.27 FLASH Memory Address – Command + Status Address Offset: 90H Access Type: Read/Write Reset Value: 0x0000_0000 This register defines the address and command/status register for FLASH memory interface in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 50H. See Section 9.7.15 for bit definitions. Mem Access Type Reserved Mem Access Start Reserved Mem Init Done 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Memory Address 9.1.28 FLASH Memory Data Address Offset: 94H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Memory Data This register defines the data register for FLASH memory interface in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 54H. See Section 9.7.16 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 58 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.29 EEPROM Memory Address – Command + Status Address Offset: 98H Access Type: Read/Write Reset Value: 0x0000_0000 Mem Access Type Reserved Mem Access Start Mem Error Reserved Mem Init Done 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Mem Address This register defines the address and command/status register for EEPROM memory interface in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 58H. See Section 9.7.17 for bit definitions. 9.1.30 EEPROM Memory Data Address Offset: 9CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Memory Data This register defines the data register for EEPROM memory interface in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 5CH. See Section 9.7.18 for bit definitions. 9.1.31 IDE0 Task File Timing + Configuration + Status Address Offset: A0H Access Type: Read/Write Reset Value: 0x6515_0100 Cable 80 Channel Rst Buffered Cmd Channel Tri-State Reserved Reserved Virtual DMA Int IORDY Monitoring Interrupt Status Watchdog Ena Recovery Count Watchdog Timeout Active Count Reserved Addr Setup Count Watchdog Int Ena 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the task file timing register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset A0H. See Section 9.7.33 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 59 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.32 IDE0 PIO Timing Address Offset: A4H Access Type: Read/Write Reset Value: 0x62DD_62DD 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the PIO timing register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset A4H. See Section 9.7.34 for bit definitions. 9.1.33 IDE0 DMA Timing Address Offset: A8H Access Type: Read/Write Reset Value: 0x4392_4392 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the DMA timing register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset A8H. See Section 9.7.35 for bit definitions. 9.1.34 IDE0 UDMA Timing Address Offset: ACH Access Type: Read/Write Reset Value: 0x4009_4009 Reserved Device 0 HSTROBE Delay Device 1 Cycle Time Count Device 0 DSTROBE Delay Device 0 Data Input Delay Reserved Device 1 HSTROBE Delay Device 1 DSTROBE Delay Device 1 Data Input Delay 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 0 Cycle Time Count This register defines the UDMA timing register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset ACH. See Section 9.7.36 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 60 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.35 IDE1 Task File Timing + Configuration + Status Address Offset: B0H Access Type: Read/Write Reset Value: 0x6515_0100 Cable 80 Channel Rst Buffered Cmd Reserved Channel Tri-State Virtual DMA Int IORDY Monitoring Interrupt Status Watchdog Ena Recovery Count Watchdog Timeout Active Count Reserved Addr Setup Count Watchdog Int Ena 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the task file timing register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset E0H. See Section 9.7.47 for bit definitions. 9.1.36 IDE1 PIO Timing Address Offset: B4H Access Type: Read/Write Reset Value: 0x62DD_62DD 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the PIO timing register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset E4H. See Section 9.7.48 for bit definitions. 9.1.37 IDE1 DMA Timing Address Offset: B8H Access Type: Read/Write Reset Value: 0x4392_4392 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the DMA timing register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset E8H. See Section 9.7.48 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 61 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.1.38 IDE1 UDMA Timing Address Offset: BCH Access Type: Read/Write Reset Value: 0x4009_4009 Reserved Device 0 HSTROBE Delay Device 1 Cycle Time Count Device 0 DSTROBE Delay Device 0 Data Input Delay Reserved Device 1 HSTROBE Delay Device 1 DSTROBE Delay Device 1 Data Input Delay 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 0 Cycle Time Count This register defines the UDMA timing register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset ECH. See Section 9.7.50 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 62 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.2 Internal Register Space – Base Address 0 These registers are 32-bits wide and define the internal operation of the SiI 0680A. The access types are defined as follows: R=read, W=write, and C=clearable by some write operation. Access to this register is through the PCI I/O space. Address Offset Register Name 31 16 Access Type 15 00 00H IDE0 TF Starting Sector Number IDE0 TF Sector Count IDE0 TF Features IDE0 TF Error IDE0 TF Data R/W 04H IDE0 TF Command+Status IDE0 TF Device+Head IDE0 TF Cylinder High IDE0 TF Cylinder Low R/W Table 9-2: SiI 0680A Internal Register Space – Base Address 0 9.2.1 IDE0 Task File Register 0 Address Offset: 00H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE0 Task File Starting Sector Number IDE0 Task File Sector Count IDE0 Task File Features (W) IDE0 Task File Error (R) IDE0 Task File Data This register defines one of the IDE Channel #0 Task File registers in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 80H. See Section 9.7.25 for bit definitions. 9.2.2 IDE0 Task File Register 1 Address Offset: 04H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE0 Task File Command + Status IDE0 Task File Device+Head IDE0 Task File Cylinder High IDE0 Task File Cylinder Low This register defines one of the IDE Channel #0 Task File registers in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 84H. See Section 9.7.26 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 63 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.3 Internal Register Space – Base Address 1 These registers are 32-bits wide and define the internal operation of the SiI 0680A. The access types are defined as follows: R=read, W=write, and C=clearable by some write operation. Access to this register is through the PCI I/O space. Address Offset Register Name 31 16 00H Reserved Access Type 15 00 Reserved IDE0 TF Device Control Auxiliary Status Reserved R/W Table 9-3: SiI 0680A Internal Register Space – Base Address 1 9.3.1 IDE0 Task File Register 2 Address Offset: 00H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved IDE0 Task File Device Control IDE0 Task File Auxiliary Status Reserved Reserved This register defines one of the IDE Channel #0 Task File registers in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset 88H. See Section 9.7.27 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 64 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.4 Internal Register Space – Base Address 2 These registers are 32-bits wide and define the internal operation of the SiI 0680A. The access types are defined as follows: R=read, W=write, and C=clearable by some write operation. Access to this register is through the PCI I/O space. Address Offset Register Name 31 16 Access Type 15 00 00H IDE1 TF Starting Sector Number IDE1 TF Sector Count IDE1 TF Features IDE1 TF Error IDE1 TF Data R/W 04H IDE1 TF Command+Status IDE1 TF Device+Head IDE1 TF Cylinder High IDE1 TF Cylinder Low R/W Table 9-4: SiI 0680A Internal Register Space – Base Address 2 9.4.1 IDE1 Task File Register 0 Address Offset: 00H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE1 Task File Starting Sector Number IDE1 Task File Sector Count IDE1 Task File Features (W) IDE1 Task File Error (R) IDE1 Task File Data This register defines one of the IDE Channel #1 Task File registers in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset C0H. See Section 9.7.39 for bit definitions. 9.4.2 IDE1 Task File Register 1 Address Offset: 04H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE1 Task File Command + Status IDE1 Task File Device+Head IDE1 Task File Cylinder High IDE1 Task File Cylinder Low This register defines one of the IDE Channel #1 Task File registers in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset C4H. See Section 9.7.40 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 65 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.5 Internal Register Space – Base Address 3 These registers are 32-bits wide and define the internal operation of the SiI 0680A. The access types are defined as follows: R=read, W=write, and C=clearable by some write operation. Access to this register is through the PCI I/O space. Address Offset Register Name 31 16 00H Reserved Access Type 15 00 Reserved IDE1 TF Device Control Auxiliary Status Reserved R/W Table 9-5: SiI 0680A Internal Register Space – Base Address 3 9.5.1 IDE1 Task File Register 2 Address Offset: 00H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved IDE1 Task File Device Control IDE1 Task File Auxiliary Status Reserved Reserved This register defines one of the IDE Channel #1 Task File registers in the SiI 0680A. The register bits are also mapped to Base Address 5, Offset C8H. See Section 9.7.41 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 66 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.6 Internal Register Space – Base Address 4 These registers are 32-bits wide and define the internal operation of the SiI 0680A. The access types are defined as follows: R=read, W=write, and C=clearable by some write operation. Access to this register is through the PCI I/O space. Address Offset Register Name 31 16 00H Reserved Access Type 15 00 PCI Bus Master Status – IDE0 04H Software Data PCI Bus Master Command – IDE0 R/W PRD Table Address – IDE0 08H Reserved PCI Bus Master Status – IDE1 0CH Reserved R/W PCI Bus Master Command – IDE1 R/W PRD Table Address – IDE1 R/W Table 9-6: SiI 0680A Internal Register Space – Base Address 4 9.6.1 PCI Bus Master – IDE0 Address Offset: 00H Access Type: Read/Write Reset Value: 0x0000_XX00 PBM Enable Reserved Reserved Software PBM Rd-Wr IDE Watchdog PBM Error PBM Active IDE0 DMA Comp Reserved PBM DMA Cap 0 PBM Simplex PBM DMA Cap 1 Reserved IDE1 DMA Comp 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the PCI bus master register for IDE Channel #0 in the SiI 0680A. See Section 9.7.1 for bit definitions. 9.6.2 PRD Table Address – IDE0 Address Offset: 04H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved PRD Table Address – IDE0 This register defines the PRD Table Address register for IDE Channel #0 in the SiI 0680A. The register bits are also mapped to PCI Configuration Space, Offset 74H and Base Address 5, Offset 04H. See Section 9.7.2 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 67 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.6.3 PCI Bus Master – IDE1 Address Offset: 08H Access Type: Read/Write Reset Value: 0x0000_0000 PBM Enable Reserved Reserved Reserved PBM Rd-Wr PBM Error PBM Active IDE1 DMA Comp Reserved PBM DMA Cap 0 PBM Simplex Reserved PBM DMA Cap 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the PCI bus master register for IDE Channel #1 in the SiI 0680A. See Section 9.7.3 for bit definitions. 9.6.4 PRD Table Address – IDE1 Address Offset: 0CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved PRD Table Address – IDE1 This register defines the PRD Table Address register for IDE Channel #1 in the SiI 0680A. The register bits are also mapped to PCI Configuration Space, Offset 7CH and Base Address 5, Offset 0CH. See Section 9.7.4 for bit definitions. SiI-DS-0069-C © 2006 Silicon Image, Inc. 68 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7 Internal Register Space – Base Address 5 These registers are 32-bits wide and define the internal operation of the SiI 0680A. The access types are defined as follows: R=read, W=write, and C=clearable by some write operation. Access to this register is through the PCI Memory space. The Base Address 5 can be disabled by setting input BA5_EN to low Address Offset 00H Register Name 31 16 Reserved 08H Reserved PCI Bus Master Status – IDE1 PCI Bus Master Command – IDE0 Reserved PCI Bus Master Status – IDE1 PCI Bus Master Status2 – IDE0 Software Data PCI Bus Master Command – IDE1 PCI Bus Master Status2 – IDE1 R/W R/W PCI Bus Master Command2 – IDE0 Reserved Reserved R/W R/W PRD Table Address – IDE1 14H 18H Software Data PRD Table Address – IDE0 0CH 10H 15 00 PCI Bus Master Status – IDE0 04H Access Type R/W Reserved PCI Bus Master Command2 – IDE1 R/W 1CH Reserved - 20H PRD Address – IDE0 R 24H PCI Bus Master Byte Count – IDE0 R 28H PRD Address – IDE1 R 2CH PCI Bus Master Byte Count – IDE1 R 30H Reserved - 34H Reserved - 38H Reserved - 3CH Reserved - 40H FIFO Valid Byte Count – IDE0 FIFO Wr Request Control – IDE0 FIFO Rd Request Control – IDE0 R/W 44H FIFO Valid Byte Count – IDE1 FIFO Wr Request Control – IDE1 FIFO Rd Request Control – IDE1 R/W 48H System Configuration Status System Command R/W 4CH System Software Data R/W 50H FLASH Memory Address – Command and Status R/W 54H 58H 5CH 60H Reserved Flash Memory Data EEPROM Memory Address – Command and Status Reserved EEPROM Memory Data FIFO Port – IDE0 R/W R/W R/W R/W SiI-DS-0069-C © 2006 Silicon Image, Inc. 69 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Address Offset Register Name 31 16 Access Type 15 00 64H Reserved - 68H FIFO Byte1 Write Pointer – IDE0 FIFO Byte1 Read Pointer – IDE0 FIFO Byte0 Write Pointer – IDE0 FIFO Byte0 Read Pointer – IDE0 R 6CH FIFO Byte3 Write Pointer – IDE0 FIFO Byte3 Read Pointer – IDE0 FIFO Byte2 Write Pointer – IDE0 FIFO Byte2 Read Pointer – IDE0 R 70H FIFO Port – IDE1 R/W 74H Reserved - 78H FIFO Byte1 Write Pointer – IDE1 FIFO Byte1 Read Pointer – IDE1 FIFO Byte0 Write Pointer – IDE1 FIFO Byte0 Read Pointer – IDE1 R 7CH FIFO Byte3 Write Pointer – IDE1 FIFO Byte3 Read Pointer – IDE1 FIFO Byte2 Write Pointer – IDE1 FIFO Byte2 Read Pointer – IDE1 R 80H IDE0 TF Starting Sector Number IDE0 TF Sector Count IDE0 TF Features IDE0 TF Error IDE0 TF Data R/W 84H IDE0 TF Command+Status IDE0 TF Device+Head IDE0 TF Cylinder High IDE0 TF Cylinder Low R/W 88H Reserved IDE0 TF Device Control Auxiliary Status Reserved Reserved R/W 8CH IDE0 Read Ahead Data R/W 90H IDE0 TF Starting Sector Number2 IDE0 TF Sector Count2 IDE0 TF Features2 IDE0 TF Error2 Reserved R/W 94H IDE0 TF Cmd+Sts2 IDE0 TF Device+Head2 IDE0 TF Cylinder High2 IDE0 TF Cylinder Low2 R/W 98H Reserved - 9CH IDE0 Virtual DMA/PIO Read Ahead Byte Count R/W A0H IDE0 TF Timing A4H IDE0 Device 1 PIO Timing IDE0 Device 0 PIO Timing R/W A8H IDE0 Device 1 DMA Timing IDE0 Device 0 DMA Timing R/W ACH IDE0 Device 1 UDMA Timing IDE0 Device 0 UDMA Timing R/W B0H IDE0 Config + Status IDE0 Cmd IDE0 Test Register B4H R/W + Status R/W Reserved IDE0 Data Transfer Mode R/W B8H Reserved - BCH Reserved - C0H IDE1 TF Starting Sector Number IDE1 TF Sector Count IDE1 TF Features IDE1 TF Error IDE1 TF Data R/W C4H IDE1 TF Command+Status IDE1 TF Device+Head IDE1 TF Cylinder High IDE1 TF Cylinder Low R/W C8H Reserved IDE1 TF Device Control Auxiliary Status Reserved R/W SiI-DS-0069-C © 2006 Silicon Image, Inc. 70 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Address Offset Register Name 31 16 Access Type 15 00 CCH IDE1 Read Ahead Data R/W D0H IDE1 TF Starting Sector Number2 IDE1 TF Sector Count2 IDE1 TF Features2 IDE1 TF Error2 Reserved R/W D4H IDE1 TF Cmd+Sts2 IDE1 TF Device+Head2 IDE1 TF Cylinder High2 IDE1 TF Cylinder Low2 R/W D8H Reserved - DCH IDE1 Virtual DMA/PIO Read Ahead Byte Count R/W E0H IDE1 TF Timing E4H IDE1 Device 1 PIO Timing IDE1 Device 0 PIO Timing R/W E8H IDE1 Device 1 DMA Timing IDE1 Device 0 DMA Timing R/W ECH IDE1 Device 1 UDMA Timing IDE1 Device 0 UDMA Timing R/W F0H IDE1 Config + Status IDE1 Cmd R/W + Status IDE1 Test Register F4H R/W Reserved IDE1 Data Transfer Mode R/W F8H Reserved - FCH Reserved - Table 9-7: SiI 0680A Internal Register Space – Base Address 5 9.7.1 PCI Bus Master – IDE0 Address Offset: 00H Access Type: Read/Write Reset Value: 0x0000_XX00 PBM Enable Reserved Reserved Software PBM Rd-Wr IDE Watchdog PBM Error PBM Active IDE0 DMA Comp Reserved PBM DMA Cap 0 PBM Simplex PBM DMA Cap 1 Reserved IDE1 DMA Comp 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the PCI bus master register for IDE Channel #0 in the SiI 0680A. The register bits are defined below. • • • • • • Bit [31:24]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [23]: PBM Simplex (R) – PCI Bus Master Simplex Only. This read-only bit field is hardwired to zero to indicate that both IDE channels can operate as PCI bus master at any time. Bit [22]: PBM DMA Cap 1 (R/W) – PCI Bus Master DMA Capable – Device 1. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [21]: PBM DMA Cap 0 (R/W) – PCI Bus Master DMA Capable – Device 0. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [20:19]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [18]: IDE0 DMA Comp (R/W1C) – IDE0 DMA Completion Interrupt. During write DMA operation, This bit set indicates that the IDE0 interrupt has been asserted and all data has been written to system memory. During Read DMA, This bit set indicates that the IDE0 interrupt has been asserted. SiI-DS-0069-C © 2006 Silicon Image, Inc. 71 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. • • • • • This bit must be W1C by software when set during DMA operation (bit 0 is set). During normal operation, this bit reflects IDE0 interrupt line. Bit [17]: PBM Error (R/W1C) – PCI Bus Master Error – IDE0. This bit set indicates that a PCI bus error occurred while the SiI 0680A was bus master. Additional information is available in the PCI Status register in PCI Configuration space. Bit [16]: PBM Active (R) – PCI Bus Master Active – IDE0. This bit set indicates that the SiI 0680A is currently active in a data transfer as PCI bus master. This bit is cleared by the hardware when all data transfers have completed or PBM Enable bit is not set. Bit[15] : IDE Watchdog Timer Status ( R ) – This bit is an Ored result of bit 12 in IDE0 Task File Timing + Configuration + Status and bit 12 of IDE1 Task File Timing + Configuration + Status registers. When set indicates that either IDE0 or IDE1 Watchdog timer has expired. Bit[14] : IDE1 Interrupt Status ( R ) – This bit is a copy of Bit[18] IDE1 DMA Completion Interrupt in PCI Bus Master – IDE1. Bit [13:08]: Software Data (R/W) – System Software Data Storage. This bit field is used for read/write data storage by the system. The properties of this bit field are detailed below. Bit Location Default Description [13:12] XXB Not cleared by any reset [11:10] 00B Cleared by PCI reset [09:08] XXB Cleared only by a D0-D3 power state change Table 9-8: Software Data Byte, Base Address 5, Offset 00H • • • • Bit [07:04]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [03]: PBM Rd-Wr (R/W) – PCI Bus Master Read-Write Control. This bit is set to specify a DMA write operation from IDE0 to system memory. This bit is cleared to specify a DMA read operation from system memory to an IDE0 device. Bit [02:01]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [00]: PBM Enable (R/W) – PCI Bus Master Enable – IDE0. This bit is set to enable PCI bus master operations for IDE Channel #0. PCI bus master operations can be halted by clearing this bit, but will erase all state information in the control logic. If this bit is cleared while the PCI bus master is active, the operation will be aborted and the data discarded. While this bit is set, accessing IDE0 Task File or PIO data registers will be terminated with Target-Abort. 9.7.2 PRD Table Address – IDE0 Address Offset: 04H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved PRD Table Address – IDE0 This register defines the PRD Table Address register for IDE Channel #0 in the SiI 0680A. The register bits are defined below. • • Bit [31:02]: PRD Table Address (R/W) – Physical Region Descriptor Table Address. This bit field defines the Descriptor Table base address. Bit [01:00]: Reserved (R). This bit field is reserved and returns zeros on a read. SiI-DS-0069-C © 2006 Silicon Image, Inc. 72 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.3 PCI Bus Master – IDE1 Address Offset: 08H Access Type: Read/Write Reset Value: 0x0000_0000 PBM Enable Reserved Reserved Reserved PBM Rd-Wr PBM Error PBM Active IDE1 DMA Comp Reserved PBM DMA Cap 0 PBM Simplex Reserved PBM DMA Cap 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the PCI bus master register for IDE Channel #1 in the SiI 0680A. The register bits are defined below. • • • • • • • • • • • • • Bit [31:24]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [23]: PBM Simplex (R) – PCI Bus Master Simplex Only. This read-only bit field is hardwired to zero to indicate that both IDE channels can operate as PCI bus master at any time. Bit [22]: PBM DMA Cap 1 (R/W) – PCI Bus Master DMA Capable – Device 1. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [21]: PBM DMA Cap 0 (R/W) – PCI Bus Master DMA Capable – Device 0. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [20:19]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [18]: IDE1 DMA Comp (R/W1C) – IDE1 DMA Completion Interrupt. During write DMA operation, this bit set indicates that the IDE1 interrupt has been asserted and all data has been written to system memory. During Read DMA, this bit set indicates that the IDE1 interrupt has been asserted. This bit must be W1C by software when set during DMA operation (bit 0 is set). During normal operation, this bit reflects IDE1 interrupt line. Bit [17]: PBM Error (R/W1C) – PCI Bus Master Error – IDE1. This bit set indicates that a PCI bus error occurred while the SiI 0680A was bus master. Additional information is available in the PCI Status register in PCI Configuration space. Bit [16]: PBM Active (R) – PCI Bus Master Active – IDE1. This bit set indicates that the SiI 0680A is currently active in a data transfer as PCI bus master. This bit is cleared by the hardware when all data transfers have completed or PBM Enable bit is not set. Bit [15:08]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [07:04]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [03]: PBM Rd-Wr (R/W) – PCI Bus Master Read-Write Control. This bit is set to specify a DMA write operation from IDE1 to system memory. This bit is cleared to specify a DMA read operation from system memory to an IDE1 device. Bit [02:01]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [00]: PBM Enable (R/W) – PCI Bus Master Enable – IDE1. This bit is set to enable PCI bus master operations for IDE Channel #1. PCI bus master operations can be halted by clearing this bit, but will erase all state information in the control logic. If this bit is cleared while the PCI bus master is active, the operation will be aborted and the data discarded. While this bit is set, accessing IDE1 Task File or PIO data registers will be terminated with Target-Abort. 9.7.4 PRD Table Address – IDE1 Address Offset: 0CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved PRD Table Address – IDE1 This register defines the PRD Table Address register for IDE Channel #1 in the SiI 0680A. The register bits are defined below. • • Bit [31:02]: PRD Table Address (R/W) – Physical Region Descriptor Table Address. This bit field defines the Descriptor Table base address. Bit [01:00]: Reserved (R). This bit field is reserved and returns zeros on a read. SiI-DS-0069-C © 2006 Silicon Image, Inc. 73 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.5 PCI Bus Master2 – IDE0 Address Offset: 10H Access Type: Read/Write Reset Value: 0x0008_xx00 PBM Enable Reserved PBM Rd-Wr IDE Watchdog Reserved IDE0 DMA Comp IDE0 PBM Active IDE0 PBM Error Software IDE0 DMA Comp IDE0 Buffer Empty IDE0 Watchdog IDE0 IDE0 PBM DMA Cap 0 IDE0 PBM DMA Cap 1 IDE1 PBM Active IDE0 PBM Simplex IDE1 PBM Error IDE1 Watchdog IDE1 DMA Comp IDE1 Buffer Empty IDE1 PBM DMA Cap 1 IDE1 PBM Simplex IDE1 PBM DMA Cap 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the second PCI bus master register for IDE Channel #0 in the SiI 0680A. The system must access these register bits through this address to enable the Large Block Transfer Mode. The register bits are defined below. • • • • • • • • • • • • • • • Bit [31:29]: (R) These bits are copy of PCI Bus Master IDE1 bits [23:21]. Bit [28]: IDE1 Watchdog (R ) . This bit is a copy of bit 12 in IDE1 Task File Timing + Configuration + Status register. Refer to chapter 9.7.47 for detail information. Bit [27] : IDE1 Buffer empty (R). This bit set indicates IDE1 FIFO is empty. Bit [26:24]: (R) These bits are copy of PCI Bus Master IDE1 bits [18:16]. Bit [23]: PBM Simplex (R) – PCI Bus Master Simplex Only. This read-only bit field is hardwired to zero to indicate that both IDE channels can operate as PCI bus master at any time. Bit [22]: PBM DMA Cap 1 (R/W) – PCI Bus Master DMA Capable – Device 1. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [21]: PBM DMA Cap 0 (R/W) – PCI Bus Master DMA Capable – Device 0. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [20]: IDE0 Watchdog (R ) : This bit is a copy of bit 12 in IDE0 Task File Timing + Configuration + Status register. Refer to chapter 9.7.33 for detail information. Bit [19] : IDE0 Buffer empty (R). This bit set indicates IDE0 FIFO is empty. Bit [18]: IDE0 DMA Comp (R/W1C) – IDE0 DMA Completion Interrupt. During write DMA operation, This bit set indicates that the IDE0 interrupt has been asserted and all data has been written to system memory. During Read DMA, This bit set indicates that the IDE0 interrupt has been asserted. This bit must be W1C by software when set during DMA operation (bit 0 is set). During normal operation, this bit reflects IDE0 interrupt line. Bit [17]: PBM Error (R/W1C) – PCI Bus Master Error – IDE0. This bit set indicates that a PCI bus error occurred while the SiI 0680A was bus master. Additional information is available in the PCI Status register in PCI Configuration space. Bit [16]: PBM Active (R) – PCI Bus Master Active – IDE0. This bit set indicates that the SiI 0680A is currently active in a data transfer as PCI bus master. This bit is cleared by the hardware when all data transfers have completed or PBM Enable bit is not set. Bit[15] : IDE Watchdog Timer Status ( R ) – This bit is an Ored result of bit 12 in IDE1 Task File Timing + Configuration + Status and bit 12 of IDE0 Task File Timing + Configuration + Status registers. When set indicates that either IDE0 or IDE1 Watchdog timer has expired. Bit[14] : IDE1 Interrupt Status ( R ) – This bit is a copy of Bit[18] IDE1 DMA Completion Interrupt in PCI Bus Master – IDE1. Bit [13:08]: Software Data (R/W) – System Software Data Storage. This bit field is used for read/write data storage by the system. The properties of this bit field are detailed below. Bit Location Default Description [13:12] XXB Not cleared by any reset [11:10] 00B Cleared by PCI reset [09:08] XXB Cleared only by a D0-D3 power state change Table 9-9: Software Data Byte, Base Address 5, Offset 10H • Bit [07:04]: Reserved (R). This bit field is reserved and returns zeros on a read. SiI-DS-0069-C © 2006 Silicon Image, Inc. 74 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. • • • Bit [03]: PBM Rd-Wr (R/W) – PCI Bus Master Read-Write Control. This bit is set to specify a DMA write operation from IDE0 to system memory. This bit is cleared to specify a DMA read operation from system memory to an IDE0 device. Bit [02:01]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [00]: PBM Enable (R/W) – PCI Bus Master Enable – IDE0. This bit is set to enable PCI bus master operations for IDE Channel #0. PCI bus master operations can be halted by clearing this bit, but will erase all state information in the control logic. If this bit is cleared while the PCI bus master is active, the operation will be aborted and the data discarded. While this bit is set, accessing IDE0 Task File or PIO data registers will be terminated with Target-Abort. 9.7.6 PCI Bus Master2 – IDE1 Address Offset: 18H Access Type: Read/Write Reset Value: 0x0008_xx00 PBM Enable Reserved Reserved Reserved PBM Rd-Wr PBM Error PBM Active IDE1 DMA Comp IDE1 Watchdog IDE1 Buffer Empty PBM DMA Cap 0 PBM Simplex Reserved PBM DMA Cap 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the second PCI bus master register for IDE Channel #1 in the SiI 0680A. The system must access these register bits through this address to enable the Large Block Transfer Mode. • • • • • • • • • • • • • • Bit [31:24]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [23]: PBM Simplex (R) – PCI Bus Master Simplex Only. This read-only bit field is hardwired to zero to indicate that both IDE channels can operate as PCI bus master at any time. Bit [22]: PBM DMA Cap 1 (R/W) – PCI Bus Master DMA Capable – Device 1. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [21]: PBM DMA Cap 0 (R/W) – PCI Bus Master DMA Capable – Device 0. This bit field has no effect. The device is always capable of DMA as a PCI bus master. Bit [20]: IDE1 Watchdog (R ) . This bit is a copy of bit 12 in IDE1 Task File Timing + Configuration + Status register. Refer to chapter 9.7.47 for detail information. Bit [19] : IDE1 Buffer empty (R). This bit set indicates IDE1 FIFO is empty. Bit [18]: IDE1 DMA Comp (R/W1C) – IDE1 DMA Completion Interrupt. During write DMA operation, this bit set indicates that the IDE1 interrupt has been asserted and all data has been written to system memory. During Read DMA, this bit set indicates that the IDE1 interrupt has been asserted. This bit must be W1C by software when set during DMA operation (bit 0 is set). During normal operation, this bit reflects IDE1 interrupt line. Bit [17]: PBM Error (R/W1C) – PCI Bus Master Error – IDE1. This bit set indicates that a PCI bus error occurred while the SiI 0680A was bus master. Additional information is available in the PCI Status register in PCI Configuration space. Bit [16]: PBM Active (R) – PCI Bus Master Active – IDE1. This bit set indicates that the SiI 0680A is currently active in a data transfer as PCI bus master. This bit is cleared by the hardware when all data transfers have completed or PBM Enable bit is not set. Bit [15:08]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [07:04]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [03]: PBM Rd-Wr (R/W) – PCI Bus Master Read-Write Control. This bit is set to specify a DMA write operation from IDE1 to system memory. This bit is cleared to specify a DMA read operation from system memory to an IDE1 device. Bit [02:01]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [00]: PBM Enable (R/W) – PCI Bus Master Enable – IDE1. This bit is set to enable PCI bus master operations for IDE Channel #1. PCI bus master operations can be halted by clearing this bit, but will erase all state information in the control logic. If this bit is cleared while the PCI bus master is active, the operation will be aborted and the data discarded. While this bit is set, accessing IDE1 Task File or PIO data registers will be terminated with Target-Abort. SiI-DS-0069-C © 2006 Silicon Image, Inc. 75 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.7 PRD Address – IDE0 Address Offset: 20H Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 PRD Address This register reflects the current DMA address and uses for diagnostic purposes only. • Bit [31:00]: PRD Address (R) – This field is the current DMA0 Address. 9.7.8 PCI Bus Master Byte Count – IDE0 Address Offset: 24H Access Type: Read Only Reset Value: 0x0000_0000 End of Table 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Byte Count High Byte Count Low This register defines the byte count register in the PCI bus master logic for IDE Channel #0 in the SiI 0680A. The register bits are defined below. • • • Bit [31]: End of Table (R). This bit set indicates that this is the last entry in the PRD table. Bit [30:16] Byte Count High (R). This bit field is the PRD entry byte count extension for Large Block Transfer Mode. Under generic mode, this bit field is reserved and returns zeros on a read. Bit [15:00] Byte Count Low (R). This bit field reflects the current DMA0 byte count value. 9.7.9 PRD Address – IDE1 Address Offset: 28H Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 PRD Address This register reflects the current DMA1 Address and uses for diagnostic purposes only. • Bit [31:00]: PRD Address (R) – This field is the current DMA1 Address. SiI-DS-0069-C © 2006 Silicon Image, Inc. 76 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.10 PCI Bus Master Byte Count – IDE1 Address Offset: 2CH Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 End of Table Byte Count High Byte Count Low This register defines the byte count register in the PCI bus master logic for IDE Channel #1 in the SiI 0680A. The register bits are defined below. • • • Bit [31]: End of Table (R). This bit set indicates that this is the last entry in the PRD table. Bit [30:16] Byte Count High (R). This bit field is the PRD entry byte count extension for Large Block Transfer Mode. Under generic mode, this bit field is reserved and returns zeros on a read. Bit [15:00] Byte Count Low (R). This bit field reflects the current DMA1 byte count value. 9.7.11 FIFO Valid Byte Count and Control – IDE0 Address Offset: 40H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Wr Req Ctrl – IDE0 FIFO Rd Req Ctrl – IDE0 Reserved FIFO Valid Byte Count – IDE0 Reserved Reserved This register defines the FIFO valid byte count register and PCI bus request control for IDE Channel #0 in the SiI 0680A. The register bits are defined below. • • • • Bit [31:25]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [24:16]: FIFO Valid Byte Count – IDE0 (R). This bit field provides the valid byte count for the data FIFO for IDE Channel #0. A value of 000H indicates empty, while a value of 100H indicates a full FIFO with 256 bytes. Bit [15:14]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [13:08]: FIFO Wr Req Ctrl – IDE0 (R/W) – FIFO Write Request Control. This bit field defines the FIFO threshold to assign DMA0 priority when requesting a PCI bus for a write operation. A value of 00H indicates that DMA0 write request priority is set to 1 whenever the FIFO contains greater than zero DWords, while a value of 3F H indicates that DMA0 write request priority is set to 1 whenever the FIFO contains greater than 63 Dwords. This bit field is useful when two DMA channels are competing for accessing PCI bus. When the two DMA channels request the PCI bus at the same time, the one with the higher priority will have the bus when it’s granted to the SiI 0680A. If the two DMA channels have the same priority, the channel that had the bus last will have the bus when it’s granted to the SiI 0680A. When one DMA channel is controlling the PCI bus, and the other channel requests the PCI bus, if the channel currently controlling the PCI bus has the same or higher priority, it remains controlling the bus. However, if the channel requesting the PCI bus has higher priority, the lower priority channel terminates the PCI transaction, yielding the bus to the channel with the higher priority. • • Bit [07:06]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [05:00]: FIFO Rd Req Ctrl – IDE0 (R/W) – FIFO Read Request Control. This bit field defines the FIFO threshold to assign DMA0 priority when requesting a PCI for a read operation. A value of 00H indicates that DMA0 read request priority is set to 1 whenever the FIFO has greater than zero Dwords available space , while a value of 3F indicates that DMA0 read request priority is set to 1 whenever the FIFO has greater than 63 Dwords available space. This bit field is useful when two DMA channels are competing for accessing the PCI bus. SiI-DS-0069-C © 2006 Silicon Image, Inc. 77 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. When the two DMA channels request the PCI bus at the same time, the one with the higher priority will have the bus when it’s granted to the SiI 0680A. If the two DMA channels have the same priority, the channel that had the bus last will have the bus when it’s granted to the SiI 0680A. When one DMA channel is controlling the PCI bus, and the other channel requests the PCI bus, if the channel currently controlling the PCI bus has the same or higher priority, it remains controlling the bus. However, if the channel requesting the PCI bus has higher priority, the lower priority channel terminates the PCI transaction, yielding the bus to the channel with the higher priority. 9.7.12 FIFO Valid Byte Count and Control – IDE1 Address Offset: 44H Access Type: Read /Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Wr Req Ctrl – IDE1 FIFO Rd Req Ctrl – IDE1 Reserved FIFO Valid Byte Count – IDE1 Reserved Reserved This register defines the FIFO valid byte count register and PCI bus request control for IDE Channel #1 in the SiI 0680A. The register bits are defined below. • • • • Bit [31:25]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [24:16]: FIFO Valid Byte Count – IDE1 (R). This bit field provides the valid byte count for the data FIFO for IDE Channel #1. A value of 000H indicates empty, while a value of 100H indicates a full FIFO with 256 bytes. Bit [15:14]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [13:08]: FIFO Wr Req Ctrl – IDE1 (R/W) – FIFO Write Request Control. This bit field defines the FIFO threshold to assign DMA1 priority when requesting a PCI for a write operation. A value of 00H indicates that DMA1 write request priority is set to 1 whenever the FIFO contains greater than zero DWords, while a value of 3F H indicates that DMA1 write request priority is set to 1 whenever the FIFO contains greater than 63 Dwords. This bit field is useful when two DMA channels are competing for accessing PCI bus. When the two DMA channels request the PCI bus at the same time, the one with the higher priority will have the bus when it’s granted to the SiI 0680A. If the two DMA channels have the same priority, the channel that had the bus last will have the bus when it’s granted to the SiI 0680A. When one DMA channel is controlling the PCI bus, and the other channel requests the PCI bus, if the channel currently controlling the PCI bus has the same or higher priority, it remains controlling the bus. However, if the channel requesting the PCI bus has higher priority, the lower priority channel terminates the PCI transaction, yielding the bus to the channel with the higher priority. • • Bit [07:06]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [05:00]: FIFO Rd Req Ctrl – IDE1 (R/W) – FIFO Read Request Control. This bit field defines the FIFO threshold to assign DMA1 priority when requesting a PCI for a read operation. A value of 00H indicates that DMA1 read request priority is set to 1 whenever the FIFO has greater than zero Dwords available space , while a value of 3F indicates that DMA1 read request priority is set to 1 whenever the FIFO has greater than 63 Dwords available space. This bit field is useful when two DMA channels are competing for accessing the PCI bus. When the two DMA channels request the PCI bus at the same time, the one with the higher priority will have the bus when it’s granted to the SiI 0680A. If the two DMA channels have the same priority, the channel that had the bus last will have the bus when it’s granted to the SiI 0680A. When one DMA channel is controlling the PCI bus, and the other channel requests the PCI bus, if the channel currently controlling the PCI bus has the same or higher priority, it remains controlling the bus. However, if the channel requesting the PCI bus has higher priority, the lower priority channel terminates the PCI transaction, yielding the bus to the channel with the higher priority. SiI-DS-0069-C © 2006 Silicon Image, Inc. 78 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.13 System Configuration Status – Command Address Offset: 48H Access Type: Read/Write Reset Value: 0x0000_0000 ARB Module Rst PBM Module Rst Reserved FF1 Module Rst FF0 Module Rst IDE1 Module Rst IDE0 Module Rst Reserved Reserved BA5_EN IDE Clk Select IDE0 Int Block Reserved IDE1 Int Block 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the system configuration status and command register for the SiI 0680A. The register bits are defined below. • Bit [31:24]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [23]: IDE1 Int Block (R/W) – IDE1 Interrupt Block. This bit is set to block interrupts from the IDE Channel #1 to the PCI bus. • Bit [22]: IDE0 Int Block (R/W) – IDE0 Interrupt Block. This bit is set to block interrupts from the IDE Channel #0 to the PCI bus. • Bit [21:20]: IDE Clk Select (R/W) – IDE Clock Frequency Select. This bit field is used set the IDE clock frequency for both IDE modules: 00B = 100 MHz; 01B = 133 MHz; 10B = PCI Clock x 2; and, 11B = IDE Clock Disabled. • Bit [19:17]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [16]: BA5_EN (R) – Base Address 5 Enable. This bit reflects input pin BA5_EN. • Bit [15:08]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [07]: IDE0 Module Rst (R/W) – IDE0 Module Reset. This bit is set to reset the interface logic for the IDE Channel #0. • Bit [06]: IDE1 Module Rst (R/W) – IDE1 Module Reset. This bit is set to reset the interface logic for the IDE Channel #1. • Bit [05]: FF0 Module Rst (R/W) – FF0 Module Reset. This bit is set to reset the logic in the FIFO for IDE Channel #0. • Bit [04]: FF1 Module Rst (R/W) – FF1 Module Reset. This bit is set to reset the logic in the FIFO for IDE Channel #1. • Bit [03:02]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [01]: ARB Module Rst (R/W) – ARB Module Reset. This bit is set to reset the internal logic for the PCI-IDE arbiter. • Bit [00]: PBM Module Rst (R/W) – PBM Module Reset. This bit is set to reset the internal logic for the PCI bus master state machine. 9.7.14 System Software Data Register Address Offset: 4CH Access Type: Read/Write Reset Value: Undefined 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 System Software Data This register is used by the software for non-resettable data storage. The contents are unknown on power-up and are never cleared by any type of reset. SiI-DS-0069-C © 2006 Silicon Image, Inc. 79 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.15 FLASH Memory Address – Command + Status Address Offset: 50H Access Type: Read/Write Reset Value: 0x0000_0000 Mem Access Type Reserved Mem Access Start Reserved Mem Init Done 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Memory Address This register defines the address and command/status register for FLASH memory interface in the SiI 0680A. The register bits are defined below. • • • • • • • Bit [31:28]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [27]: Memory Init Done (R) – This bit set indicates that the memory initialization sequence is done. The memory sequence is activated upon the release of reset. Bit [26]: Reserved (R) – This bit is reserved and returns an indeterminate value on a read. Bit [25]: Mem Access Start (R/W) – Memory Access Start. This bit is set to initiate an operation to FLASH memory. This bit is cleared by the chip when the operation is complete. Bit [24]: Mem Access Type (R/W) – Memory Access Type. This bit is set to define a read operation from FLASH memory. This bit is cleared to define a write operation to FLASH memory. Bit [23:19]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [18:00]: Memory Address (R/W). This bit field is programmed with the address for a FLASH memory read or write access. 9.7.16 FLASH Memory Data Address Offset: 54H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Memory Data This register defines the data register for FLASH memory interface in the SiI 0680A. The system writes to this register for a write operation to FLASH memory, and reads from this register on a read operation from FLASH memory. • • Bit [31:08]: Reserved (R). Bit [07:00]: Memory Data (R/W) – FLASH Memory Data. This bit field is used for FLASH write data on a write operation, and returns the FLASH read data on a read operation. SiI-DS-0069-C © 2006 Silicon Image, Inc. 80 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.17 EEPROM Memory Address – Command + Status Address Offset: 58H Access Type: Read/Write Reset Value: 0x0000_0000 Mem Access Type Reserved Mem Access Start Mem Error Reserved Mem Init Done 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Mem Address This register defines the address and command/status register for EEPROM memory interface in the SiI 0680A. The register bits are defined below. • • • • • • • • Bit [31:29]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [28]: Mem Error (R/W1C) – Memory Access Error. This bit set indicates that the EEPROM interface logic detects three NAKs from the memory device. Bit [27]: Mem Init Done (R) – Memory Initialization Done. This bit set indicates that the memory initialization sequence is done. The memory initialization sequence is activated upon the release of reset. Bit [26]: Reserved (R) This bit is reserved and returns an indeterminate value on a read. Bit [25]: Mem Access Start (R/W) – Memory Access Start. This bit is set to initiate an operation to EEPROM memory. This bit is cleared by the chip when the operation is complete. Bit [24]: Mem Access Type (R/W) – Memory Access Type. This bit is set to define a read operation from EEPROM memory. This bit is cleared to define a write operation to EEPROM memory. Bit [23:16]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [15:00]: Memory Address (R/W). This bit field is programmed with the address for an EEPROM memory read or write access. 9.7.18 EEPROM Memory Data Address Offset: 5CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved Memory Data This register defines the data register for EEPROM memory interface in the SiI 0680A. The system writes to this register for a write operation to EEPROM memory, and reads from this register on a read operation from EEPROM memory. The register bits are defined below. • • Bit [31:08]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [07:00]: Memory Data (R/W) – EEPROM Memory Data. This bit field is used for EEPROM write data on a write operation, and returns the EEPROM read data on a read operation. SiI-DS-0069-C © 2006 Silicon Image, Inc. 81 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.19 FIFO Port – IDE0 Address Offset: 60H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Port – IDE0 This register defines the direct access register for the FIFO port of IDE Channel #0 in the SiI 0680A. This register is used for hardware debugging purposes only. The system can read from or write to this register for direct access to the data FIFO between the PCI bus and IDE Channel #0. While DMA0 is active, reading this register will be terminated with TargetAbort. 9.7.20 FIFO Pointers1– IDE0 Address Offset: 68H Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Byte 1 Wr Pointer – IDE0 FIFO Byte 1 Rd Pointer – IDE0 FIFO Byte 0 Wr Pointer – IDE0 FIFO Byte 0 Rd Pointer – IDE0 This register provides visibility into the data FIFO for IDE Channel #0 in the SiI 0680A. The data FIFO is organized as a four byte-wide x 64 deep memory array. There are separate write and read pointer for each of the byte slices. This register is used for hardware debugging purposes only. The register bits are defined below. • Bit [31:24]: FIFO Byte 1 Wr Pointer – IDE0 (R) FIFO Byte 1 Write Pointer. This bit field provides the status on the write pointer for Byte 1. • Bit [23:16]: FIFO Byte 1 Rd Pointer – IDE0 (R) FIFO Byte 1 Read Pointer. This bit field provides the status on the read pointer for Byte 1. • Bit [15:08]: FIFO Byte 0 Wr Pointer – IDE0 (R) FIFO Byte 0 Write Pointer. This bit field provides the status on the write pointer for Byte 0. • Bit [07:00]: FIFO Byte 0 Rd Pointer – IDE0 (R) FIFO Byte 0 Read Pointer. This bit field provides the status on the read pointer for Byte 0. SiI-DS-0069-C © 2006 Silicon Image, Inc. 82 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.21 FIFO Pointers2– IDE0 Address Offset: 6CH Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Byte 3 Wr Pointer – IDE0 FIFO Byte 3 Rd Pointer – IDE0 FIFO Byte 2 Wr Pointer – IDE0 FIFO Byte 2 Rd Pointer – IDE0 This register provides visibility into the data FIFO for IDE Channel #0 in the SiI 0680A. The data FIFO is organized as a four byte-wide x 64 deep memory array. There are separate write and read pointer for each of the byte slices. This register is used for hardware debugging purposes only. The register bits are defined below. • Bit [31:24]: FIFO Byte 3 Wr Pointer – IDE0 (R) FIFO Byte 3 Write Pointer. This bit field provides the status on the write pointer for Byte 3. • Bit [23:16]: FIFO Byte 3 Rd Pointer – IDE0 (R) FIFO Byte 3 Read Pointer. This bit field provides the status on the read pointer for Byte 3. • Bit [15:08]: FIFO Byte 2 Wr Pointer – IDE0 (R) FIFO Byte 2 Write Pointer. This bit field provides the status on the write pointer for Byte 2. • Bit [07:00]: FIFO Byte 2 Rd Pointer – IDE0 (R) FIFO Byte 2 Read Pointer. This bit field provides the status on the read pointer for Byte 2. 9.7.22 FIFO Port – IDE1 Address Offset: 70H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Port – IDE1 This register defines the direct access register for the FIFO port of IDE Channel #1 in the SiI 0680A. This register is used for hardware debugging purposes only. The system can read from or write to this register for direct access to the data FIFO between the PCI bus and IDE Channel #1. While DMA1 is active, reading this register will be terminated with TargetAbort. SiI-DS-0069-C © 2006 Silicon Image, Inc. 83 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.23 FIFO Pointers1– IDE1 Address Offset: 78H Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Byte 1 Wr Pointer – IDE1 FIFO Byte 1 Rd Pointer – IDE1 FIFO Byte 0 Wr Pointer – IDE1 FIFO Byte 0 Rd Pointer – IDE1 This register provides visibility into the data FIFO for IDE Channel #1 in the SiI 0680A. The data FIFO is organized as a four byte-wide x 64 deep memory array. There are separate write and read pointer for each of the byte slices. This register is used for hardware debugging purposes only. The register bits are defined below. • Bit [31:24]: FIFO Byte 1 Wr Pointer – IDE1 (R) FIFO Byte 1 Write Pointer. This bit field provides the status on the write pointer for Byte 1. • Bit [23:16]: FIFO Byte 1 Rd Pointer – IDE1 (R) FIFO Byte 1 Read Pointer. This bit field provides the status on the read pointer for Byte 1. • Bit [15:08]: FIFO Byte 0 Wr Pointer – IDE1 (R) FIFO Byte 0 Write Pointer. This bit field provides the status on the write pointer for Byte 0. • Bit [07:00]: FIFO Byte 0 Rd Pointer – IDE1 (R) FIFO Byte 0 Read Pointer. This bit field provides the status on the read pointer for Byte 0. 9.7.24 FIFO Pointers2– IDE1 Address Offset: 7CH Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 FIFO Byte 3 Wr Pointer – IDE1 FIFO Byte 3 Rd Pointer – IDE1 FIFO Byte 2 Wr Pointer – IDE1 FIFO Byte 2 Rd Pointer – IDE1 This register provides visibility into the data FIFO for IDE Channel #1 in the SiI 0680A. The data FIFO is organized as a four byte-wide x 64 deep memory array. There are separate write and read pointer for each of the byte slices. This register is used for hardware debugging purposes only. The register bits are defined below. • Bit [31:24]: FIFO Byte 3 Wr Pointer – IDE1 (R) FIFO Byte 3 Write Pointer. This bit field provides the status on the write pointer for Byte 3. • Bit [23:16]: FIFO Byte 3 Rd Pointer – IDE1 (R) FIFO Byte 3 Read Pointer. This bit field provides the status on the read pointer for Byte 3. • Bit [15:08]: FIFO Byte 2 Wr Pointer – IDE1 (R) FIFO Byte 2 Write Pointer. This bit field provides the status on the write pointer for Byte 2. • Bit [07:00]: FIFO Byte 2 Rd Pointer – IDE1 (R) FIFO Byte 2 Read Pointer. This bit field provides the status on the read pointer for Byte 2. SiI-DS-0069-C © 2006 Silicon Image, Inc. 84 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.25 IDE0 Task File Register 0 Address Offset: 80H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE0 Task File Starting Sector Number IDE0 Task File Sector Count IDE0 Task File Features (W) IDE0 Task File Error (R) IDE0 Task File Data This register defines one of the IDE Channel #0 Task File registers in the SiI 0680A. Access to the individual bytes of this register is determined by the PCI bus Byte Enables at the time of the read or write operation. The register bits are defined below. • • • • • Bit [31:00]: IDE0 Task File Data (R/W). This bit field defines the IDE0 Task File Data register. This register can be accessed as an 8-bit, 16-bit, or 32-bit word, depending upon the PCI bus Byte Enables. The data written to this register must be zero-aligned. To access 8-bit Task File Data, the PCI bus Byte Enable for byte 0 must be active. To access 16-bit Task File Data, the Byte Enables for byte 1 and byte 0 must be active. To access 32-bit Task File Data, the Byte Enables for all four bytes must be active. Bit [31:24]: IDE0 Task File Starting Sector Number (R/W). This bit field defines the IDE0 Task File Starting Sector Number register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. Bit [23:16]: IDE0 Task File Sector Count (R/W). This bit field defines the IDE0 Task File Sector Count register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. Bit [15:08]: IDE0 Task File Features (W). This write-only bit field defines the IDE0 Task File Features register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. Bit [15:08]: IDE0 Task File Error (R). This read-only bit field defines the IDE0 Task File Error register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. 9.7.26 IDE0 Task File Register 1 Address Offset: 84H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE0 Task File Command + Status IDE0 Task File Device+Head IDE0 Task File Cylinder High IDE0 Task File Cylinder Low This register defines one of the IDE Channel #0 Task File registers in the SiI 0680A. Access to these bit field is permitted if the PCI bus Byte Enable is active for one byte only. The register bits are defined below. • • • • • Bit [31:24]: register. Bit [31:24]: Bit [23:16]: register. Bit [15:08]: Bit [07:00]: IDE0 Task File Command (W). This write-only bit field defines the IDE0 Task File Command IDE0 Task File Status (R). This read-only bit field defines the IDE0 Task File Status register. IDE0 Task File Device+Head (R/W). This bit field defines the IDE0 Task File Device and Head IDE0 Task File Cylinder High (R/W). This bit field defines the IDE0 Task File Cylinder High register. IDE0 Task File Cylinder Low (R/W). This bit field defines the IDE0 Task File Cylinder Low register. SiI-DS-0069-C © 2006 Silicon Image, Inc. 85 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.27 IDE0 Task File Register 2 Address Offset: 88H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved IDE0 Task File Device Control IDE0 Task File Auxiliary Status Reserved Reserved This register defines one of the IDE Channel #0 Task File registers in the SiI 0680A. Access to these bit fields is permitted if the PCI bus Byte Enable is active for one byte only. The register bits are defined below. • • • • Bit [31:24]: Bit [23:16]: Bit [23:16]: register. Bit [15:00]: Reserved (R). This bit field is reserved and returns zeros on a read. IDE0 Task File Device Control (W). This bit field defines the IDE0 Task File Device Control register. IDE0 Task File Auxiliary Status (R). This bit field defines the IDE0 Task File Auxiliary Status Reserved (R). This bit field is reserved and returns zeros on a read. 9.7.28 IDE0 Read Ahead Data Address Offset: 8CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE0 Read Ahead Data This register defines the read ahead data port for PIO transfers on IDE Channel #0 in the SiI 0680A. This register can be accessed as an 8-bit, 16-bit, or 32-bit word, depending upon the PCI bus Byte Enables. The data written to this register must be zero-aligned. SiI-DS-0069-C © 2006 Silicon Image, Inc. 86 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.29 IDE0 Task File Register 0 – Command Buffering Address Offset: 90H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE0 Task File Starting Sector Number IDE0 Task File Sector Count IDE0 Task File Features (W) IDE0 Task File Error (R) IDE0 Task File Data This register defines one of the IDE Channel #0 Task File registers used for Command Buffered accesses in the SiI 0680A. Access to the individual bytes of this register is determined by the PCI bus Byte Enables at the time of the read or write operation. The register bits are defined below. • • • • • Bit [31:00]: IDE0 Task File Data (R/W). This bit field defines the IDE0 Task File Data register. This register can be accessed as an 8-bit, 16-bit, or 32-bit word, depending upon the PCI bus Byte Enables. The data written to this register must be zero-aligned. To access 8-bit Task File Data, the PCI bus Byte Enable for byte 0 must be active. To access 16-bit Task File Data, the Byte Enables for byte 1 and byte 0 must be active. To access 32-bit Task File Data, the Byte Enables for all four bytes must be active. Bit [31:24]: IDE0 Task File Starting Sector Number (R/W). This bit field defines the IDE0 Task File Starting Sector Number register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 3 is active. Bit [23:16]: IDE0 Task File Sector Count (R/W). This bit field defines the IDE0 Task File Sector Count register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 2 is active. Bit [15:08]: IDE0 Task File Features (W). This write-only bit field defines the IDE0 Task File Features register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 1 is active. Bit [15:08]: IDE0 Task File Error (R). This read-only bit field defines the IDE0 Task File Error register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 1 is active. 9.7.30 IDE0 Task File Register 1 – Command Buffering Address Offset: 94H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE0 Task File Command + Status IDE0 Task File Device+Head IDE0 Task File Cylinder High IDE0 Task File Cylinder Low This register defines one of the IDE Channel #0 Task File registers used for Command Buffered accesses in the SiI 0680A. The register bits are defined below. • • • • • Bit [31:24]: register. Bit [31:24]: Bit [23:16]: register. Bit [15:08]: Bit [07:00]: IDE0 Task File Command (W). This write-only bit field defines the IDE0 Task File Command IDE0 Task File Status (R). This read-only bit field defines the IDE0 Task File Status register. IDE0 Task File Device+Head (R/W). This bit field defines the IDE0 Task File Device and Head IDE0 Task File Cylinder High (R/W). This bit field defines the IDE0 Task File Cylinder High register. IDE0 Task File Cylinder Low (R/W). This bit field defines the IDE0 Task File Cylinder Low register. SiI-DS-0069-C © 2006 Silicon Image, Inc. 87 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.31 IDE0 UDMA Control Address Offset: 98H Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved • This bit field is reserved and returns an indeterminate value on a read. 9.7.32 IDE0 Virtual DMA/PIO Read Ahead Byte Count Address Offset: 9CH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Not Used IDE0 Virtual DMA/PIO Read Ahead Byte Count This register defines the read ahead byte count register for Virtual DMA and PIO Read Ahead transfers on IDE Channel #0 in the SiI 0680A. In Virtual DMA mode (PCI bus master DMA with PIO transfers on the IDE), all 32 bits are used as the wordaligned byte count. In PIO Read Ahead mode, only the lower 16 bits are used as the word-aligned byte count. The higher 16 bits must be programmed 0x0000. SiI-DS-0069-C © 2006 Silicon Image, Inc. 88 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.33 IDE0 Task File Timing + Configuration + Status Address Offset: A0H Access Type: Read/Write Reset Value: 0x6515_0100 Cable 80 Channel Rst Buffered Cmd Channel Tri-State Reserved Reserved Virtual DMA Int IORDY Monitoring Interrupt Status Watchdog Ena Recovery Count Watchdog Timeout Active Count Reserved Addr Setup Count Watchdog Int Ena 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the task file timing register for IDE Channel #0 in the SiI 0680A. The register bits are defined below. • • • • • • • • • • • • • • • Bit [31:28]: Addr Setup Count (R/W) – IDE0 Address Setup Time Count. This bit field is used for adjusting the address setup time relative to IDE0_DIOR_N and IDE0_DIOW_N. See Chapter 11 for details on programming the timing register. Bit [27:22]: Active Count (R/W) – IDE0 DIOR_N and DIOW_N Active Time Count. This bit field is used for adjusting the active time of IDE0_DIOR_N and IDE0_DIOW_N. See Chapter 11 for details on programming this timing register. Bit [21:16]: Recovery Count (R/W) – IDE0 DIOR_N and DIOW_N Recovery Time Count. This bit field is used for adjusting the recovery time of IDE0_DIOR_N and IDE0_DIOW_N. See Chapter 11 for details on programming this timing register. Bit [15]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [14] : Watchdog Int Ena ( R/W ) – IDE0 Watchdog Interrupt Enable. This bit is set to enable Interrupt when Watchdog timer expired. Bit [13]: Watchdog Ena (R/W) – IDE0 Watchdog Timer Enable. This bit is set to enable the watchdog timer for IDE0. This bit is cleared to disable the watchdog timer. Bit [12]: Watchdog Timeout (R/W1C) – IDE0 Watchdog Timer Timeout. This bit set indicates that the watchdog timer for IDE0 timed out. When enabled, and IORDY monitoring bit is also enabled, during IDE0 PIO opeartion, the watchdog counter starts counting when IORDY signal is deasserted. If after 256 PCI clocks cycles, the IORDY signal is still deasserted, the Watchdog Timer is expires, and this bit is set and the SiI 0680A continue its operation and stop monitoring IORDY signal. Software writes one to clear this bit. Once this bit is cleared, the SiI 0680A starts monitoring IORDY on channel 0 again. Bit [11]: Interrupt Status (R) – IDE0 Interrupt Status. This bit set indicates that an interrupt is pending on IDE0. This bit provides real-time status of the IDE0 interrupt pin. Bit [10]: Virtual DMA Int (R) – IDE0 Virtual DMA Completion Interrupt. This bit set indicates that the Virtual DMA data transfer has completed. This bit is cleared when bit[0] PBM enable in PCI Bus Master – IDE0 is cleared . Bit [09]: IORDY Monitoring (R/W) – IDE0 IORDY Monitoring. When this bit is set, IORDY line is monitored for Task File accesses on channel 0. Bit [08:04]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [03]: Channel Tri-State (R/W) – IDE0 Channel Tri-State. This bit is set to tri-state the IDE Channel #0 bus. This bit is cleared for normal operations. Bit [02]: Channel Rst (R/W) – IDE0 Channel Reset. When this bit is set, IDE Channel #0 RST signal is asserted. Bit [01]: Buffered Cmd (R) – IDE0 Buffered Command Active. This bit set indicates that a Buffered Command is currently active. This bit is set when the first command byte is written to the command buffer. This bit is cleared when all of the task file bytes, including the command byte, have been written to the device. Bit [00]: Cable 80 (R) – IDE0 Cable 80 Detection. This bit provides real-time status of the inverted version of the IDE0_CBLID_N pin. When set, it indicates that 80 pin cable is detected. SiI-DS-0069-C © 2006 Silicon Image, Inc. 89 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.34 IDE0 PIO Timing Address Offset: A4H Access Type: Read/Write Reset Value: 0x62DD_62DD 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the PIO timing register for IDE Channel #0 in the SiI 0680A. See chapter 11 for details on programming this timing register. The register bits are defined below. • • • • • • Bit [31:28]: Device 1 Addr Setup Count (R/W) – IDE0 Device 1 Address Setup Time Count for PIO Mode. This bit field is used for programming the address setup time relative to IDE0_DIOR_N and IDE0_DIOW_N in PIO mode. Bit [27:22]: Device 1 Active Count (R/W) – IDE0 Device 1 DIOR_N and DIOW_N Active Time Count for PIO Mode. This bit field is used for programming the active time of IDE0_DIOR_N and IDE0_DIOW_N in PIO mode. Bit [21:16]: Device 1 Recovery Count (R/W) – IDE0 Device 1 DIOR_N and DIOW_N Recovery Time Count for PIO Mode. This bit field is used for programming the recovery time of IDE0_DIOR_N and IDE0_DIOW_N in PIO mode. Bit [15:12]: Device 0 Addr Setup Count (R/W) – IDE0 Device 0 Address Setup Time Count for PIO Mode. This bit field is used for programming the address setup time relative to IDE0_DIOR_N and IDE0_DIOW_N in PIO mode Bit [11:06]: Device 0 Active Count (R/W) – IDE0 Device 0 DIOR_N and DIOW_N Active Time Count for PIO Mode. This bit field is used for programming the active time of IDE0_DIOR_N and IDE0_DIOW_N in PIO mode. Bit [05:00]: Device 0 Recovery Count (R/W) – IDE0 Device 0 DIOR_N and DIOW_N Recovery Time Count for PIO Mode. This bit field is used for programming the recovery time of IDE0_DIOR_N and IDE0_DIOW_N in PIO mode. SiI-DS-0069-C © 2006 Silicon Image, Inc. 90 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.35 IDE0 DMA Timing Address Offset: A8H Access Type: Read/Write Reset Value: 0x4392_4392 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the DMA timing register for IDE Channel #0 in the SiI 0680A. See chapter 13 for details on programming this timing register. The register bits are defined below. • • • • • • Bit [31:28]: Device 1 Addr Setup Count (R/W) – IDE0 Device 1 Address Setup Time Count for DMA Mode. This bit field is used for programming the address setup time relative to IDE0_DIOR_N and IDE0_DIOW_N in DMA mode. Bit [27:22]: Device 1 Active Count (R/W) – IDE0 Device 1 DIOR_N and DIOW_N Active Time Count for DMA Mode. This bit field is used for programming the active time of IDE0_DIOR_N and IDE0_DIOW_N in DMA mode. Bit [21:16]: Device 1 Recovery Count (R/W) – IDE0 Device 1 DIOR_N and DIOW_N Recovery Time Count for DMA Mode. This bit field is used for programming the recovery time of IDE0_DIOR_N and IDE0_DIOW_N in DMA mode. Bit [15:12]: Device 0 Addr Setup Count (R/W) – IDE0 Device 0 Address Setup Time Count for DMA Mode. This bit field is used for programming the address setup time relative to IDE0_DIOR_N and IDE0_DIOW_N in DMA mode. Bit [11:06]: Device 0 Active Count (R/W) – IDE0 Device 0 DIOR_N and DIOW_N Active Time Count for DMA Mode. This bit field is used for programming the active time of IDE0_DIOR_N and IDE0_DIOW_N in DMA mode. Bit [05:00]: Device 0 Recovery Count (R/W) – IDE0 Device 0 DIOR_N and DIOW_N Recovery Time Count for DMA Mode. This bit field is used for programming the recovery time of IDE0_DIOR_N and IDE0_DIOW_N in DMA mode. SiI-DS-0069-C © 2006 Silicon Image, Inc. 91 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.36 IDE0 UDMA Timing Address Offset: ACH Access Type: Read/Write Reset Value: 0x4009_4009 Reserved Device 0 HSTROBE Delay Device 1 Cycle Time Count Device 0 DSTROBE Delay Device 0 Data Input Delay Reserved Device 1 HSTROBE Delay Device 1 DSTROBE Delay Device 1 Data Input Delay 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 0 Cycle Time Count This register defines the UDMA timing register for IDE Channel #0 in the SiI 0680A. See chapter 11 for details on programming this timing register. The register bits are defined below. • Bit [31:30]: Device 1 Data Input Delay (R/W) – IDE0 Device 1 Data Input Delay for UDMA Mode. This bit field is used for programming the data input delay in increments of 2 nsec in UDMA mode. • Bit [29:28]: Device 1 DSTROBE Delay (R/W) – IDE0 Device 1 DSTROBE Delay for UDMA Mode. This bit field is used for programming the DSTROBE output delay in increments of 2 nsec in UDMA mode. • Bit [27:25]: Device 1 HSTROBE Delay (R/W) – IDE0 Device 1 HSTROBE Delay for UDMA Mode. This bit field is used for programming the HSTROBE output delay in increments of 2 nsec in UDMA mode. • Bit [24:23]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [22]: Reserved (R/W) – This bit field is reserved. • Bit [21:16]: Device 1 Cycle Time Count (R/W) – IDE0 Device 1 UDMA Cycle Time Count. This bit field is used for programming the UDMA Active and Recovery Time. • Bit [15:14]: Device 0 Data Input Delay (R/W) – IDE0 Device 0 Data Input Delay for UDMA Mode. This bit field is used for programming the data input delay in increments of 2 nsec in UDMA mode. • Bit [13:12]: Device 0 DSTROBE Delay (R/W) – IDE0 Device 0 DSTROBE Delay for UDMA Mode. This bit field is used for programming the DSTROBE output delay in increments of 2 nsec in UDMA mode • Bit [11:09]: Device 0 HSTROBE Delay (R/W) – IDE0 Device 0 HSTROBE Delay for UDMA Mode. This bit field is used for programming the HSTROBE output delay in increments of 2 nsec in UDMA mode. • Bit [08:07]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [06]: Reserved (R/W) – This bit field is reserved. • Bit [05:00]: Device 0 Cycle Time Count (R/W) – IDE0 Device 0 UDMA Cycle Time Count. This bit field is used for programming the UDMA Active and Recovery Time SiI-DS-0069-C © 2006 Silicon Image, Inc. 92 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.37 Test Register – IDE0 Address Offset: B0H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Module Select Nibble Select Sub-Module Select Data Field This register defines the test register for IDE Channel #0 in the SiI 0680A. This register is for chip-level simulation and verification purposes only. The register bits are defined below. • • • Bit [31:28]: Module Select (R/W) – IDE0 Test Module Select. This bit field is used to select the logic module for testing: 0001B = DIF module; 0010B = TMR module; 0011B = PIF module; and, 0100B = DUW module. Bit [27:24]: Nibble Select (R/W) – IDE0 Test Control Nibble Select. This bit field is used to select the control nibble for testing. A value of 0001B selects the least significant nibble, while a value of 1000B selects the most significant nibble. Bit [23:16]: Sub-Module Select (R/W) – IDE0 Test Sub-Module Select. This bit field is used to select the logic sub-module for testing. The valid selections are listed below. Module Select Sub-Module Select Description 0001B 0001B FIFO Data 0010B 0001B Timer 1 0010B 0010B Timer 2 0010B 0011B Timer 3 0010B 0100B Timer 4 0011B 0001B PBM_BYTE_CNT 0011B 0010B WD_TMO 0100B 0001B DUW_TMR_CNT Table 9-10: IDE0 Test Register Selections • Bit [15:00]: Data Field (R/W) – IDE0 Test Data Field. This bit field is used to write a preload value to the selected counter or read the current value of the selected counter. SiI-DS-0069-C © 2006 Silicon Image, Inc. 93 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.38 Data Transfer Mode – IDE0 Address Offset: B4H Access Type: Read/Write Reset Value: 0x0000_0022 IDE0 Device 0 Transfer Mode Reserved Reserved Reserved IDE0 Device 1 Transfer Mode 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the transfer mode register for IDE Channel #0 in the SiI 0680A. The register bits are defined below. • • • • • Bit [31:08]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [07:06]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [05:04]: Device 1 Transfer Mode (R/W) – IDE0 Device 1 Data Transfer Mode. This bit field is used to set the data transfer mode on IDE side during PCI DMA transfer: 00B = PIO transfer with IORDY not monitored; 01B = PIO transfer with IORDY monitored; 10B = normal DMA; and, 11B = Ultra DMA. When this bit field is set to value other than 00B, SiI 0680A will monitor IORDY for normal PIO transfer. Bit [03:02]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [01:00]: Device 0 Transfer Mode (R/W) – IDE0 Device 0 Data Transfer Mode. This bit field is used to set the data transfer mode on IDE side during PCI DMA transfer: 00B = PIO transfer with IORDY not monitored; 01B = PIO transfer with IORDY monitored; 10B = normal DMA; and, 11B = Ultra DMA. When this bit field is set to value other than 00B, SiI 0680A will monitor IORDY for normal PIO transfer. 9.7.39 IDE1 Task File Register 0 Address Offset: C0H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE1 Task File Starting Sector Number IDE1 Task File Sector Count IDE1 Task File Features (W) IDE1 Task File Error (R) IDE1 Task File Data This register defines one of the IDE Channel #1 Task File registers in the SiI 0680A. Access to the individual bytes of this register is determined by the PCI bus Byte Enables at the time of the read or write operation. The register bits are defined below. • • • • • Bit [31:00]: IDE1 Task File Data (R/W). This bit field defines the IDE1 Task File Data register. This register can be accessed as an 8-bit, 16-bit, or 32-bit word, depending upon the PCI bus Byte Enables. The data written to this register must be zero-aligned. To access 8-bit Task File Data, the PCI bus Byte Enable for byte 0 must be active. To access 16-bit Task File Data, the Byte Enables for byte 1 and byte 0 must be active. To access 32-bit Task File Data, the Byte Enables for all four bytes must be active. Bit [31:24]: IDE1 Task File Starting Sector Number (R/W). This bit field defines the IDE1 Task File Starting Sector Number register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. Bit [23:16]: IDE1 Task File Sector Count (R/W). This bit field defines the IDE1 Task File Sector Count register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. Bit [15:08]: IDE1 Task File Features (W). This write-only bit field defines the IDE1 Task File Features register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. Bit [15:08]: IDE1 Task File Error (R). This read-only bit field defines the IDE1 Task File Error register. Access to this bit field is permitted if the PCI bus Byte Enable is active for this byte only. SiI-DS-0069-C © 2006 Silicon Image, Inc. 94 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.40 IDE1 Task File Register 1 Address Offset: C4H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE1 Task File Command + Status IDE1 Task File Device+Head IDE1 Task File Cylinder High IDE1 Task File Cylinder Low This register defines one of the IDE Channel #1 Task File registers in the SiI 0680A. Access to these bit fields is permitted if the PCI bus Byte Enable is active for one byte only. The register bits are defined below. • • • • • Bit [31:24]: register. Bit [31:24]: Bit [23:16]: register. Bit [15:08]: Bit [07:00]: IDE1 Task File Command (W). This write-only bit field defines the IDE1 Task File Command IDE1 Task File Status (R). This read-only bit field defines the IDE1 Task File Status register. IDE1 Task File Device+Head (R/W). This bit field defines the IDE1 Task File Device and Head IDE1 Task File Cylinder High (R/W). This bit field defines the IDE1 Task File Cylinder High register. IDE1 Task File Cylinder Low (R/W). This bit field defines the IDE1 Task File Cylinder Low register. 9.7.41 IDE1 Task File Register 2 Address Offset: C8H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved IDE1 Task File Device Control IDE1 Task File Auxiliary Status Reserved Reserved This register defines one of the IDE Channel #1 Task File registers in the SiI 0680A. Access to these bit fields is permitted if the PCI bus Byte Enable is active for one byte only. The register bits are defined below. • Bit [31:24]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [23:16]: IDE1 Task File Device Control (W). This bit field defines the IDE1 Task File Device Control register. • Bit [23:16]: IDE1 Task File Auxiliary Status (R). This bit field defines the IDE1 Task File Auxiliary Status register. • Bit [15:00]: Reserved (R). This bit field is reserved and returns zeros on a read. SiI-DS-0069-C © 2006 Silicon Image, Inc. 95 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.42 IDE1 Read/Write Ahead Data Address Offset: CCH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE1 Read Ahead Data This register defines the read ahead data port for PIO transfers on IDE Channel #1 in the SiI 0680A. This register can be accessed as an 8-bit, 16-bit, or 32-bit word, depending upon the PCI bus byte enables. The data written to this register must be zero-aligned. 9.7.43 IDE1 Task File Register 0 – Command Buffering Address Offset: D0H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE1 Task File Starting Sector Number IDE1 Task File Sector Count IDE1 Task File Features (W) IDE1 Task File Error (R) IDE1 Task File Data This register defines one of the IDE Channel #1 Task File registers used for Command Buffered accesses in the SiI 0680A. Access to the individual bytes of this register is determined by the PCI bus Byte Enables at the time of the read or write operation. The register bits are defined below. • • • • • Bit [31:00]: IDE1 Task File Data (R/W). This bit field defines the IDE1 Task File Data register. This register can be accessed as an 8-bit, 16-bit, or 32-bit word, depending upon the PCI bus byte enables. The data written to this register must be zero-aligned. To access 8-bit Task File Data, the PCI bus Byte Enable for byte 0 must be active. To access 16-bit Task File Data, the Byte Enables for byte 1 and byte 3 must be active. To access 32-bit Task File Data, the Byte Enables for all four bytes must be active. Bit [31:24]: IDE1 Task File Starting Sector Number (R/W). This bit field defines the IDE1 Task File Starting Sector Number register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 3 is active. Bit [23:16]: IDE1 Task File Sector Count (R/W). This bit field defines the IDE1 Task File Sector Count register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 2 is active. Bit [15:08]: IDE1 Task File Features (W). This write-only bit field defines the IDE1 Task File Features register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 1 is active. Bit [15:08]: IDE1 Task File Error (R). This read-only bit field defines the IDE1 Task File Error register. Access to this bit field is permitted only if the PCI bus Byte Enable for byte 1 is active. SiI-DS-0069-C © 2006 Silicon Image, Inc. 96 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.44 IDE1 Task File Register 1 – Command Buffering Address Offset: D4H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 IDE1 Task File Command + Status IDE1 Task File Device+Head IDE1 Task File Cylinder High IDE1 Task File Cylinder Low This register defines one of the IDE Channel #1 Task File registers used for Command Buffered accesses in the SiI 0680A. The register bits are defined below. • • • • • Bit [31:24]: register. Bit [31:24]: Bit [23:16]: register. Bit [15:08]: Bit [07:00]: IDE1 Task File Command (W). This write-only bit field defines the IDE1 Task File Command IDE1 Task File Status (R). This read-only bit field defines the IDE1 Task File Status register. IDE1 Task File Device+Head (R/W). This bit field defines the IDE1 Task File Device and Head IDE1 Task File Cylinder High (R/W). This bit field defines the IDE1 Task File Cylinder High register. IDE1 Task File Cylinder Low (R/W). This bit field defines the IDE1 Task File Cylinder Low register. 9.7.45 Rserved Register Address Offset: D8H Access Type: Read Only Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Reserved • This bit field is reserved and returns an indeterminate value on a read. SiI-DS-0069-C © 2006 Silicon Image, Inc. 97 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.46 IDE1 Virtual DMA/PIO Read Ahead Byte Count Address Offset: DCH Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Not Used IDE1 Virtual DMA/PIO Read Ahead Byte Count This register defines the read ahead byte count register for Virtual DMA and PIO Read Ahead transfers on IDE Channel #1 in the SiI 0680A. In Virtual DMA mode (PCI bus master DMA with PIO transfers on the IDE), all 32 bits are used as the wordaligned byte count. In PIO Read Ahead mode, only the lower 16 bits are used as the word-aligned byte count. The higher 16 bits must be programmed 0x0000. 9.7.47 IDE1 Task File Timing + Configuration + Status Address Offset: E0H Access Type: Read/Write Reset Value: 0x6515_0100 Cable 80 Channel Rst Buffered Cmd Reserved Channel Tri-State Virtual DMA Int IORDY Monitoring Interrupt Status Watchdog Ena Recovery Count Watchdog Timeout Active Count Reserved Addr Setup Count Watchdog Int Ena 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the task file timing register for IDE Channel #1 in the SiI 0680A. See chapter 11 for details on programming this timing register. The register bits are defined below. • Bit [31:28]: Addr Setup Count (R/W) – IDE1 Address Setup Time Count. This bit field is used for programming the address setup time relative to IDE1_DIOR_N and IDE1_DIOW_N. • Bit [27:22]: Active Count (R/W) – IDE1 DIOR_N and DIOW_N Active Time Count. This bit field is used for programming the active time of IDE1_DIOR_N and IDE1_DIOW_N. • Bit [21:16]: Recovery Count (R/W) – IDE1 DIOR_N and DIOW_N Recovery Time Count. This bit field is used for programming the recovery time of IDE1_DIOR_N and IDE1_DIOW_N. • Bit [15]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [14] : Watchdog Int Ena ( R/W ) – IDE1 Watchdog Interrupt Enable. This bit is set to enable Interrupt when Watchdog timer expired. • Bit [13]: Watchdog Ena (R/W) – IDE1 Watchdog Timer Enable. This bit is set to enable the watchdog timer for IDE1. This bit is cleared to disable the watchdog timer. • Bit [12]: Watchdog Timeout (R) – IDE1 Watchdog Timer Timeout. This bit set indicates that the watchdog timer for IDE1 timed out. When enabled, and IORDY monitoring bit is also enabled, during IDE0 PIO opeartion, the watchdog counter starts counting when IORDY signal is deasserted. If after 256 PCI clocks cycles, the IORDY signal is still deasserted, the Watchdog Timer is expires, and this bit is set and the SiI 0680A continue its operation and stop monitoring IORDY signal. Software writes one to clear this bit. Once this bit is cleared, the SiI 0680A starts monitoring IORDY on channel 1 again. • Bit [11]: Interrupt Status (R) – IDE1 Interrupt Status. This bit set indicates that an interrupt is pending on IDE1. This bit provides real-time status of the IDE1 interrupt pin. • Bit [10]: Virtual DMA Int (R) – IDE1 Virtual DMA Completion Interrupt. This bit set indicates that the Virtual DMA data transfer has completed. This bit is cleared when bit[0] PBM enable in PCI Bus Master – IDE1 is cleared . • Bit [09]: IORDY Monitoring (R/W) – IDE1 IORDY Monitoring. When this bit is set, IORDY line is monitored for Task File accesses on channel 1. • Bit [08:04]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [03]: Channel Tri-State (R/W) – IDE1 Channel Tri-State. This bit is set to tri-state the IDE Channel #1 bus. This bit is cleared for normal operations. • Bit [02]: Channel Rst (R/W) – IDE1 Channel Reset. When this bit is set, IDE Channel # 1 RST signal is asserted. SiI-DS-0069-C © 2006 Silicon Image, Inc. 98 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. • • Bit [01]: Buffered Cmd (R) – IDE1 Buffered Command Active. This bit set indicates that a Buffered Command is currently active. This bit is set when the first command byte is written to the comand buffer. This bit is cleared when all of the task file bytes, including the command byte, have been written to the device. Bit [00]: Cable 80 (R) – IDE1 Cable 80 Detection. This bit provides real-time status of the inverted version of the IDE1_CBLID_N pin. When set, it indicates that 80 pin cable is detected. 9.7.48 IDE1 PIO Timing Address Offset: E4H Access Type: Read/Write Reset Value: 0x62DD_62DD 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the PIO timing register for IDE Channel #1 in the SiI 0680A. See chapter 11 for details on programming this timing register. The register bits are defined below. • Bit [31:28]: Device 1 Addr Setup Count (R/W) – IDE1 Device 1 Address Setup Time Count for PIO Mode. This bit field is used for programming the address setup time relative to IDE1_DIOR_N and IDE1_DIOW_N in PIO mode. • Bit [27:22]: Device 1 Active Count (R/W) – IDE1 Device 1 DIOR_N and DIOW_N Active Time Count for PIO Mode. This bit field is used for programming the active time of IDE1_DIOR_N and IDE1_DIOW_N in PIO mode. • Bit [21:16]: Device 1 Recovery Count (R/W) – IDE1 Device 1 DIOR_N and DIOW_N Recovery Time Count for PIO Mode. This bit field is used for programming the recovery time of IDE1_DIOR_N and IDE1_DIOW_N in PIO mode. • Bit [15:12]: Device 0 Addr Setup Count (R/W) – IDE1 Device 0 Address Setup Time Count for PIO Mode. This bit field is used for programming the address setup time relative to IDE1_DIOR_N and IDE1_DIOW_N in PIO mode. • Bit [11:06]: Device 0 Active Count (R/W) – IDE1 Device 0 DIOR_N and DIOW_N Active Time Count for PIO Mode. This bit field is used for programming the active time of IDE1_DIOR_N and IDE1_DIOW_N in PIO mode. • Bit [05:00]: Device 0 Recovery Count (R/W) – IDE1 Device 0 DIOR_N and DIOW_N Recovery Time Count for PIO Mode. This bit field is used for programming the recovery time of IDE1_DIOR_N and IDE1_DIOW_N in PIO mode. SiI-DS-0069-C © 2006 Silicon Image, Inc. 99 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.49 IDE1 DMA Timing Address Offset: E8H Access Type: Read/Write Reset Value: 0x4392_4392 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 1 Addr Setup Count Device 1 Active Count Device 1 Recovery Count Device 0 Addr Setup Count Device 0 Active Count Device 0 Recovery Count This register defines the DMA timing register for IDE Channel #1 in the SiI 0680A. See chapter 11 for details on programming this timing register. The register bits are defined below. • Bit [31:28]: Device 1 Addr Setup Count (R/W) – IDE1 Device 1 Address Setup Time Count for DMA Mode. This bit field is used for programming the address setup time relative to IDE1_DIOR_N and IDE1_DIOW_N in DMA mode. • Bit [27:22]: Device 1 Active Count (R/W) – IDE1 Device 1 DIOR_N and DIOW_N Active Time Count for DMA Mode. This bit field is used for programming the active time of IDE1_DIOR_N and IDE1_DIOW_N in DMA mode. • Bit [21:16]: Device 1 Recovery Count (R/W) – IDE1 Device 1 DIOR_N and DIOW_N Recovery Time Count for DMA Mode. This bit field is used for programming the recovery time of IDE1_DIOR_N and IDE1_DIOW_N in DMA mode. • Bit [15:12]: Device 0 Addr Setup Count (R/W) – IDE1 Device 0 Address Setup Time Count for DMA Mode. This bit field is used for programming the address setup time relative to IDE1_DIOR_N and IDE1_DIOW_N in DMA mode. • Bit [11:06]: Device 0 Active Count (R/W) – IDE1 Device 0 DIOR_N and DIOW_N Active Time Count for DMA Mode. This bit field is used for programming the active time of IDE1_DIOR_N and IDE1_DIOW_N in DMA mode. • Bit [05:00]: Device 0 Recovery Count (R/W) – IDE1 Device 0 DIOR_N and DIOW_N Recovery Time Count for DMA Mode. This bit field is used for programming the recovery time of IDE1_DIOR_N and IDE1_DIOW_N in DMA mode. 9.7.50 IDE1 UDMA Timing Address Offset: ECH Access Type: Read/Write Reset Value: 0x4009_4009 Reserved Device 0 HSTROBE Delay Device 0 DSTROBE Delay Device 1 Cycle Time Count Device 0 Data Input Delay Reserved Device 1 HSTROBE Delay Device 1 DSTROBE Delay Device 1 Data Input Delay 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Device 0 Cycle Time Count This register defines the UDMA timing register for IDE Channel #1 in the SiI 0680A. See chapter 11 for details on programming this timing register. The register bits are defined below. • Bit [31:30]: Device 1 Data Input Delay (R/W) – IDE1 Device 1 Data Input Delay for UDMA Mode. This bit field is used for programming the data input delay in increments of 2 nsec in UDMA mode. • Bit [29:28]: Device 1 DSTROBE Delay (R/W) – IDE1 Device 1 DSTROBE Delay for UDMA Mode. This bit field is used for programming the DSTROBE output delay in increments of 2 nsec in UDMA mode. • Bit [27:25]: Device 1 HSTROBE Delay (R/W) – IDE1 Device 1 HSTROBE Delay for UDMA Mode. This bit field is used for programming the HSTROBE output delay in increments of 2 nsec in UDMA mode. • Bit [24:23]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [22]: Reserved (R/W) – This bit field is reserved. • Bit [21:16]: Device 1 Cycle Time Count (R/W) – IDE1 Device 1 UDMA Cycle Time Count. This bit field is used for programming the UDMA Active and Recovery Time. • Bit [15:14]: Device 0 Data Input Delay (R/W) – IDE1 Device 0 Data Input Delay for UDMA Mode. This bit field is used for programming the data input delay in increments of 2 nsec in UDMA mode. • Bit [13:12]: Device 0 DSTROBE Delay (R/W) – IDE1 Device 0 DSTROBE Delay for UDMA Mode. This bit field is used for programming the DSTROBE output delay in increments of 2 nsec in UDMA mode. SiI-DS-0069-C © 2006 Silicon Image, Inc. 100 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. • • • • Bit [11:09]: Device 0 HSTROBE Delay (R/W) – IDE1 Device 0 HSTROBE Delay for UDMA Mode. This bit field is used for programming the HSTROBE output delay in increments of 2 nsec in UDMA mode Bit [08:07]: Reserved (R). This bit field is reserved and returns zeros on a read. Bit [22]: Reserved (R/W) – This bit field is reserved. Bit [05:00]: Device 0 Cycle Time Count (R/W) – IDE1 Device 0 UDMA Cycle Time Count. This bit field is used for programming the UDMA Active and Recovery Time. 9.7.51 Test Register – IDE1 Address Offset: F0H Access Type: Read/Write Reset Value: 0x0000_0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Module Select Nibble Select Sub-Module Select Data Field This register defines the test register for IDE Channel #1 in the SiI 0680A. This register is for chip-level simulation and verification purposes only. The register bits are defined below. • Bit [31:28]: Module Select (R/W) – IDE1 Test Module Select. This bit field is used to select the logic module for testing: 0001B = DIF module; 0010B = TMR module; 0011B = PIF module; and, 0100B = DUW module. • Bit [27:24]: Nibble Select (R/W) – IDE1 Test Control Nibble Select. This bit field is used to select the control nibble for testing. A value of 0001B selects the least significant nibble, while a value of 1000B selects the most significant nibble. • Bit [23:16]: Sub-Module Select (R/W) – IDE1 Test Sub-Module Select. This bit field is used to select the logic sub-module for testing. The valid selections are listed below. Module Select Sub-Module Select Description 0001B 0001B FIFO Data 0010B 0001B Timer 1 0010B 0010B Timer 2 0010B 0011B Timer 3 0010B 0100B Timer 4 0011B 0001B PBM_BYTE_CNT 0011B 0010B WD_TMO 0100B 0001B DUW_TMR_CNT Table 9-11: IDE1 Test Register Selections • Bit [15:00]: Data Field (R/W) – IDE1 Test Data Field. This bit field is used to write a preload value to the selected counter or read the current value of the selected counter. SiI-DS-0069-C © 2006 Silicon Image, Inc. 101 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 9.7.52 Data Transfer Mode – IDE1 Address Offset: F4H Access Type: Read/Write Reset Value: 0x0000_0022 IDE1 Device 0 Transfer Mode Reserved Reserved Reserved IDE1 Device 1 Transfer Mode 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 This register defines the transfer mode register for IDE Channel #1 in the SiI 0680A. The register bits are defined below. • Bit [31:08]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [07:06]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [05:04]: Device 1 Transfer Mode (R/W) – IDE1 Device 1 Data Transfer Mode. This bit field is used to set the data transfer mode on IDE side during PCI DMA transfer: 00B = PIO transfer with IORDY not monitored; 01B = PIO transfer with IORDY monitored; 10B = normal DMA; and, 11B = Ultra DMA. When this bit field is set to value other than 00B, SiI 0680A will monitor IORDY for normal PIO transfer. • Bit [03:02]: Reserved (R). This bit field is reserved and returns zeros on a read. • Bit [01:00]: Device 0 Transfer Mode (R/W) – IDE0 Device 0 Data Transfer Mode. This bit field is used to set the data transfer mode on IDE side during PCI DMA transfer: 00B = PIO transfer with IORDY not monitored; 01B = PIO transfer with IORDY monitored; 10B = normal DMA; and, 11B = Ultra DMA. When this bit field is set to value other than 00B, SiI 0680A will monitor IORDY for normal PIO transfer. SiI-DS-0069-C © 2006 Silicon Image, Inc. 102 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 10. Design for Testability The SiI 0680A chip features internal scan for testability and fault coverage at the ASIC level, and a NAND tree for testability of the I/O pins at the board level. Test logic to support testing of the on-chip PLL is also included. Internal scan testing and PLL testing requires several bypass modes in the ASIC clocking system. These operational and bypass modes are illustrated in Fig. 10-1. SYS_NAND_TEST Test Register JP Nand Tree 1 PCI_INTA_N Normal Function 0 Normal Function 0 4K RST_PLL_TEST PCI_IDSEL & MEM_CS_N 1 & SCAN_MODE BA5_EN & 1 PLL_TEST_CLK_SEL P_CLK 33 MHz 2 & 0 SYS_IDE_CLKSEL[1:0] 2 PLL_TEST_MODE TEST_MODE PCI_GNT_N 3 & 3 133 MHz 2 0 1 1 0 I0_CLK ( FB Clock ) (Ref Clock) PLL PCI_CLK 100 MHz 0 (Test Clock) IDE0_DMARQ 2 5ns 2 2 0 1 1 I1_CLK PCI_CLK x 2 (Test Clock) IDE0_CBLID_N IDE1_CBLID_N SCAN_EN (Test Clock) To all scan flip flops Figure 10-1: SiI 0680A Clocking System and Test Feature Diagram SiI-DS-0069-C © 2006 Silicon Image, Inc. 103 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 10.1 Test Mode Register The test mode register selects the type of test to be performed and sets the I/O pins in the proper states. The test mode register in the SiI 0680A is programmed through the JP and TEST_MODE input pins. The test mode register is cleared by PCI reset. Table 10-1 lists the valid test mode settings. Register settings outside of those listed are ignored, and the chip operates in normal mode. 1 0 1 0 0 0 0 1 JP TEST_MODE Figure 10-2: Test Mode Register Programming (A1H) Test Mode Register Description A0H Simulation test mode #0 A1H Simulation test mode #1 AAH NAND tree test mode Table 10-1: Test Mode Register Selections 10.2 NAND Tree Test The SiI 0680A features a NAND tree for parametric testing of the I/O pins. NAND tree testing allows the ASIC foundry to validate input voltage thresholds and wire bond connections. At the board level, the NAND tree provides connectivity checks between the PCB and package pins (signal pins only), in lieu of full JTAG boundary scan. When the SiI 0680A is programmed for NAND tree test mode, all outputs and bi-directional pins are set to input mode. A logic representation of the NAND tree is shown in Fig. 10-2. Refer to Table 10-2 for the NAND tree order. SiI-DS-0069-C © 2006 Silicon Image, Inc. 104 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. IDE0_DD00 IDE0_DD01 NAND Test Mode SCAN_EN Normal Function 0 PCI_INTA_N 1 MEM_CS_N Figure 10-3: SiI 0680A NAND Tree Order Pin Name Order Pin Name Order Pin Name 1 IDE0_DD00 33 IDE1_DD03 65 PCI_AD26 2 IDE0_DD01 34 IDE1_DD04 66 PCI_AD25 3 IDE0_DD02 35 IDE1_DD05 67 PCI_AD24 4 IDE0_DD03 36 IDE1_DD06 68 PCI_CBE3 5 IDE0_DD04 37 IDE1_DD07 69 PCI_IDSEL 6 IDE0_DD05 38 IDE1_DD08 70 PCI_AD23 7 IDE0_DD06 39 IDE1_DD09 71 PCI_AD22 8 IDE0_DD07 40 IDE1_DD10 72 PCI_AD21 9 IDE0_DD08 41 IDE1_DD11 73 PCI_AD20 10 IDE0_DD09 42 IDE1_DD12 74 PCI_AD19 11 IDE0_DD10 43 IDE1_DD13 75 PCI_AD18 12 IDE0_DD11 44 IDE1_DD14 76 PCI_AD17 13 IDE0_DD12 45 IDE1_DD15 77 PCI_AD16 14 IDE0_DD13 46 IDE1_CS0_N 78 PCI_CBE2 15 IDE0_DD14 47 IDE1_CS1_N 79 PCI_FRAME_N 16 IDE0_DD15 48 IDE1_DA0 80 PCI_IRDY_N 17 IDE0_CS0_N 49 IDE1_DA1 81 PCI_TRDY_N 18 IDE0_CS1_N 50 IDE1_DA2 82 PCI_DEVSEL_N 19 IDE0_DA0 51 IDE1_DIOR_N 83 PCI_STOP_N 20 IDE0_DA1 52 IDE1_DIOW_N 84 PCI_PERR_N Table 10-2: SiI 0680A NAND Tree Order SiI-DS-0069-C © 2006 Silicon Image, Inc. 105 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 21 IDE0_DA2 53 IDE1_CBLID_N 85 PCI_SERR_N 22 IDE0_DIOR_N 54 IDE1_DMACK_N 86 PCI_PAR 23 IDE0_DIOW_N 55 IDE1_INTRQ 87 PCI_CBE1 24 IDE0_DMACK_N 56 IDE1_IORDY 88 PCI_AD15 25 IDE0_CBLID_N 57 IDE1_DMARQ 89 PCI_AD14 26 IDE0_INTRQ 58 IDE1_RST_N 90 PCI_AD13 27 IDE0_IORDY 59 JP 91 PCI_AD12 28 IDE0_DMARQ 60 PCI_AD31 92 PCI_AD11 29 IDE0_RST_N 61 PCI_AD30 93 PCI_AD10 30 IDE1_DD00 62 PCI_AD29 94 PCI_AD09 31 IDE1_DD01 63 PCI_AD28 95 PCI_AD08 32 IDE1_DD02 64 PCI_AD27 96 PCI_CBE0 97 PCI_AD07 102 PCI_AD02 107 BA5_EN 98 PCI_AD06 103 PCI_AD01 108 PCI_CLK 99 PCI_AD05 104 PCI_AD00 109 SCAN_EN 100 PCI_AD04 105 PCI_REQ_N 110 MEM_CS_N 101 PCI_AD03 106 PCI_GNT_N Table 10-2, SiI 0680A NAND Tree Order (continued) 10.3 Full Chip Internal Scan The SiI 0680A generates SCAN_MODE internal signal by asserting logic “1” on the following input pins TEST_MODE, BA5_EN, and PCI_GNT_N. The SCAN_MODE signal selects the source for the scan clocks and sets internal latches open during scan. The internal clocks for scan are provided as shown in Fig. 10-1, by the following pins: External Input Pins: PCI_CLK IDE0_CBLID IDE1_CBLID Internal Scan Clock: P_CLK I0_CLK I1_CLK Additionally, SCAN_EN selects between normal inputs and scan inputs at all the scan flip-flops is provided by the input pin SCAN_EN. There are six scan chains with input pins and output pins as follows: SCAN CHAIN SCAN INPUT PIN 1 IDE0_DMARQ 2 IDE0_INTRQ 3 IDE0_IORDY 4 IDE1_DMARQ 5 IDE1_INTRQ 6 IDE1_IORDY SCAN OUTPUT PIN PCI_AD0 PCI_AD1 PCI_AD2 PCI_AD3 PCI_AD4 PCI_AD5 SiI-DS-0069-C © 2006 Silicon Image, Inc. 106 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 10.4 PLL TEST 10.4.1 BYPASSING the VCO The VCO in the analog phase-locked loop must be bypassed during digital logic simulation, to allow direct control of the PLL output clock. When PLL_CPBIAS is forced high the reference clock (PCI_CLK) is muxed to the PLL output. Automatic test equipment at the foundry also requires this test functionality to run the digital test vectors. 10.4.2 TESTING the VCO A divide-by-4K counter is used to measure the VCO frequency for any controlled voltage at the PLL_LOOPFLT pin. Normal Function 0 4K RST_PLL_TEST PCI_IDSEL & MEM_CS_N 1 & SCAN_MODE BA5_EN & 1 PLL_TEST_CLK_SEL 2 & 0 2 PLL_TEST_MODE TEST_MODE PCI_GNT_N P_CLK 33 MHz & 3 ( FB Clock ) (Ref Clock) PCI_CLK PLL 0 (Test Clock) IDE0_DMARQ 1 PLL_CPBIAS Figure 10-4: PLL Test Logic SiI-DS-0069-C © 2006 Silicon Image, Inc. 107 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 11. Programming Sequences 11.1 Recommended Initialization Sequence for the SiI 0680A The recommended initialization sequence for the SiI 0680A is detailed below. Initialize PCI Configuration Space registers • Initialize Base Address Register 0 with the address of an 8-byte range in I/O space. • Initialize Base Address Register 1 with the address of a 4-byte range in I/O space. • Initialize Base Address Register 2 with the address of an 8-byte range in I/O space. • Initialize Base Address Register 3 with the address of a 4-byte range in I/O space. • Initialize Base Address Register 4 with the address of a 16-byte range in I/O space. • Initialize Base Address Register 5 with the address of a 256-byte range in memory space. • To enable the bios expansion ROM, initialize the Expansion ROM Base Address Register with the address of a 512KB range in memory space. • Enable I/O space access, memory space access, and bus master operation by setting bits [2:0] of the PCI Command register. NOTE: The preceding configuration space register initialization is normally done by the motherboard BIOS in PC type systems. Set IDE clock frequency by programming bits [21:20] of the System Configuration Status and Command register at offset 88H in configuration space, or at base address 5, offset 48H. If the PCI-IDE arbiter’s default FIFO read/write request thresholds are not suitable for the application they may be changed via the FIFO Valid Byte Count and Control IDEx register. The read threshold is defined by bits [05:00], and the write threshold is defined by bits [13:08] in the FIFO Valid Byte Count and Control – IDEx register. In most environments, setting these bit fields to zero results in the best utilization of the PCI bus by the 680A controller. If interrupt driven operation is not desired, set bits [23:22] of the System Configuration Status and Command register to block IDE interrupts from reaching the PCI bus. 11.2 ATA/ATAPI Device Initialization This section provides a general overview of the steps necessary to initialize an ATA/ATAPI device before it can be used for read/write operations. Select the ATA/ATAPI device. The device is selected by programming bits [23:16] in the IDEx Task File Register 1 register. If interrupt driven operation is desired, ensure that IDE interrupts are enabled by writing 0 to bits [23:16] of the IDEx Task File Register 2 register. For ATA devices only: Issue the Initialize Device Parameters command by • Programming bits [23:16] in the IDEx Task File 0 register with the number of logical sectors per logical track. • Programming bits [23:16] in the IDEx Task File 1 register with the maximum head number. • Programming bits [31:24] in the IDEx Task File Register 1 register with the value = 91H. • Wait for the command to complete. This can be accomplished by waiting for an interrupt if interrupts have been enabled at both the controller and the device. If interrupts are not SiI-DS-0069-C © 2006 Silicon Image, Inc. 108 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. enabled, command completion can be detected by polling bits [31:24] of the IDEx Task File Register 1 register until the BUSY bit is no longer asserted. If device supports read/write multiple commands, issue the Set Multiple Mode command by: • Programming bits [23:16] in the IDEx Task File 0 register with the number of sectors per block to use on the following Read/Write Multiple commands. • Programming bits [31:24] in the IDEx Task File Register 1 register with the value = C6H. • Wait for the command to complete (see above). For both ATA and ATAPI devices: Set device transfer mode by: • Programming bits [15:08] in the IDEx Task File 0 register with the value 03H to “Set the transfer mode based on value in Sector Count Register”. • Programming bits [23:16] in the IDEx Task File 0 register to the desired transfer mode. The settings are defined below: 08H = PIO Mode 0 09H = PIO Mode 1 0AH = PIO Mode 2 0BH = PIO Mode 3 0CH = PIO Mode 4 20H = Multiword DMA Mode 0 21H = Multiword DMA Mode 1 22H = Multiword DMA Mode 2 40H = Ultra DMA Mode 0 41H = Ultra DMA Mode 1 42H = Ultra DMA Mode 2 43H = Ultra DMA Mode 3 44H = Ultra DMA Mode 4 45H = Ultra DMA Mode 5 46H = Ultra DMA Mode 6 • • Programming bits [31:24] in the IDEx Task File Register 1 register with the value = EFH. Wait for the command to complete (see above). NOTE: An 80-pin cable is required to ensure signal quality can be maintained for transfer modes higher than Ultra DMA mode 2. When bit 0 of the IDEx Task File Timing + Configuration + Status register is set, an 80-pin cable may be present (see the ATA/ATAPI specification for details on how this bit should be interpreted). 11.3 Initialization of Controller Channel Timing Registers There are four types of timing registers associated with a channel. The IDEx Task File Timing + Configuration + Status register controls the timing of ATA/ATAPI device task file register accesses (except for accesses to the data register). Since this register controls the task file access timing for all devices attached to the channel, it is important to program this register with values that do not exceed the capabilities of the slowest device attached to the channel. The IDEx PIO Timing register controls the access timing of the task file data register when programmed I/O is used to transfer data to or from the device. The IDEx DMA Timing register controls the data transfer timing when the device and controller have been setup to use a multiword DMA transfer mode. The IDEx UDMA Timing register controls the data transfer timing when the device and controller have been setup to use an Ultra DMA transfer mode. Data transfer timing can be set independently for each device. The following steps need to be performed to configure the controller timing to match the transfer mode selected for the ATA/ATAPI device: Set the task file register access timing. The task file register timing is set by programming bits [31:16] of the IDEx Task File Timing + Configuration + Status register. See section 13.2.1 for recommended values to SiI-DS-0069-C © 2006 Silicon Image, Inc. 109 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. SiI-DS-0069-C © 2006 Silicon Image, Inc. 110 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Issue a PIO Read/Write command to device following the steps in section 11.4. Read Operation Wait until an IDE channel interrupt (bit 11 in the IDEx Task File Timing + Configuration + Status register is set). Read the device status at bits [31:24] in the IDEx Task File Register 1 register to clear the device interrupt and determine if there was error. If no error, continue to read IDE data via the IDEx Task File Register 0 register, until the expected number of sectors of data per interrupt are read. Repeat the above three steps until all data for the read command has been transferred or an error has been detected. Write Operation Wait until bit 27(DRQ) in the IDEx Task File Register 1 register is set. Continue to write IDE data via the IDEx Task File Register 0 register until the expected number of sectors of data per interrupt are written. Wait until an IDE channel interrupt (bit 11 in the IDEx Task File Timing + Configuration + Status register is set). Read the device status at bits [31:24] in the IDEx Task File Register 1 register to clear the device interrupt and determine if there was error. If no error, repeat the previous four steps until all data for the write command has been transferred or an error has been detected. 11.6 Watchdog Timer Operation The purpose of the watchdog timer is to prevent the host system from hanging because a device operating in PIO mode stopped responding to task file accesses. In PIO modes 0, 1, and 2, device access is completely controlled by the values programmed into the Task File Timing and PIO Timing registers. In these modes it is not possible for a non-responsive device to hang-up the host system. However, in PIO modes 3 and 4, device task file accesses are not regulated by the timing registers alone, but can also be controlled by the device through the use of the IORDY signal. If, during a task file access by the host, the device negates IORDY and then stops responding, the host will hang waiting for the access to complete. It is this type of hang, that the watchdog timer is designed to protect against. The watchdog timer monitors the length of time the IORDY signal is negated. If the watchdog timer detects that the the IORDY signal has remained negated longer than the watchdog timeout period (approximately 7.75us), the watchdog timer will force the task file access cycle to complete, and set the watchdog timeout bit in the IDEx Task File Timing + Configuration + Status register. The data associated with a timed out access should be considered invalid. Additionally, the watchdog timer can be configured to generate an interrupt when a timeout is detected by setting bit 14 of the IDEx Task File Timing + Configuration + Status register. The watchdog timer feature is disabled by default. In addition to the controller channel initialization specified in section 11.3, add the following two steps to enable the watchdog timer: Enable the watchdog timer by setting bit 13 of the IDEx Task File Timing + Config + Status register. If an interrupt is desired whenever the watchdog times out, enable the watchdog interrupt by setting bit 14 of the IDEx Task File Timing + Config + Status register. The following programming sequences are needed for each PIO Mode 3 or 4 Read/Write Operation with the watchdog timer enabled: Issue a Read/Write PIO Command to the ATA drive following the steps in section 11.4. SiI-DS-0069-C © 2006 Silicon Image, Inc. 111 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Read Operation Wait for an IDE channel interrupt. If controller interrupts are disabled, poll for the IDE interrupt by reading the IDEx Task File Timing + Configuration + Status register. If bit 12 is set, a watchdog timeout has occurred. If bit 11 is set, the ATA device is interrupting. If the watchdog timeout bit is set, Write 1 to bit 12 in the IDEx Task File Timing + Configuration + Status register to clear watchdog timeout status. The watchdog timeout represents a fatal error as far as the current ATA command is concerned. A course of action that might be appropriate at this point might be to reset and reinitialize the ATA channel and then retrying the command that failed. If the ATA device interrupt bit is set, Read the device status at bits [31:24] in the IDEx Task File Register 1 register to clear the device interrupt and determine if there was an error. Write 1 to bit 18 of the PCI Bus Master – IDEx Register to i clear the latched interrupt status. Note that clearing the PCI interrupt does not clear bit 18 as this bit needs to be cleared separately. If the ATA device is not reporting an error, continue to read IDE data via the IDEx Task File Register 0 register, until the expected number of sectors of data per interrupt are read. Repeat the read operation steps until all data for the read command has been transferred or an error has been detected. Write Operation Wait until bit 27(DRQ) in the IDEx Task File Register 1 register is set. Continue to write IDE data via the IDEx Task File Register 0 register until the expected number of sectors of data per interrupt are written. Wait for an IDE channel interrupt. If controller interrupts are disabled, poll for the IDE interrupt by reading the IDEx Task File Timing + Configuration + Status register. If bit 12 is set, a watchdog timeout has occurred. If bit 11 is set, the ATA device is interrupting. If the watchdog timeout bit is set, Write 1 to bit 12 in the IDEx Task File Timing + Configuration + Status register to clear watchdog timeout status. The watchdog timeout represents a fatal error as far as the current ATA command is concerned. A course of action that might be appropriate at this point might be to reset and reinitialize the ATA channel and then retrying the command that failed. If the ATA device interrupt bit is set, Read the device status at bits [31:24] in the IDEx Task File Register 1 register to clear the device interrupt and determine if there was an error. Write 1 to bit 18 of the PCI Bus Master – IDEx Register to clear the ATA interrupt. If no error, repeat the write operation steps until all data for the write command has been transferred or an error has been detected. SiI-DS-0069-C © 2006 Silicon Image, Inc. 112 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 11.7 IDE PIO Mode Read Ahead Operation Read ahead operation allows the controller to “pre-fetch” data from the IDE bus and store it in the controller’s channel fifo, where it will later be retrieved by the host. This mode of operation has the potential to speed-up PIO data transfers by not forcing the host to wait the programmed PIO cycle time for every access to the task file data register. The amount of any speed increase will depend on the PIO mode in use, the characteristics of the host PCI bus, as well as the speed of the host processor. To use the controller’s PIO read ahead capability, make the following changes to the “Read Operation” portion of sections 11.5 and 11.6. Just prior to retrieving the read data, set the read ahead byte count by programming bits [15:00] in the IDEx Virtual DMA/PIO Read Ahead Byte Count register with the exact number of bytes to be read for the interrupt. Instead of reading the IDEx Task File Register 0 register to retrieve the data, read the IDEx Read Ahead Data register instead. 11.8 IDE MDMA/UDMA 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 MDMA/UDMA mode data transfer per the guidelines in section 11.2, and the controller channel has been initialized for MDMA/UDMA mode data transfer per the instructions in section 11.3, DMA read/write operations may be performed by following the programming sequence described below. Issue a DMA read/write command to the device following steps in section 11.4. Program Bus Master Registers Clear bit 17 in the PCI Bus Master – IDEx register. This bit is set if an error occurred during the previous DMA access. Clear bit 18 in the PCI Bus Master – IDEx register. This bit is set if an IDE interrupt occurred during the previous DMA access. Create a Physical Region Descriptor (PRD) Table. A PRD table is an array where each entry describes the location and size of a physical memory buffer that will be used during the DMA operation. Each PRD table entry is 64-bits in length, formatted as follows; bits [31:0] contain the 32-bit starting address of the memory buffer, bits [47:32] contain the 16-bit size of the memory buffer, bits [62:48] are normally unused (see section 11.10 for details of how these bits may be used), bit 63 flags the end of the PRD table and therefore should only be set in the last entry of the PRD table. The PRD table itself must be constructed in a memory region that can be directly accessed by the 680A controller. Once the PRD table is built, the controller must be informed of its location. This is accomplished by writing the 32-bit address of the PRD table to the PRD Table Address – IDEx register. Enable DMA transfer. DMA is enabled by writing bits [7:0] of the PCI Bus Master – IDEx register. Bit 3 of this register controls the direction of the DMA transfer; 1 = write to memory, 0 = read from memory. Setting bit 0 of the register enables the controller to perform DMA operations. Note: Task file registers are inaccessible as long as bit 0 is set. Wait for a PCI interrupt. When a PCI interrupt occurs, read the PCI Master – IDEx status register and check the DMA status bits. The possible combinations of the status bits [18:16] are defined below. 000B = If the IDE device does not report an error, then the PRD table specified a size that is smaller than the IDE transfer size. 001B = DMA transfer in progress. 010B = The controller had a problem transferring data to/from memory. 100B = Normal completion. 101B = If the IDE device does not report an error, then the PRD specified a size that is larger than the IDE transfer size. SiI-DS-0069-C © 2006 Silicon Image, Inc. 113 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Make sure PCI bus master operation of the SiI 0680A is stopped by clearing bit 0 of the PCI Bus Master – IDEx register. Note: The task file registers are not accessible as long as bit 0 is set. Clearing bit 0 causes bit 16 to be cleared as well. Read the device status at bits [13:24] in the IDEx Task File Register 1 register to clear the device interrupt and determine if there was error. Write ‘1’ to bit 18 (write-one-to-clear) in the PCI Bus Master – IDEx register to clear the PCI Interrupt. 11.9 IDE Virtual DMA Read/Write Operation In virtual DMA operation the controller uses a PIO data transfer mode to move data between an ATA/ATAPI device and the controller, and uses DMA to move that same data between the controller and the host memory. For ATA/ATAPI devices that cannot operate in a “true” DMA mode, virtual DMA provides two benefits; first, using DMA to move data reduces the demand on the host CPU, and second, systems that use virtual memory often require that data buffers that will be accessed directly by low level device drivers be “mapped” into the operating system’s address space, in virtual DMA mode the CPU does not access the data buffer directly, so the overhead of obtaining the mapping to operating system address space is eliminated. 11.9.1 Using Virtual DMA with Non-DMA Capable Devices 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, virtual DMA read/write operations may be performed by following the programming sequence described below. NOTE: The watchdog timer feature is compatible with virtual DMA operation. See section 11.7 for details about using the watchdog timer. Issue a PIO read/write command to the device following steps in section 11.4. Read Operation Wait for a PCI interrupt. Read the DMA status bits [18:16] of the PCI Bus Master – IDEx register, and check that bit 18 is set to make sure the interrupt was generated by the expected channel. If expected channel interrupted, read bits [11:10] of the channel’s IDEx Task File Timing + Configuration + Status register to determine the cause of the interrupt. Bit 11 is set if the ATA/ATAPI device has an interrupt pending, bit 10 is set if a virtual DMA operation completed. If a virtual DMA operation completed, Write 00H to bits [7:0] of the PCI Bus Master – IDEx register to disable DMA operation. Write 1 to bits [18:17] of the PCI Bus Master –IDEx register to reset the DMA status and virtual DMA interrupt bits, and the PCI interrupt. Check the previously read DMA status bits to ensure the DMA completed successfully. See section 11.8 for more information about interpreting the DMA status bits. Because ATA/ATAPI commands that transfer data using PIO can generate several interrupts during the data transfer phase of the command, a race condition is created between the interrupt indicating the completion of a virtual DMA operation, and the interrupt from the ATA/ATAPI device indicating it is ready to perform the next part of the data transfer. To prevent missing an ATA/ATAPI device interrupt due to this race condition, it is necessary to re-read the channel’s IDEx Task File Timing + Configuration + Status register after disabling DMA operation and examining bit SiI-DS-0069-C © 2006 Silicon Image, Inc. 114 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 11. If bit 11 is set, the ATA/ATAPI device is interrupting and should be serviced by following the steps below (assuming that the virtual DMA operation completed successfully). If the ATA/ATAPI device has interrupted, Read the device status at bits [31:24] in the IDEx Task File Register 1 register to clear the device interrupt and determine if there was an error. Write 1 to bit 18 of the PCI Bus Master – IDEx register to clear the DMA Complete bit (NOTE: The DMA Complete bit acts as a latched copy of the ATA interrupt line when the channel is not performing a DMA operation). If the ATA/ATAPI device is not reporting an error, and DRQ is asserted (bit 27 of IDEx Task File Register 1), then the device is interrupting to transfer data to the host. To transfer the data, the DMA registers are setup to only perform that part of the data transfer expected for this interrupt. The DMA is setup similarly to the way it is when performing a normal read DMA command, but with one additional step. Before the DMA is enabled, the IDEx Virtual DMA/PIO Read Ahead Byte Count register must be written with the 32-bit count of the number of bytes to be transferred for this interrupt. Repeat the above steps until all data for the read command has been transferred or an error has been detected. Write Operation Poll the IDEx Task File Register 1 bits [31:24] until either bit 27 (DRQ) is set indicating the device is ready for write data transfer, or bit 24 (ERR) is set indicating the device has detected an error with the write command. If no error, and DRQ is asserted (bit 27 of IDEx Task File Register 1), then the device is waiting for write data transfer. To transfer the data, the DMA registers are setup to only perform that part of the data transfer expected at this time. For example, a Write Sectors command would expect to transfer 1 sector (512 bytes), while a Write Multiple command would expect to transfer the lesser of the number of sectors set by the Set Multiple Mode command or the total number of sectors specified by the Write Multiple command. The DMA is setup similarly to the way it is when performing a normal write DMA command, but with one additional step. Before the DMA is enabled, the IDEx Virtual DMA/PIO Read Ahead Byte Count register must be written with the 32-bit count of the number of bytes to be transferred. Wait for a PCI interrupt. Read the DMA status bits [18:16] of the PCI Bus Master – IDEx register, and check that bit 18 is set to make sure the interrupt was generated by the expected channel. If expected channel interrupted, read bits [11:10] of the channel’s IDEx Task File Timing + Configuration + Status register to determine the cause of the interrupt. Bit 11 is set if the ATA/ATAPI device has an interrupt pending, bit 10 is set if a virtual DMA operation completed. If a virtual DMA operation completed, Write 00H to bits [7:0] of the PCI Bus Master – IDEx register to disable DMA operation. Write 1 to bits [18:17] of the PCI Bus Master –IDEx register to reset the DMA status and virtual DMA interrupt bits, and PCI interrupt. Check the previously read DMA status bits to ensure the DMA completed successfully. See section 11.8 for more information about interpreting the DMA status bits. Because ATA/ATAPI commands that transfer data using PIO can generate several interrupts during the data transfer phase of the command, a race condition is created between the interrupt indicating the completion of a virtual DMA operation, and the interrupt from the ATA/ATAPI device indicating it is ready to perform the next part of the data transfer. To prevent missing an ATA/ATAPI device interrupt due to this race condition, it is necessary to re-read the channel’s IDEx Task File Timing + Configuration + Status register after disabling DMA operation and examining bit 11. If bit 11 is set, the ATA/ATAPI device is interrupting and should be serviced by following the steps below (assuming that the virtual DMA operation completed successfully). SiI-DS-0069-C © 2006 Silicon Image, Inc. 115 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. If the ATA/ATAPI device has interrupted, Read the device status at bits [31:24] in the IDEx Task File Register 1 register to clear the device interrupt and determine if there was an error. Write 1 to bit 18 of the PCI Bus Master – IDEx register to clear the DMA Complete bit (NOTE: The DMA Complete bit acts as a latched copy of the ATA interrupt line when the channel is not performing a DMA operation). If the ATA/ATAPI device is not reporting an error, and DRQ is asserted (bit 27 of IDEx Task File Register 1), then the device is interrupting to transfer data to the device. To transfer the data, the DMA registers are setup to only perform that part of the data transfer expected for this interrupt. The DMA is setup similarly to the way it is when performing a normal write DMA command, but with one additional step. Before the DMA is enabled, the IDEx Virtual DMA/PIO Read Ahead Byte Count register must be written with the 32-bit count of the number of bytes to be transferred for this interrupt. Repeat the above steps starting at “Wait for PCI interrupt” until all data for the write command has been transferred or an error has been detected. 11.9.2 Using Virtual DMA with DMA Capable Devices Even though a device may be DMA capable, there are ATA/ATAPI commands that require that a PIO mode be used to transfer data. For these commands, virtual DMA can be used to perform the data transfer. Using virtual DMA with an ATA/ATAPI device that has already been configured to use DMA for normal read/write operation is performed very much like the sequence described above for PIO mode only devices, but with the following additional considerations: • The Data Transfer Mode – IDEx register associated with the ATA/ATAPI device needs to be programmed for a PIO type transfer mode before DMA operation is enabled, and must be reprogrammed with the DMA/UDMA transfer type used during normal DMA operation once the virtual DMA operation is complete. • A PIO mode compatible with the device should be programmed into the appropriate IDEx – PIO Timing register. This register does not have to be written for every command that uses virtual DMA, instead it should be written as part of the controller initialization sequence. 11.10 Second PCI Bus Master Registers Usage In order to provide backward compatibility with existing drivers, the Physical Region Descriptor (PRD) tables used by the 680A controller when performing DMA transfers suffer the following limitations; a PRD table entry cannot represent a memory area greater than 64k, nor can a PRD table entry represent a memory area that spans a 64k address boundary. Whenever DMA is initiated via the PCI Bus Master – IDEx registers, the foregoing limitations are enforced by the 680A controller. A feature known as Large Block Transfer has been added to the SiI 0680A controller to allow new drivers to get around the 64k size and address limits of PRD table entries expected by existing drivers. Large Block Transfer simplifies the creation of PRD tables by reducing the number of table entries that need to be created and eliminating the need to make sure a memory region does not cross a 64k boundary. Large Block Transfer mode is enabled whenever DMA is initiated by writing to the PCI Bus Master 2 – IDEx registers (base address 5, offset 10H or 18H). When performing DMA in Large Block Transfer mode, the 680A controller interprets the fields of a PRD table entry differently. In all other respects, DMA interrupt generation, DMA status bit interpretation, etc…, Large Block Transfer mode behaves identically to a non-Large Block Transfer mode DMA operation. The following table describes the format of a PRD table entry: Bits 31:0 Bits 47:32 Bits 62:48 32-bit starting address of the memory region. When not operating in Large Block Transfer mode, this field specifies the size of the memory region. If the size of the memory region is greater than 64k, or crosses a 64k address boundary, then two or more PRD table entries will need to be created to describe it. If operating in Large Block Transfer mode, this field contains the least significant 16-bits of the size of the memory region. If not operating in Large Block Transfer mode, this field is unused. SiI-DS-0069-C © 2006 Silicon Image, Inc. 116 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Bit 63 If operating in Large Block Transfer mode, this field contains the most significant 15-bits of the size of the memory region. When set, this bit indicates that this is the last entry in the PRD table. Table 11-1, Physical Region Descriptor (PRD) Format SiI-DS-0069-C © 2006 Silicon Image, Inc. 117 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 12. FLASH and EEPROM Programming Sequences 12.1 FLASH Memory Access The SiI 0680A supports an external FLASH memory device up to 4 Mbits in capacity. Access to the FLASH memory is available through two means: PCI Direct Access and Register Access. 12.1.1 PCI Direct Access Access to the Expansion Rom is enabled by setting bit 0 in the Expansion Rom Base Address register at Offset 30h of the PCI Configuration Space. When this bit is set, bits [31:19] of the same register are programmable by the system to set the base address for all FLASH memory accesses. Read and write operations with the FLASH memory are initiated by Memory Read and Memory Write commands on the PCI bus. Accesses may be as Bytes, Words, or DWords. 12.2.2 Register Access This type of FLASH memory access is carried out through a sequence of internal register read and write operations. The proper programming sequences are detailed below. FLASH Write Operation Verify that bit 25 is cleared in the register at Offset 50H of Base Address 5. The bit reads one when a memory access is currently in progress. It reads zero when the memory access is complete and ready for another operation. Program the write address for the FLASH memory access. The address field is defined by bits [18:00] in the FLASH Memory Address – Command + Status register. Program the write data for the FLASH memory access. The data field is defined by bits [07:00] in the FLASH Memory Data register at Offset 54 of Base Address 5. Program the memory access type . The memory access type is defined by bit 24 in the FLASH Memory Address – Command + Status register. The bit must be cleared for a memory write access. Initiate the FLASH memory access by setting bit 25 in the FLASH Memory Address – Command + Status register. FLASH Read Operation Verify that bit 25 is cleared in the FLASH Memory Address – Command + Status register at Offset 50H of Base Address 5. The bit reads one when a memory access is currently in progress. It reads zero when the memory access is complete and ready for another operation. Program the read address for the FLASH memory access. The address field is defined by bits [18:00] in the FLASH Memory Address – Command + Status register. Program the memory access type. The memory access type is defined by bit 24 in the FLASH Memory Address – Command + Status register. The bit must be set for a memory read access. Initiate the FLASH memory access by setting bit 25 in the FLASH Memory Address – Command + Status register. Verify that bit 25 is cleared in the FLASH Memory Address – Command + Status register. The bit reads one when a memory access is currently in progress. It reads zero when the memory access is complete. Read the data from the FLASH memory access. The data field is defined by bits [07:00] in the FLASH Memory Data register at Offset 54H of Base Address 5. SiI-DS-0069-C © 2006 Silicon Image, Inc. 118 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 12.2 EEPROM Memory Access The SiI 0680A supports an external 256-byte EEPROM memory device. Access to the EEPROM memory is available through internal register operations in the SiI 0680A. EEPROM Write Operation Verify that bit 25 is cleared in the EEPROM Memory Address – Command + Status register at Offset 58H of Base Address 5. The bit reads one when a memory access is currently in progress. It reads zero when the memory access is complete and ready for another operation. Write ‘1’ to clear bit 28 in the EEPROM Memory Address – Command + Status register. The bit is set if an error occurred during a previous memory access. Program the write address for the EEPROM memory access. The address field is defined by bits [07:00] in the EEPROM Memory Address – Command + Status register. Program bits [15:08] to zero. Program the write data for the EEPROM memory access. The data field is defined by bits [07:00] in the EEPROM Memory Data register at Offset 5CH of Base Address 5. Program the memory access type. The memory access type is defined by bit 24 in the EEPROM Memory Address – Command + Status register. The bit must be cleared for a memory write access. Initiate the EEPROM memory access by setting bit 25 in the EEPROM Memory Address – Command + Status register. Poll bit 25 in the EEPROM Memory Address – Command + Status register. The bit reads one when a memory access is currently in progress. It reads zero when the memory access is complete. Check bit 28 in the EEPROM Memory Address – Command + Status register. The bit is set if an error occurred during a previous memory access. EEPROM Read Operation Verify that bit 25 is cleared in the EEPROM Memory Address – Command + Status register at Offset 58H of Base Address 5. The bit reads one when a memory access is currently in progress. It reads zero when the memory access is complete and ready for another operation. Write ‘1’ to clear bit 28 in the EEPROM Memory Address – Command + Status register. The bit is set if an error occurred during a previous memory access. Program the read address for the EEPROM memory access. The address field is defined by bits [07:00] in the EEPROM Memory Address – Command + Status register. Program bits [15:08] to zero. Program the memory access type. The memory access type is defined by bit 24 in the EEPROM Memory Address – Command + Status register. The bit must be set for a memory read access. Initiate the EEPROM memory access by setting bit 25 in the EEPROM Memory Address – Command + Status register. Poll bit 25 in the EEPROM Memory Address – Command + Status register. The bit reads one when a memory access is currently in progress. It reads zero when the memory access is complete. Check bit 28 in the EEPROM Memory Address – Command + Status register. The bit is set if an error occurred during a previous memory access. Read the data from the EEPROM memory access. The data field is defined by bits [07:00] in the EEPROM Memory Data register at Offset 5CH of Base Address 5. SiI-DS-0069-C © 2006 Silicon Image, Inc. 119 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 13. SiI 0680A Timing Registers 13.1 Timing Register Definition RECOVERY COUNT TIMING Bits [21:16] IDE0 Task File Timing + Configuration + Status Bits [05:00] IDE0 PIO Timing Bits [21:06] IDE0 PIO Timing Bits [05:00] IDE1 PIO Timing Bits [21:06] IDE1 PIO Timing ACTIVE COUNT TIMING Bits [27:22] IDE0 Task File Timing + Configuration + Status Bits [11:06] IDE0 PIO Timing Bits [27:22] IDE0 PIO Timing Bits [11:06] IDE1 PIO Timing Bits [27:22] IDE1 PIO Timing Value Active Time in PCI Clock 00h 01h 02h 03h ... 1 1 2 3 3Fh 63 ADDRESS SETUP COUNT TIMING Bits [31:28] IDE0 Task File Timing + Configuration + Status Bits [15:12] IDE0 PIO Timing Bits [31:28] IDE0 PIO Timing Bits [15:12] IDE1 PIO Timing Bits [31:28] IDE1 PIO Timing Value 0h 1h 2h 3h Active Time in PCI Clock 1 1 2 3 UDMA Cycle Time Count Timing Value Cycle Time in IDE Clock 00h 01h 02h 03h ... 2 2 3 4 3Fh 64 In the UDMA timing register. the number of clocks is always 1 greater than the value loaded for the cycle time count. The only exception is that value "0" requires two cycles. SiI-DS-0069-C © 2006 Silicon Image, Inc. 120 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 13.2 Timing Registers Programming Suggestion 13.2.1 TF Timing Register Programming in Number of 33 MHz PCI clock Address Setup Active Count Recovery Count TF Timing Register TF 0 3 10 10 328Ah TF 1 2 10 3 2283h TF 2 1 10 1 1281h TF 3 1 3 3 10C3h TF 4 1 3 1 10C1h 13.2.2 PIO Timing Register Programming in Number of 33 MHz PCI clock Address Setup Active Count Recovery Count PIO Timing Register PIO 0 3 10 10 328Ah PIO 1 2 10 3 2283h PIO 2 1 4 4 1104h PIO 3 1 3 3 10C3h PIO 4 1 3 1 10C1h 13.2.3 DMA Timing Register Programming in Number of 33 MHz PCI clock Address Setup Active Count Recovery Count PIO Timing Register MDMA 0 2 8 8 2208h MDMA 1 1 3 2 10C2h MDMA 2 1 3 1 10C1h 13.2.4 UDMA Timing Register Programming in Number of 100 MHz IDE clock Cycle UDMA 0 11 UDMA 1 7 UDMA 2 5 UDMA 3 4 UDMA 4 2 UDMA 5 1 13.2.4 UDMA Timing Register Programming in Number of 133 MHz IDE clock Cycle UDMA 0 15 UDMA 1 11 UDMA 2 7 UDMA 3 5 UDMA 4 3 UDMA 5 2 UDMA 6 1 SiI-DS-0069-C © 2006 Silicon Image, Inc. 121 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. 14. Errata The 680A returns Target Abort when CBE#[3:0] = 1111 When an access is made to the 680A memory region with Data Byte Enable = 0FH (no data to be transferred) and the address is within the 680A Delay-Transaction Region, instead of terminating the transaction normally, terminates the transaction with Target Abort. This does not comply with the PCI specification and may result in system errors in some systems. This may happen when the 680A is on a 64-bit PCI bus and the host issues a 64-bit transaction with only low or high Dword bytes enabled. Since 680A only supports 32-bit transactions, the host may break the 64-bit transaction into two 32-bit transactions in which, one of the transactions is a dummy transaction with all Byte Enables set to 1111. The Delay-Transaction Region on the 680A includes: the FIFO region (BA5 + (60h-7Fh)); the IDE0 Task File Region (BA5 + (80h-8Fh)); and the IDE1 Task File Region (BA5 + (C0h-CFh)). Impact: May result in system errors in some systems. Workaround: At present this has only been observed in an environment in which conditions have been forced with a PCI bridge device. No tested motherboards have experienced problems. SiI-DS-0069-C © 2006 Silicon Image, Inc. 122 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Legal Statement Copyright Notice Copyright © 2006 Silicon Image, Inc. All rights reserved. These materials contain proprietary and/or confidential information (including trade secrets, copyright and/or other interests) of Silicon Image, Inc. You may not use these materials except only for your bona fide non-commercial evaluation of your potential purchase of products and/services from Silicon Image or its affiliates, and/or only in connection with your purchase of products and/or services from Silicon Image or its affiliates, and only in accordance with the terms and conditions herein. You have no right to copy, modify, transfer, sublicense, publicly display, create derivative works of or distribute these materials, or otherwise make these materials available, in whole or in part, to any third party. Trademark Acknowledgment Silicon Image™, VastLane™, SteelVine™, PinnaClear™, Simplay™, Simplay HD™, Satalink™, and TMDS™ are trademarks or registered trademarks of Silicon Image, Inc. in the United States and other countries. HDMI™, the HDMI logo and HighDefinition Multimedia Interface™ are trademarks or registered trademarks of, and are used under license from, HDMI Licensing, LLC. Disclaimers These materials are provided on an “AS IS” basis. SILICON IMAGE, INC. AND ITS AFFILIATES DISCLAIM ALL REPRESENTATIONS AND WARRANTIES (EXPRESS, IMPLIED, STATUTORY OR OTHERWISE), INCLUDING BUT NOT LIMITED TO: (I) ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND/OR NON-INFRINGEMENT OF THIRD PARTY RIGHTS; (II) ALL WARRANTIES ARISING OUT OF COURSE-OFDEALING, USAGE, AND/OR TRADE; AND (III) ALL WARRANTIES THAT THE INFORMATION OR RESULTS PROVIDED IN, OR THAT MAY BE OBTAINED FROM USE OF, THE MATERIALS ARE ACCURATE, RELIABLE, COMPLETE, UP-TODATE, OR PRODUCE SPECIFIC OUTCOMES. SILICON IMAGE, INC. AND ITS AFFILIATES ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY ERRORS OR OMISSIONS IN THESE MATERIALS, MAKES NO COMMITMENT OR WARRANTY TO CORRECT ANY SUCH ERRORS OR OMISSIONS OR UPDATE OR KEEP CURRENT THE INFORMATION CONTAINED IN THESE MATERIALS, AND EXPRESSLY DISCLAIMS ALL DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, RELIANCE AND PUNITIVE DAMAGES, INCLUDING WITHOUT LIMITATION ANY LOSS OF PROFITS ARISING OUT OF YOUR ACCESS TO, USE OR INTERPRETATION OF, OR ACTIONS TAKEN OR NOT TAKEN BASED ON THE CONTENT OF THESE MATERIALS. Silicon Image, Inc. and its affiliates reserve the right, without notice, to periodically modify the information in these materials, and to add to, delete, and/or change any of this information. Notwithstanding the foregoing, these materials shall not, in the absence of authorization under U.S. and local law and regulations, as required, be used by or exported or re-exported to (i) any U.S. sanctioned or embargoed country, or to nationals or residents of such countries; or (ii) any person, entity, organization or other party identified on the U.S. Department of Commerce's Denied Persons or Entity List, the U.S. Department of Treasury's Specially Designated Nationals or Blocked Persons List, or the Department of State's Debarred Parties List, as published and revised from time to time; (iii) any party engaged in nuclear, chemical/biological weapons or missile proliferation activities; or (iv) any party for use in the design, development, or production of rocket systems or unmanned air vehicles. Products and Services The products and services described in these materials, and any other information, services, designs, know-how and/or products provided by Silicon Image, Inc. and/or its affiliates are provided on as “AS IS” basis, except to the extent that Silicon Image, Inc. and/or its affiliates provides an applicable written limited warranty in its standard form license agreements, standard Terms and Conditions of Sale and Service or its other applicable standard form agreements, in which case such limited warranty shall apply and shall govern in lieu of all other warranties (express, statutory, or implied). EXCEPT FOR SUCH LIMITED WARRANTY, SILICON IMAGE, INC. AND ITS AFFILIATES DISCLAIM ALL REPRESENTATIONS AND WARRANTIES (EXPRESS, IMPLIED, STATUTORY OR OTHERWISE), REGARDING THE INFORMATION, SERVICES, DESIGNS, KNOW-HOW AND PRODUCTS PROVIDED BY SILICON IMAGE, INC. AND/OR ITS AFFILIATES, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND/OR NON-INFRINGEMENT OF THIRD PARTY RIGHTS. YOU ACKNOWLEDGE AND AGREE THAT SUCH INFORMATION, SERVICES, DESIGNS, KNOW-HOW AND PRODUCTS HAVE NOT BEEN DESIGNED, TESTED, OR MANUFACTURED FOR USE OR RESALE IN SYSTEMS WHERE THE FAILURE, MALFUNCTION, OR ANY INACCURACY OF THESE ITEMS CARRIES A RISK OF DEATH OR SERIOUS BODILY INJURY, INCLUDING, BUT NOT LIMITED TO, USE IN NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION, EMERGENCY SYSTEMS, OR OTHER SYSTEMS WITH A SIMILAR DEGREE OF POTENTIAL HAZARD. NO PERSON IS AUTHORIZED TO MAKE ANY OTHER WARRANTY OR REPRESENTATION CONCERNING THE PERFORMANCE OF THE INFORMATION, PRODUCTS, KNOWHOW, DESIGNS OR SERVICES OTHER THAN AS PROVIDED IN THESE TERMS AND CONDITIONS. SiI-DS-0069-C © 2006 Silicon Image, Inc. 123 SiI0680A PCI to IDE/ATA Data Sheet Silicon Image, Inc. Further Information To request other materials, documentation, and information, contact your local Silicon Image, Inc. sales office or visit the Silicon Image, Inc. web site at www.siliconimage.com. 1060 E. Arques Avenue Sunnyvale, CA 94085 T 408.616.4000 F 408.830.9530 www.siliconimage.com SiI-DS-0069-C © 2006 Silicon Image, Inc. 124