21.2 ATA Bus Driver

EDK II contains a generic ATA bus driver. This driver uses the services of EFI_ATA_PASS_THRU_PROTOCOL to enumerate ATA devices and produce child handles with EFI_DEVICE_PATH_PROTOCOL, EFI_BLOCK_IO_PROTOCOL, EFI_BLOCK_IO2_PROTOCOL, and optionally the EFI_STORAGE_SECURITY_COMMAND_PROTOCOL. The implementation of the ATA Bus Driver is found in the MdeModulePkg in the directory MdeModulePkg/Bus/Ata/AtaBusDxe
If UEFI-based system firmware is ported to a new platform, most of the ATA-related changes occur in the implementation of the ATA host controller driver. The ATA bus driver is designed to be a generic, platform-agnostic driver. As a result, customizing the ATA bus driver is strongly discouraged. The detailed design and implementation of the ATA bus driver is not covered in this guide.