From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by ml01.01.org (Postfix) with ESMTP id 520A58034B for ; Tue, 7 Mar 2017 14:15:20 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0EB83344; Tue, 7 Mar 2017 14:15:20 -0800 (PST) Received: from u200856.usa.arm.com (u201426.usa.arm.com [10.118.28.62]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AA05A3F3E1; Tue, 7 Mar 2017 14:15:19 -0800 (PST) From: Jeremy Linton To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ryan.harkin@linaro.org, linaro-uefi@lists.linaro.org, ard.biesheuvel@linaro.org, Jeremy Linton Date: Tue, 7 Mar 2017 16:15:05 -0600 Message-Id: <20170307221512.5180-1-jeremy.linton@arm.com> X-Mailer: git-send-email 2.9.3 Subject: [PATCH v4 0/6] ATAPI support on SiI SATA adapter X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Mar 2017 22:15:20 -0000 The SiI isn't an AHCI compatible adapter so it implements the EFI ATA pass-through protocol directly. This works for fixed hard drives, but not ATAPI attached devices (CDROM, DVDROM, TAPE, etc). This patch adds read only ATAPI support via the EFI SCSI pass-through protocol, allowing boot from attached CD/DVD. This patch also cleans up, and tweaks recovery paths/etc in the original driver. When combined with the ARM/PCI dma lib changes this allows us to relax the IO alignment requirement that caused grub failures. Finally, the OpenPlatformPkg/Juno must be updated, with another patch to avoid build breaks now that the SiI has a dependency on the SCSI libraries. V3->V4 Fixed a bug that in theory kept multiple ATAPI devices from working. More patch formatting fixes per Ard Dropped the sense validation logic, and changes to the Mde header V2->V3: Send the correct patch, rather than the one I was running the patch checker against. V1->V2: Formatting corrections per Ard's comments and Daniil's updated patch checker. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeremy Linton Jeremy Linton (6): EmbeddedPkg: SiI3132: Note that ARM is using this Dxe EmbeddedPkg: SiI3132: Add ScsiProtocol callbacks EmbeddedPkg: SiI3132: Add SCSI protocol support to header EmbeddedPkg: SiI3132: Break out FIS command submission EmbeddedPkg: SiI3132: Cleanup device node creation EmbeddedPkg: SiI3132: Enable SCSI pass-through protocol EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.c | 52 ++- EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.h | 103 ++++- .../Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf | 2 + .../Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c | 280 ++++++++------ .../Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c | 424 +++++++++++++++++++++ MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf | 2 +- OpenPlatformPkg | 2 +- 7 files changed, 725 insertions(+), 140 deletions(-) create mode 100644 EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c -- 2.9.3