public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/8] ATAPI support on SiI SATA adapter
@ 2016-11-14 21:09 Jeremy Linton
  2016-11-14 21:09 ` [PATCH 1/7] MdePkg IndustryStandard/Scsi.h: Add sense code macro Jeremy Linton
                   ` (8 more replies)
  0 siblings, 9 replies; 24+ messages in thread
From: Jeremy Linton @ 2016-11-14 21:09 UTC (permalink / raw)
  To: edk2-devel
  Cc: linaro-uefi, ryan.harkin, leif.lindholm, steve.capper, evan.lloyd,
	daniil.egranov, Jeremy Linton

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.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>

Jeremy Linton (7):
  MdePkg IndustryStandard/Scsi.h: Add sense code macro
  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: SiI3132: Correct the IoAlign

 EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.c   |  48 ++-
 EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.h   |  89 ++++-
 .../Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf      |   2 +
 .../Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c    | 270 ++++++++------
 .../Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c   | 401 +++++++++++++++++++++
 MdePkg/Include/IndustryStandard/Scsi.h             |   2 +
 OpenPlatformPkg                                    |   2 +-
 7 files changed, 688 insertions(+), 126 deletions(-)
 create mode 100644 EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c

-- 
2.5.5



^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCH v2 0/7] ATAPI support on SiI SATA adapter
@ 2017-02-23 22:03 Jeremy Linton
  2017-02-23 22:04 ` [PATCH] Platforms/ARM/Juno: Add SCSI pass-through protocol Jeremy Linton
  0 siblings, 1 reply; 24+ messages in thread
From: Jeremy Linton @ 2017-02-23 22:03 UTC (permalink / raw)
  To: edk2-devel
  Cc: leif.lindholm, ryan.harkin, linaro-uefi, ard.biesheuvel,
	Steve.Capper, Jeremy Linton

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.

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@arm.com>

Jeremy Linton (7):
  EmbeddedPkg: SiI3132: Note that ARM is using this Dxe
  MdePkg IndustryStandard/Scsi.h: Add sense code macro
  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   |  49 ++-
 EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.h   |  93 ++++-
 .../Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf      |   2 +
 .../Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c    | 268 ++++++++-----
 .../Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c   | 431 +++++++++++++++++++++
 MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf       |   2 +-
 MdePkg/Include/IndustryStandard/Scsi.h             |   2 +
 OpenPlatformPkg                                    |   2 +-
 8 files changed, 721 insertions(+), 128 deletions(-)
 create mode 100644 EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c

-- 
2.9.3



^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCH v3 0/7] ATAPI support on SiI SATA adapter
@ 2017-02-23 22:33 Jeremy Linton
  2017-02-23 22:33 ` [PATCH] Platforms/ARM/Juno: Add SCSI pass-through protocol Jeremy Linton
  0 siblings, 1 reply; 24+ messages in thread
From: Jeremy Linton @ 2017-02-23 22:33 UTC (permalink / raw)
  To: edk2-devel
  Cc: leif.lindholm, ryan.harkin, linaro-uefi, ard.biesheuvel,
	Steve.Capper, Jeremy Linton

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.

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@arm.com>

Jeremy Linton (7):
  EmbeddedPkg: SiI3132: Note that ARM is using this Dxe
  MdePkg IndustryStandard/Scsi.h: Add sense code macro
  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   |  49 ++-
 EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.h   |  93 ++++-
 .../Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf      |   2 +
 .../Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c    | 268 ++++++++-----
 .../Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c   | 431 +++++++++++++++++++++
 MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf       |   2 +-
 MdePkg/Include/IndustryStandard/Scsi.h             |   2 +
 OpenPlatformPkg                                    |   2 +-
 8 files changed, 721 insertions(+), 128 deletions(-)
 create mode 100644 EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132ScsiPassThru.c

-- 
2.9.3



^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCH v4 0/6] ATAPI support on SiI SATA adapter
@ 2017-03-07 22:15 Jeremy Linton
  2017-03-07 22:15 ` [PATCH] Platforms/ARM/Juno: Add SCSI pass-through protocol Jeremy Linton
  0 siblings, 1 reply; 24+ messages in thread
From: Jeremy Linton @ 2017-03-07 22:15 UTC (permalink / raw)
  To: edk2-devel
  Cc: leif.lindholm, ryan.harkin, linaro-uefi, ard.biesheuvel,
	Jeremy Linton

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@arm.com>

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



^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2017-03-07 22:15 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 21:09 [PATCH 0/8] ATAPI support on SiI SATA adapter Jeremy Linton
2016-11-14 21:09 ` [PATCH 1/7] MdePkg IndustryStandard/Scsi.h: Add sense code macro Jeremy Linton
2016-11-15  7:38   ` Ard Biesheuvel
2016-11-15 10:51   ` Gao, Liming
2016-11-14 21:09 ` [PATCH 2/7] EmbeddedPkg: SiI3132: Add ScsiProtocol callbacks Jeremy Linton
2016-11-15 16:04   ` Ard Biesheuvel
2016-11-14 21:09 ` [PATCH 3/7] EmbeddedPkg: SiI3132: Add SCSI protocol support to header Jeremy Linton
2016-11-14 21:24   ` Jeremy Linton
2016-11-15 17:02     ` Ard Biesheuvel
2016-11-16 15:44   ` Ryan Harkin
2016-11-14 21:09 ` [PATCH 4/7] EmbeddedPkg: SiI3132: Break out FIS command submission Jeremy Linton
2016-11-15 17:10   ` Ard Biesheuvel
2016-11-14 21:09 ` [PATCH 5/7] EmbeddedPkg: SiI3132: Cleanup device node creation Jeremy Linton
2016-11-14 21:09 ` [PATCH 6/7] EmbeddedPkg: SiI3132: Enable SCSI pass-through protocol Jeremy Linton
2016-11-14 21:09 ` [PATCH 7/7] EmbeddedPkg: SiI3132: Correct the IoAlign Jeremy Linton
2016-11-14 21:09 ` [PATCH] Platforms/ARM/Juno: Add SCSI pass-through protocol Jeremy Linton
2016-11-15  7:43 ` [PATCH 0/8] ATAPI support on SiI SATA adapter Ard Biesheuvel
2016-11-15 14:54   ` Jeremy Linton
2016-11-15 14:57     ` Ard Biesheuvel
2016-11-15 15:05       ` Jeremy Linton
2016-11-15 15:10         ` Ard Biesheuvel
  -- strict thread matches above, loose matches on Subject: below --
2017-02-23 22:03 [PATCH v2 0/7] " Jeremy Linton
2017-02-23 22:04 ` [PATCH] Platforms/ARM/Juno: Add SCSI pass-through protocol Jeremy Linton
2017-02-23 22:33 [PATCH v3 0/7] ATAPI support on SiI SATA adapter Jeremy Linton
2017-02-23 22:33 ` [PATCH] Platforms/ARM/Juno: Add SCSI pass-through protocol Jeremy Linton
2017-03-07 22:15 [PATCH v4 0/6] ATAPI support on SiI SATA adapter Jeremy Linton
2017-03-07 22:15 ` [PATCH] Platforms/ARM/Juno: Add SCSI pass-through protocol Jeremy Linton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox