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=WLVyAPEK; spf=pass (domain: gmail.com, ip: 209.85.219.176, mailfrom: siadriravikumaruefi@gmail.com) Received: from mail-yb1-f176.google.com (mail-yb1-f176.google.com [209.85.219.176]) by groups.io with SMTP; Mon, 08 Jul 2019 01:35:59 -0700 Received: by mail-yb1-f176.google.com with SMTP id l22so4462381ybf.4 for ; Mon, 08 Jul 2019 01:35:59 -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=RKKqjtHSSX+JUGyHwg2r3FuCupRoh/7HUOakXyTk+pU=; b=WLVyAPEKbPQ88jP7bWwMWBkxJd8ZlbNJIk7DICGJaXmGXs0Le3LIddAVpPE+yNDyqb lsLtEEVWhg0YxZEc0+u0VJeKf30C/1YRDA73zO2JfyDkM/JwtMq4FIwLphNSxNxy2bn+ QSJz+UzIZBLV1INn1C60ypAbxQHL9uEl02sLz11mEJTNtbMt4uGWE4Lnrvo+uHAI0SV7 FNbXiAze3K8xMtEhKzGBeU8CIBS2h2ue024Bg2Sf3Z40w9g2bsZcXC4fz/IADePgdOi5 8VqTvw3rPicWkTCi9FxuoNdgNaYbDcJpS5U6XHsvfEEkGLzjJhE7fFgJDzC1oE3z8bw4 GVwA== 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=RKKqjtHSSX+JUGyHwg2r3FuCupRoh/7HUOakXyTk+pU=; b=cwtUkddHuu6nDiAzDSJqwzy1zAgMf+U5tFcuzuBlQ6cfZpW+kXbF+2WWXWuZKSroQP zXxYOIEz/eMzkaI9z5F4Epukf+IHNU9iWRmr42auO0UgtYA4CN6zy0AKk8ZMpQvjVSl5 xXT4AMNwNxT0eMPIwqIslVY5J6004mr8FvlnXqQc5mUmj4upOs0mF35LQGhXLQArlZdK 4fd7iJsfj5CRZJiUisYcTOQlGn2a5s1ylVCRg+PrDUADRwyuHyLBgN30rw0MbGyHSyls J72WkmTaSoaTQeyXtbe3mTiYE4hsXPBPuehrpaOAniRrJDwbR6eKH2E9OX+ZpXgDbz1e VUmw== X-Gm-Message-State: APjAAAVnjOF9BCriRkhIfEfjN6RYJdCWJBATSD1ZTBqZtwTHF3hJrS8p 5GC5dfkdiQ3FebnkcO8A7EB+SJWv62666q9TVhM= X-Google-Smtp-Source: APXvYqw+y+5s/cbwvtst38v+O0oI0zebh1SHRFUQNQJ238X/yz57gJCKtM5JSm4RdJU5Ovts1pgyhKGsFJ4HrP6uDME= X-Received: by 2002:a25:5bc4:: with SMTP id p187mr9596921ybb.211.1562574958685; Mon, 08 Jul 2019 01:35:58 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "Ravi Kumar Siadri" Date: Mon, 8 Jul 2019 14:05:47 +0530 Message-ID: Subject: Re: [edk2-devel] ExtScsiPassThru support for Logical SCSI devices To: "Wu, Hao A" Cc: "devel@edk2.groups.io" Content-Type: multipart/alternative; boundary="00000000000058f034058d275510" --00000000000058f034058d275510 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Hao Wu, If a Controller supports both Logical and Physical Devices, as per spec we need to create 2 instances. 1. Instance with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bit set. 2. Instance with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL bit set. And Each EFI_EXT_SCSI_PASS_THRU_PROTOCOL instance must have an associated device path. Now the issue is, The same GUID cannot be installed more than once onto th= e same handle (Controller handle). So to support 2nd instance we need to create new device path (virtual device path) for that. Once more issue is, how do we associate this newly created device path and SCSI PassThru instance with actual controller . ? *The logical protocol instance is used to produce media access protocols (like BlockIO protocol). Some physical HW may not be visible/accessible (e.g. HW used* *for data backup, depending on the RAID configuration) by this logical protocol instance. **The physical one is used to directly send commands to all the managing devices.* I dont think, because if any driver supports only Instance with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL bit set, can't they create chil= d handles ?? As far as i know, Logical or Physical Instances are no where related to media access protocols. Even without SCSI passthru protocol on controller handle also, Block Io protocol can be installed on Controller Child devices. (Its the uefi driver wish, how it passes commands to the Child's of controller). Logical Instance is to interact with Logical Device and Physical Instance is to interact with Physical devices as per spec. *Users can always use the EFI Boot Service 'LocateHandleBuffer' to get all the EFI_EXT_SCSI_PASS_THRU_PROTOCOL instances. Then, users can evaluate each instance to see if it is the one they needed.* Yes user can get the list of EFI_EXT_SCSI_PASS_THRU_PROTOCOL instances by querying, but how the user can relate a particular instance with a controller. ? Because the 2nd of SCSI PassThru is created on new device path.(which will not have any other protocols, other than device path and ext scsi pass thru). Thanks, Ravi Kumar On Mon, Jul 8, 2019 at 8:39 AM Wu, Hao A wrote: > Hello Ravi Kumar, > > > > May I know the specific issue you met when 2 ExtScsiPassThru instances a= re > > provided for the device? > > > > For some of your previous questions: > > =C2=B7 =E2=80=9CAny background why EFI_EXT_SCSI_PASS_THRU_PROTOC= OL needed 2 > instances ?=E2=80=9D > > The logical protocol instance is used to produce media access protocols > (like > > BlockIO protocol). Some physical HW may not be visible/accessible (e.g. = HW > used > > for data backup, depending on the RAID configuration) by this logical > protocol > > instance. > > > > The physical one is used to directly send commands to all the managing > devices. > > > > =C2=B7 =E2=80=9CHow 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. ??=E2=80=9D > > Users can always use the EFI Boot Service 'LocateHandleBuffer' to get al= l > the > > EFI_EXT_SCSI_PASS_THRU_PROTOCOL instances. Then, users can evaluate each > > instance to see if it is the one they needed. > > > > Best Regards, > > Hao Wu > > > > *From:* Ravi Kumar Siadri [mailto:siadriravikumaruefi@gmail.com] > *Sent:* Sunday, July 07, 2019 2:58 PM > *To:* Wu, Hao A; stephano > *Cc:* devel@edk2.groups.io > *Subject:* Re: [edk2-devel] ExtScsiPassThru support for Logical SCSI > devices > > > > 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 i= s* > > *1. To filter the Logical and Physical devices, we can add a parameter i= n > GetNextTartget() function to inform RAID Driver which type of targets th= e > 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 whi= ch > 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 th= at > 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 tha= t > 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 se= t > 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 t= o > 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_LOGICA= L > 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 i= s > 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 ove= r > 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 particu= lar > 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 protoc= ol > 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 informatio= n. > > However, I am not an expect for RAID, hope someone else can help to > provide comments. > > > > Thanks, > > Ravi Kumar > > > >=20 > > --00000000000058f034058d275510 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi H= ao Wu,

If a Controller supports both Logical and Physica= l Devices, as per spec we need to create 2 instances.=C2=A0
1. In= stance with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bit set.
2.= = =C2=A0=C2=A0Instance with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL bit s= et.

And Each EFI_EXT_SCSI_PASS_THRU_PROTOCOL insta= nce must have an associated device path.

Now t= he issue is, The same GUID cannot be installed more than once onto the same= handle (Controller handle).
So to support 2nd instance we need t= o create new device path (virtual device path) for that.

Once more issue is, how do we associate this newly created device pa= th and SCSI PassThru instance with actual controller . ?


The logical protoco= l instance is used to produce media access protocols (like=C2=A0BlockIO protocol). Some physical HW may not be visible/accessibl= e (e.g. HW used

for data ba= ckup, depending on the RAID configuration) by this logical protocol=C2= =A0instance.=C2=A0The physic= al one is used to directly send commands to all the managing devices.


I dont think, because if any driver supp= orts only Instance with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL bit set,= can't they create child handles ??
=C2=A0
As far a= s i know, Logical or Physical Instances are no where related to media acces= s protocols. Even without SCSI passthru protocol on controller handle also,= Block Io protocol can be installed on Controller Child devices. (Its the u= efi driver wish, how it passes commands to the Child's of controller). = Logical Instance is to interact with Logical Device and Physical Instance i= s to interact with Physical devices as per spec.

<= p class=3D"MsoNormal">Users can always use the EFI Boot Service = 'LocateHandleBuffer' to get all the=C2= = =A0EFI_EXT_SCSI_PASS_THRU_PROTOCOL insta= nces. Then, users can evaluate each=C2=A0instance to see if = it is the one they needed.


Yes user= can get the list of EFI_EXT_SCSI_PASS_THRU_PROTOCOL instances by querying,= but how the user can relate a particular instance with a controller. ? Bec= ause the 2nd of SCSI PassThru is created on new device path.(which will not= have any other protocols, other than device path and ext scsi pass thru).<= /div>

Thanks,
Ravi Kumar

<= /div>

On M= on, Jul 8, 2019 at 8:39 AM Wu, Hao A <hao.a.wu@intel.com> wrote:

Hello Ravi Kumar,

=C2=A0

May I know the specific issue you met when = 2 ExtScsiPassThru instances are=

provided for the device?

=C2=A0

For some of your previous questions:=

=C2=B7=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =E2=80=9CAny background why EFI= _EXT_SCSI_PASS_THRU_PROTOCOL needed 2 instances ?=E2=80=9D

The logical protocol instance is used to pr= oduce media access protocols (like

BlockIO protocol). Some physical HW may not= be visible/accessible (e.g. HW used

for data backup, depending on the RAID conf= iguration) by this logical protocol

instance.

=C2=A0

The physical one is used to directly send c= ommands to all the managing devices.

=C2=A0

=C2=B7=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =E2=80=9CHow User locates the I= nstance with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL bit set and Instance= with EFI_EXT_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL bit set. ??=E2=80=9D

Users can always use the EFI Boot Service &= #39;LocateHandleBuffer' to get al= l the

EFI_EXT_SCSI_PASS_THRU_PROTOCOL instances. = Then, users can evaluate each

instance to see if it is the one they neede= d.

=C2=A0

Best Regards,

Hao Wu

=C2=A0

From: Ravi Kumar Siadri [mailto:siadriravikumaruefi@gm= ail.com]
Sent: Sunday, July 07, 2019 2:58 PM
To: Wu, Hao A; stephano
Cc: devel= @edk2.groups.io
Subject: Re: [edk2-devel] ExtScsiPas= sThru support for Logical SCSI devices

=C2=A0

Hi All,

=C2=A0

Can somebody, comment on this.?

=C2=A0

Have anyone tried supporting=C2=A0ExtScsiPassThru=C2=A0for both Logical an= d Physical devices ??

=C2=A0

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

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

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 le= vel user (like UEFI applications/other drivers), to which device he is send= ing a command.

=C2=A0

I feel this proposal works well and clear, Please l= et me know if i=C2=A0am missing anything here.<= /u>

=C2=A0

Thanks,

Ravi Kumar

=C2=A0

=C2=A0

On Fri, Jun 14, 2019 at 11:21 AM Wu, Hao A <hao.a.wu@intel.com&= gt; wrote:

Hello Ravi Kumar,

From: devel@edk2.groups.io [mail= to:devel@edk2.groups.io<= /span>] On Behalf Of Ravi Kumar Siadri
Sent: Thursday, June 13, 2019 4:18 PM
To: Wu, Hao A
Cc:
devel@edk2.g= roups.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 <siadriravikuma= ruefi@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 controller will treat a partition/= drive as logical device only if has RIS (raid information sector) informati= on in it.=C2=A0 So i don't think partition is treated as logi= cal 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 thi= s case.

(Refer to function DetermineInstallBlockIo() at MdeModulePkg\Bus\= Scsi\ScsiDiskDxe\<= span class=3D"gmail-m_-7983735907562557801gmail-m_1841112114818328514gmail-= m_-2499650011519037438SpellE">ScsiDisk.c)=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 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 a= nd Physical devices then, we can add a parameter in GetNextTartget() function to inform RAID Drive= r which type of targets the user is looking for. (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

--00000000000058f034058d275510--