[edk2-devel] ExtScsiPassThru support for Logical SCSI devices

Ravi Kumar Siadri siadriravikumaruefi at gmail.com
Sun Jul 7 06:58:07 UTC 2019


Hi All,

*Can somebody, comment on this.?*

Have anyone tried supporting *ExtScsiPassThru *for both Logical and
Physical devices ??

*To avoid 2 instances and creation of 2 device paths here, my proposal is*

*1. To filter the Logical and Physical devices, we can add a parameter in
GetNextTartget() function to inform RAID Driver which type of targets the
user is looking for. (Physical or Logical).*

*2. To know what type of device connected at that particular Target and LUN
combination, we can add one more service like.. GetDeviceType() to inform
the top level user (like UEFI applications/other drivers), to which device
he is sending a command.*



I feel this proposal works well and clear, Please let me know if i am
missing anything here.


Thanks,
Ravi Kumar


On Fri, Jun 14, 2019 at 11:21 AM Wu, Hao A <hao.a.wu at intel.com> wrote:

> Hello Ravi Kumar,
>
> *From:* devel at edk2.groups.io [mailto:devel at edk2.groups.io] *On Behalf Of *Ravi
> Kumar Siadri
> *Sent:* Thursday, June 13, 2019 4:18 PM
> *To:* Wu, Hao A
> *Cc:* devel at edk2.groups.io
> *Subject:* Re: [edk2-devel] ExtScsiPassThru support for Logical SCSI
> devices
>
>
>
> Hi Wu Hao A,
>
>
>
> Thanks for the response.
>
> I have added my comments in line.
>
>
>
> Thanks,
>
> Ravi Kumar
>
>
>
>
>
>
>
>
>
> On Wed, Jun 12, 2019 at 1:26 PM Wu, Hao A <hao.a.wu at intel.com> wrote:
>
> Hello Ravi Kumar,
>
>
>
> Inline comments below:
>
>
>
> *From:* devel at edk2.groups.io [mailto:devel at edk2.groups.io] *On Behalf Of *Ravi
> Kumar Siadri
> *Sent:* Wednesday, June 12, 2019 12:01 PM
> *To:* devel at edk2.groups.io
> *Subject:* Re: [edk2-devel] ExtScsiPassThru support for Logical SCSI
> devices
>
>
>
> Hi,
>
>
>
> Can someone help me in clarifying my queries ??
>
>
>
> Thanks,
>
> Ravi Kumar
>
>
>
> On Mon, Jun 10, 2019 at 3:55 PM Ravi Kumar Siadri <
> siadriravikumaruefi at gmail.com> wrote:
>
> Hi all,
>
>
>
> I have couple of queries regarding the
> *EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL* attribute support in
> *EFI_EXT_SCSI_PASS_THRU_PROTOCOL*.
>
>
>
> *1. *
>
> *The Attributes field of the EFI_EXT_SCSI_PASS_THRU_PROTOCOL interface
> tells if the interface is for physical SCSI devices or logical SCSI
> devices. Drivers for non-RAID SCSI controllers will set both the
> EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL, and the
> EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bits.*
>
>
>
> If the Drivers is for non-RAID SCSI controllers why to set the
> EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bit. Will there be any case that
> non-RAID SCSI controllers have Logical devices connected to it ??
>
>
>
> Per my understanding, every partition on a physical HW device will be
> treated
>
> as a logical device by the firmware.
>
>
>
> So for non-RAID case, both bits will be set for the PassThru protocol
> produced
>
> for the physical device.
>
>
>
> Ravi:
>
> As far as i know RAID controller will treat a partition/drive as logical
> device only if has RIS (raid information sector) information in it.  So i
> don't think partition is treated as logical device.
>
>
>
> Agree.
>
> Then for the non-RAID case, the hardware is considered as a physical
> device and a logical one at the same time.
>
> Since media access protocols like the BlockIO protocol will be produced
> upon the logical instance of the PassThru protocol, it is the reason that
> both bits are set for this case.
>
> (Refer to function DetermineInstallBlockIo() at MdeModulePkg\Bus\Scsi\
> ScsiDiskDxe\ScsiDisk.c)
>
>
>
> *2. *
>
> *Drivers for RAID controllers that allow access to the physical devices
> and logical devices will produce two EFI_EXT_SCSI_PASS_THRU_PROTOCOL
> interfaces:  *
>
> *One with the just the EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL bit set
> and another with just the EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bit
> set. One interface can be used to access the physical devices attached to
> the RAID controller, and the other can be used to access the logical
> devices attached to the RAID controller for its current configuration.*
>
>
>
> Any background why EFI_EXT_SCSI_PASS_THRU_PROTOCOL needed 2 instances ?
> why can't we install attributes EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL
> and EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL on same Instance ??
>
> How User locates the Instance with
> EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bit set and Instance with
> EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL bit set. ??
>
>
>
> UEFI spec allows RAID drivers to only produce one PassThru protocol
> interface
>
> with just the XXX_PASS_THRU_LOGICAL bit set when the RAID controller
> select to
>
> not allow direct access to the underlying physical devices.
>
>
>
>           Ravi:
>
> If the RAID Driver supports only Logical or Physical Devices then it is
> fine creating only 1 instance and not allowing other devices which Bit is
> not set. (either  EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL or
> EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL).
>
> But if the RAID driver supports both the Logical and Physical Devices,
> then we have to need 2 instances as per spec. This is going to be an over
> head, while locating instances by the user who want to send commands to
> Target devices connected to RAID controller.
>
> Since each EFI_EXT_SCSI_PASS_THRU_PROTOCOL instance must have an
> associated device path. Only 1 instance can be installed on that particular
> RAID controller handle since the GUID is same for both the instances.
>
> If our intention is to filter the Logical and Physical devices then, we
> can add a parameter in GetNextTartget() function to inform RAID Driver
> which type of targets the user is looking for. (Physical or Logical).
>
>  Right ??
>
>
>
> My take is that the producer of the physical and logical PassThru protocol
> may not be the same vender (or driver).
>
> The logical instance (which determines the configuration of the RAID)
> might have a common logic that applies to common using cases.
>
> The logical one will be used to produce media access protocols, some
> actual HW may not be accessible (e.g. used for data backup) by this
> PassThru protocol instance.
>
> While the physical one can be used to send commands to the underlying
> device for purpose like health/status check or getting device information.
>
> However, I am not an expect for RAID, hope someone else can help to
> provide comments.
>
>
>
> Thanks,
>
> Ravi Kumar
>
>
>
> 
>

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43379): https://edk2.groups.io/g/devel/message/43379
Mute This Topic: https://groups.io/mt/32007447/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20190707/de110d0e/attachment.htm>


More information about the edk2-devel-archive mailing list