<div dir="ltr"><div class="gmail_default" style="font-family:monospace">Hello,</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">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 :</div><div class="gmail_default" style="font-family:monospace"><div style="font-family:monospace" class="gmail_default"></div><div class="gmail_default" style="font-family:monospace">- set an environment with DHCP and <b>iSCSI</b> server<br></div></div><div class="gmail_default" style="font-family:monospace">- build the OVMF.fd UEFI firmware from EDKII</div><div class="gmail_default" style="font-family:monospace">- run <b>QEMU</b> with that UEFI firmware and configure iSCSI parameters<br></div><div class="gmail_default" style="font-family:monospace">- boot QEMU from a disk where I put my EDKII app</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">With all this I can :</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">- see iSCSI connected by firmware before starting my app (with a wireshark)</div><div class="gmail_default" style="font-family:monospace">- start my app</div><div class="gmail_default" style="font-family:monospace">- locate a new SCSI IO protocol handle available</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">But <b>my problem</b> 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?<br></div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">I looked into the iPXE source to find some answers about how you do it. I found that you <b>manually</b> 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 <a href="https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/20_scsi_driver_design_guidelines/readme.3">https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/20_scsi_driver_design_guidelines/readme.3</a> I get the feeling that it should be automatic</div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">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<br></div><div class="gmail_default" style="font-family:monospace"><br></div><div class="gmail_default" style="font-family:monospace">Thank you for your time and consideration,<br></div><div class="gmail_default" style="font-family:monospace">Pierre<br></div></div>