public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ravi Kumar Siadri" <siadriravikumaruefi@gmail.com>
To: "Wu, Hao A" <hao.a.wu@intel.com>,
	stephano <stephano.cetola@linux.intel.com>
Cc: "devel@edk2.groups.io" <devel@edk2.groups.io>
Subject: Re: [edk2-devel] ExtScsiPassThru support for Logical SCSI devices
Date: Sun, 7 Jul 2019 12:28:07 +0530	[thread overview]
Message-ID: <CAHPR0Q2wYvVTMHeUMwKg=4Be7i3h55ADQahuPxgRTy5fyNLvMQ@mail.gmail.com> (raw)
In-Reply-To: <B80AF82E9BFB8E4FBD8C89DA810C6A093C8F072F@SHSMSX104.ccr.corp.intel.com>

[-- Attachment #1: Type: text/plain, Size: 6367 bytes --]

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@intel.com> wrote:

> Hello Ravi Kumar,
>
> *From:* devel@edk2.groups.io [mailto:devel@edk2.groups.io] *On Behalf Of *Ravi
> Kumar Siadri
> *Sent:* Thursday, June 13, 2019 4:18 PM
> *To:* Wu, Hao A
> *Cc:* devel@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@intel.com> wrote:
>
> Hello Ravi Kumar,
>
>
>
> Inline comments below:
>
>
>
> *From:* devel@edk2.groups.io [mailto:devel@edk2.groups.io] *On Behalf Of *Ravi
> Kumar Siadri
> *Sent:* Wednesday, June 12, 2019 12:01 PM
> *To:* devel@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@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
>
>
>
> 
>

[-- Attachment #2: Type: text/html, Size: 19644 bytes --]

  reply	other threads:[~2019-07-07  6:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAHPR0Q2RMR2TXUgHchw5X-ojRx7DQL1xBisucHsVxxfc28Hd=w@mail.gmail.com>
2019-06-12  4:00 ` ExtScsiPassThru support for Logical SCSI devices Ravi Kumar Siadri
2019-06-12  7:55   ` [edk2-devel] " Wu, Hao A
2019-06-13  8:18     ` Ravi Kumar Siadri
2019-06-14  5:51       ` Wu, Hao A
2019-07-07  6:58         ` Ravi Kumar Siadri [this message]
2019-07-08  3:09           ` Wu, Hao A
2019-07-08  8:35             ` Ravi Kumar Siadri
2019-07-11 12:59               ` Wu, Hao A
2019-06-10 12:32 Ravi Kumar Siadri
2019-07-12 22:10 ` [edk2-devel] " Laszlo Ersek
2019-07-15  5:25   ` Wu, Hao A
2019-07-18 16:02     ` Ravi Kumar Siadri
2019-07-18 21:10       ` Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHPR0Q2wYvVTMHeUMwKg=4Be7i3h55ADQahuPxgRTy5fyNLvMQ@mail.gmail.com' \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox