Hi, Sathya

There must have somebody to install BlockIo, either SCSI HBA driver or upper 
level driver. It depends on your implementation.

EdkII have provided well-layered ScsiBus and ScsiDisk driver implementation, it 
consumes EXT_SCSI_PASS_THRU and produces BLOCK_IO, DISK_INFO and DISK_IO. so 
your SCSI HBA driver just need produce EXT_SCSI_PASS_THRU protocol then it can 
work well with the bios based on EDKII.

For your case, looks your platform firmware doesn't provide such well-layered 
upper stack. So you may have to produce all of them.

Thanks
Feng

From: Prakash, Sathya [mailto:[email protected]]
Sent: Tuesday, March 26, 2013 07:46
To: [email protected]
Subject: Re: [edk2] Block I/O installation by SCSI host driver driver or 
Platform?

I tried this, but many of current platform does not seem to implement the 
creation of Block I/O from ExtSCSIPassthru.  If I don't install Block I/O, I 
don't see my drives available for OS installation.

So is this mandatory for the SCSI HBA Drivers to install Block I/O by 
themselves?

Thanks
sathya

From: Kinney, Michael D [mailto:[email protected]]
Sent: Monday, March 11, 2013 1:07 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [edk2] Block I/O installation by SCSI host driver driver or 
Platform?

Sathya,

The UEFI Spec 2.3.1 Section 2.6.3 Item #14 says you are only required to 
produce the EFI_EXT_SCSI_PASS_THRU_PROTOCOL.

Section 2.6.2 Item #12 requires the platform to carry the rest of the services 
to produce Block I/O from EFI_EXT_SCSI_PASS_THRU_PROTOCOL.

If you have both physical and logical SCSI channels, then you are only required 
to produce handles with the EFI_EXT_SCSI_PASS_THRU_PROTOCOL for the logical 
channel.  RAID controllers can optionally produce handles for the physical 
channels.

Mike

From: Prakash, Sathya [mailto:[email protected]]
Sent: Monday, March 11, 2013 11:20 AM
To: [email protected]<mailto:[email protected]>
Subject: [edk2] Block I/O installation by SCSI host driver driver or Platform?

Folks,
I was going through the driver writers guide and in section 20.1.1 
Single-Channel SCSI Adapters I found the below mentioned description

Because there is only one SCSI channel, the SCSI driver can simply implement 
one instance of the Extended SCSI Pass Thru Protocol. The platform firmware 
provides the
SCSI Bus Driver and SCSI Disk Driver that complete the driver stack by 
performing the following actions:
* Scan for SCSI targets on the SCSI channel and create child handles.
* Install Device Path Protocol to each child handle.
* Install SCSI I/O Protocol to each child handle.
* Install I/O abstraction such as the Block I/O Protocol to each child handle.


My question is: Do the SCSI host controller driver needs to install Block I/O 
protocol on the controller handle or is it not required?  If we have RAID 
controller do I need to install Block I/O protocol on both the physical and 
logical channels I create in my driver.  The reason for the confusion is I 
don't see a need of installing Block I/O protocols from host driver if the 
platform provides that for each devices exposed by our host driver.   But I see 
so far the Block I/O must be installed by my driver for the SCSI devices 
attached to my controller.

Am I missing something?

Thanks
Sathya
------------------------------------------------------------------------------
Own the Future-Intel&reg; Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest.
Compete for recognition, cash, and the chance to get your game 
on Steam. $5K grand prize plus 10 genre and skill prizes. 
Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to