----- Original Message ----- > From: "Jarrod Johnson" <jarrod.b.john...@gmail.com> > To: ipxe-devel@lists.ipxe.org, "Geoff Lywood" <glyw...@vmware.com> > Sent: Wednesday, August 10, 2011 6:29:53 AM > Subject: iPXE download protocols via EFI effort
> On my tree, I'm porting forward some changes from Geoff Lywood to > give iPXE the ability to install EFI protocols that chainloaded > bootloaders can use to get http and such. My goal is a sort of > 'ielilo' reminiscent of 'ipxelinux' in 'legacy' land. The biggest > question I have to date would be if the uninstall of the protocol > should happen where it does, or move to efi_init like the nic > shutdown code did when Itay modified it... > Hopefully I'll have something workable for review by end of day (need > to port over Geoff's cmdline construction which includes populating > a handle that is needed to keep elilo from hanging like it does with > ipxe today). > My next step would be an 'ipxefs' in elilo code to create a > filesystem 'protocol' over the ipxe protocol in the same way 'netfs' > constructs one over pxe base code. I briefly contemplated whether it > would be possible to implement netfs protocols and elilo would 'just > use it' without code change or even recompile, but decided that > could be a bad idea even if possible. For the record, I did put some amount of thought into trying to make iPXE expose a protocol that is defined in the UEFI spec. The options were: EFI_LOAD_FILE_PROTOCOL: This is unsuitable because it involves loading from a device path. It is difficult to pack a URL into a device path without either defining a new device path node type, or breaking the rules around device path file name formatting (which prohibit a "//"). In either case the client would have to be modified. Additionally, at least for VMware, we wanted a smooth progress bar, and the all-or-nothing nature of this protocol meant loading several hundred megabytes over the network with no user feedback. EFI_SIMPLE_FILE_SYSTEM_PROTOCOL: This does not work because it requires the ability to seek and such. TFTP just doesn't support the operations necessary. EFI_PXE_BASE_CODE_PROTOCOL: This one probably makes the most sense, but it's still not a good fit. This protocol is very TFTP- and MTFTP-oriented, and it would be a bit of a hack to try to slip, say, https support in under the covers. Some operations on this protocol don't make as much sense under iPXE, for example what does a "Discover" operation do, given that iPXE supports multiple NICs? And it seemed like a lot of work to expose things like the iPXE routing table, ARP cache, and cached DHCP packets up through this mechanism. - Geoff _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo/ipxe-devel