21 ATA Driver Design Guidelines

There are several categories of ATA drivers that cooperate to provide the ATA driver stack in a platform. The following table lists these ATA drivers.

Table 33-Classes of ATA drivers

Class of driver


ATA host controller driver

Consumes PCI I/O Protocol on the ATA host controller handle and produces the ATA Pass Thru Protocol used to access hard drives and the Ext SCSI Pass Thru Protocol used to access CD-ROM/DVD-ROM drives.

ATA bus driver

Consumes the ATA Pass Thru Protocol and creates child handles for ATA targets with the Device Path Protocol, Block I/O Protocol, Block I/O 2 Protocol, and optionally the Storage Security Command Protocol.

This chapter shows how to write UEFI Drivers for ATA host controllers. ATA drivers must follow all of the general design guidelines described in Chapter 4 of this guide. In addition, any ATA host controllers that are PCI controllers must also follow the PCIspecific design guidelines described in Chapter 18. This section covers the guidelines that apply specifically to the management of ATA host controllers. ATA drivers, especially those for RAID controllers, may include HII functionality for ATA subsystem configuration settings. HII functionality is described in Chapter 12 of this guide.