[ipxe-devel] [iSCSI][UEFI] Filesystem protocol

Pierre GAGELIN pierre.gagelin at gmail.com
Mon Nov 30 19:39:59 UTC 2020


Hello,

I'm having a hard time trying to understand some mechanics around iSCSI. I
managed to make iPXE work for sanboot, sanhook. Everything works just fine.
For my personal understanding I'm trying to write an EDKII app that does
the same. Here is what I do :
- set an environment with DHCP and *iSCSI* server
- build the OVMF.fd UEFI firmware from EDKII
- run *QEMU* with that UEFI firmware and configure iSCSI parameters
- boot QEMU from a disk where I put my EDKII app

With all this I can :

- see iSCSI connected by firmware before starting my app (with a wireshark)
- start my app
- locate a new SCSI IO protocol handle available

But *my problem* is that I don't find any new BLOCK IO protocol or
FILESYSTEM protocol as I was expecting. I thought that the firmware would
automatically expose BLOCK IO and FILESYSTEM IO protocols as it got the new
SCSI IO protocol (as both are supposed to be built on top of it?). Also,
those new protocols should be installed on the same handle as the one
having the SCSI IO protocol, right?

I looked into the iPXE source to find some answers about how you do it. I
found that you *manually* declared a BLOCK IO protocol and a FILESYSTEM
protocol seem to appear. Is that really how it's supposed to be done? When
I read
https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/20_scsi_driver_design_guidelines/readme.3
I get the feeling that it should be automatic

Is this behavior somewhat related to the fact that when QEMU does network
operation the firmware that runs is iPXE and not a traditional network
card? I might soon be able to get my hands on a hardware that can do iSCSI
to check if the behavior is the same

Thank you for your time and consideration,
Pierre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20201130/52079aa5/attachment.htm>


More information about the ipxe-devel mailing list