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.

 

 

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

 

Thanks,

Ravi Kumar