20.2 SCSI Bus Driver

EDK II contains a generic SCSI bus driver. This driver uses the services of EFI_EXT_SCSI_PASS_THRU_PROTOCOL to enumerate SCSI devices and produce child handles with EFI_DEVICE_PATH_PROTOCOL and EFI_SCSI_IO_PROTOCOL. The implementation of the SCSI Bus Driver is found in the MdeModulePkg in the directory MdeModulePkg/Bus/Scsi/ScsiBusDxe.
If UEFI-based system firmware is ported to a new platform, most of the SCSI-related changes occur in the implementation of the SCSI host controller driver. If new types of SCSI devices are introduced that are required to provide a console or provide a UEFI boot capability, then the implementation of new SCSI Device Drivers are also required. The SCSI bus driver is designed to be a generic, platform-agnostic driver. As a result, customizing the SCSI bus driver is strongly discouraged. The detailed design and implementation of the SCSI bus driver is not covered in this guide.