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_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
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.