Yes, you are right. I&#39;m considering to make a report my boss to reject this project back to Marketing guys since the high risk to use UNDI.  I will propose the idea adding shim to NetBSD drivers to my boss to evaluate. Anyway, I would like to thank you all for kind help and pretty helpful suggestion, and thanks to gPXE, I will continue to keep my eye on it. Hopefully, I can be involved into this interesting project someday in the nearest future and work with you to contribute it. Also, if you can give me some suggestion how to contribute to this project, that will be greatly appreciated!<div>
<br></div><div>Thanks!</div><div>Sean<br><div><div><div><br></div><div><div><div><br><div class="gmail_quote">On Tue, Jun 29, 2010 at 5:44 AM, Glenn Brown <span dir="ltr">&lt;<a href="mailto:gbrown@alumni.caltech.edu">gbrown@alumni.caltech.edu</a>&gt;</span> wrote:<br>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;" class="gmail_quote">Sean,<br>
<br>
Upon reflection, I have to agree with Michael and Geoff: EFI is not, at this point, going to give you broad compatibility and stability.  The simple reason is that the network drivers are not broadly used: they are not even broadly used for booting, with most motherboards still using PXE for that.  EFI is also not going to give high performance or low overhead.<br>

<br>
Also, note that while EFI does provide an SNP over UNDI driver, it is layered over UNDI-3.0, which is completely incompatible with legacy UNDI, as it is the UNDI interface redefined for 32/64-bit machines.<br>
<br>
Considering your licensing requirements, it sounds like your best bet may be a shim to netBSD drivers, much as Michael Brown suggested, except without Linux/GPL drivers.  That way, you are just adopting their driver/kernel C interface, and providing C interfaces to support functions.  That&#39;s a lot more convenient that having to deal with software interrupt or EFI interfaces.<br>
<font color="#888888">
<br>
--Glenn<br>
<br>
</font></blockquote></div><br></div></div></div></div></div></div>