From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20161025 header.b=txXOVFbR; spf=pass (domain: gmail.com, ip: 209.85.219.177, mailfrom: siadriravikumaruefi@gmail.com) Received: from mail-yb1-f177.google.com (mail-yb1-f177.google.com [209.85.219.177]) by groups.io with SMTP; Sat, 06 Jul 2019 23:58:19 -0700 Received: by mail-yb1-f177.google.com with SMTP id x32so3646255ybh.1 for ; Sat, 06 Jul 2019 23:58:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lSnkyU6Nt372/+141DnqqktLBfCZ9i7UTPeWs0XaM5g=; b=txXOVFbRk8RhRTt+IWp3T70CY7N2s2NjpjPs4CL1wxNcxAf/fYRQDGURl5WLLhlXc8 BfRAdLNssP0AY/ibcVvcU1KTePeyIOJGVpzHB0/oJXRUHXxFNtN9OpTvtILpFCB7aEaD J57/7nNKSM5czoTggy60P87qtA1kIuVG+gG06Gf10IDCMtL/am5VUZ5DwxVr3sBVtaxN FAHqkVTklfAM6h+OF1/KtS8ynHVtI6VOvAzLLk/aoaqKPqog3IvOA9TSTmu/xKSdpFDf pwOf9QmORCf6XyRfUb7SRDYsv2lHRosbAoZsn7skV9STlHCC0hK8fLQ+q9rm0Gg0bA8I dgFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=lSnkyU6Nt372/+141DnqqktLBfCZ9i7UTPeWs0XaM5g=; b=YHg2hUHf4MK4jU53lAQ5sB/RZqmQvD98eczpEMUztefwnDYi6mV2sNv1kWNnzhWMAz DM17ZkU6+8vnvTiMN+Rw603ERQP1n729bXjt6M+T8Ka2L0qYpPSTdBYoDhRPSDojjJHh RtG6PuW/zlhg/6C/3J5tNsmYAKqNw9CXDriz+zML8gr7GnvTvjwVfvK3HhtHmEmPFWg9 vyxLqU6bsUiLztO0U1GJYnFbnrbMHp69EtJSyE/0pcff+/jqXIzfAACh84Z9aDjOuhId fw3rhM1D7eQLE8+72jiRFUK0AeGkC3tSqLEDgk3tUx1l/FktuQt1Lm9kiMeJDyLG0Mhv WO9w== X-Gm-Message-State: APjAAAVGDKfN7hLNuW4p0ma6zLnQycbqU9itnZYm8nCGZfh9ltLHTJEF EcFULptwWQBqkOqPHfho5u8rsuzJxMacL1BI/C8= X-Google-Smtp-Source: APXvYqwgMePn0aUqoxnF1Q24kDzuGGumEraWLXLpIGS6OSYs0NtVEchM58w1g/rggsZGgDfXMsWrGtrY80YLu55ih5g= X-Received: by 2002:a25:8108:: with SMTP id o8mr6551002ybk.281.1562482698907; Sat, 06 Jul 2019 23:58:18 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "Ravi Kumar Siadri" Date: Sun, 7 Jul 2019 12:28:07 +0530 Message-ID: Subject: Re: [edk2-devel] ExtScsiPassThru support for Logical SCSI devices To: "Wu, Hao A" , stephano Cc: "devel@edk2.groups.io" Content-Type: multipart/alternative; boundary="0000000000003c7358058d11da68" --0000000000003c7358058d11da68 Content-Type: text/plain; charset="UTF-8" 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 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 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 > > > > > --0000000000003c7358058d11da68 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi All,

= Can somebody, comment on this.?

Have anyo= ne tried supporting=C2=A0ExtScsiPassThru=C2=A0for both Logical and P= hysical devices ??

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

1. To filt= er the Logical and Physical devices, we can add a parameter in GetNextTartg= et() function to inform RAID Driver which type of targets the user is looki= ng 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 leve= l user (like UEFI applications/other drivers), to which device he is sendin= g a command.

=C2=A0

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


=
Thanks,
Ravi Kumar


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

Hello Ravi Kumar,

From: d= evel@edk2.groups.io [mailto:devel@e= dk2.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=

=C2=A0

Hi Wu Hao A,

=C2=A0

Thanks for the response.

I have added my comments in line.

=C2=A0

Thanks,

Ravi Kumar

=C2=A0

=C2=A0

=C2=A0

=C2=A0

On Wed, Jun 12, 2019 at 1:26 PM Wu, Hao A <hao.a.wu@intel.com&g= t; wrote:

Hello Ravi Kumar,

=C2=A0

Inline comments below:=

=C2=A0

From: devel@edk2.groups.io [mail= to:devel@edk2.groups.io<= /span>] On Behalf Of Ravi Kumar Siadri
Sent: Wednesday, June 12, 2019 12:01 PM
To:
devel@edk2.g= roups.io
Subject: Re: [edk2-devel] ExtScsiPassThru support for Logical SCSI devices=

=C2=A0

Hi,

=C2=A0

Can someone help me in clarifying my queries ??<= /u>

=C2=A0

Thanks,

Ravi Kumar

=C2=A0

On Mon, Jun 10, 2019 at 3:55 PM Ravi Kumar Siadri= <sia= driravikumaruefi@gmail.com> wrote:

Hi all,

=C2=A0

I have couple of queries regarding the EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL attribute support in E= FI_EXT_SCSI_PASS_THRU_PROTOCOL.

=C2=A0

1.=C2=A0

The Attributes field of the EFI_EXT_SCSI_PASS= _THRU_PROTOCOL interface tells if the interface is for physical SCSI device= s 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.<= /u>

=C2=A0

If the Drivers is for non-RAID SCSI controllers why= to set the EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bit. Will there be an= y case that non-RAID SCSI controllers have Logical devices connected to it ??

=C2=A0

Per my understanding, every partition on a = physical HW device will be treated

as a logical device by the firmware.=

=C2=A0

So for non-RAID case, both bits will be set= for the PassThru protocol produced

for the physical device.

=C2=A0

Ravi:=C2=A0

As far as i know RAID cont= roller will treat a partition/drive as logical device only if has RIS (raid= information sector) information in it.=C2=A0 So i don't thin= k partition is treated as logical device.

=C2=A0

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 Block= IO 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\ScsiDi= skDxe\ScsiDisk.c<= /span>)=C2=A0

=C2=A0

2.=C2=A0

Drivers for RAID controllers that allow acces= s to the physical devices and logical devices will produce two EFI_EXT_SCSI= _PASS_THRU_PROTOCOL interfaces:=C2=A0=C2=A0

One with the just the EFI_EXT_SCSI_PASS_THRU_= ATTRIBUTES_PHYSICAL bit set and another with just the EFI_EXT_SCSI_PASS_THR= U_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 co= ntroller for its current configuration.

=C2=A0

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_PAS= S_THRU_ATTRIBUTES_LOGICAL bit set and Instance with EFI_EXT_SCSI_PASS_THRU_= ATTRIBUTES_PHYSICAL bit set. ??

=C2=A0<= u>

UEFI spec allows RAID drivers to only produ= ce 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 p= hysical devices.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Ravi:<= /u>

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=C2=A0 EFI_EX= T_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL or EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PH= YSICAL).

But if the RAID driver supports both the Lo= gical 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 wa= nt to send commands to Target devices connected to RAID controller.<= u>

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 a= nd Physical devices then, we can add a parameter in GetNextTartget()= function to inform RAID Driver which type of targets the user is looking f= or. (Physical or Logical).

=C2=A0Right ??

=C2=A0

My take is that the producer of the physica= l 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 med= ia 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.

=C2=A0

Thanks,

Ravi Kumar

=C2=A0

--0000000000003c7358058d11da68--