[ipxe-devel] Option ROM causing hang during BIOS update

Ed Swierk eswierk at skyportsystems.com
Sun Mar 22 06:52:12 UTC 2015

I isolated the problem to the UNDI loader.

The problem goes away if I comment out the undiheader pointer in the
romheader (romprefix.S), or just add an lret instruction to the very
top of the undiloader routine (undiloader.S).

I wonder if a BIOS bug could cause the loader to scribble on the stack
or corrupt some other area of memory.


On Sat, Mar 21, 2015 at 6:30 PM, Ed Swierk <eswierk at skyportsystems.com> wrote:
> I neglected to mention that I already tried the .mrom version, with
> exactly the same result.
> Right now I'm trying to figure out the value of %gs that the BIOS is
> returning from the int 1a call, and whether that qualifies as
> "insane".
> --Ed
> On Sat, Mar 21, 2015 at 6:09 PM, Michael Brown <mcb30 at ipxe.org> wrote:
>> On 21/03/15 02:41, Ed Swierk wrote:
>>> After I build 808610fc.rom and flash it to the NIC, I can boot the
>>> system, select iPXE as the boot device, and boot Linux just fine.
>>> <snip>
>>> So I very much suspect this is actually a bug in the new Intel server
>>> BIOS. But I figure the likelihood of finding a workaround in iPXE is
>>> much higher than getting Intel to fix their BIOS.
>> I think that NIC has a memory BAR of at least 128kB, which should therefore
>> be large enough to use bin/808610fc.mrom instead of bin/808610fc.rom.  That
>> will use substantially less option ROM space, which might work around
>> whatever the problem is in the BIOS.
>> Michael

More information about the ipxe-devel mailing list