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 > > > > >