[ipxe-devel] Windows having problems parsing iBFT from recent iPXE versions?
Michael Brown
mcb30 at ipxe.org
Wed Oct 29 15:53:46 UTC 2014
On 29/10/14 15:01, Floris Bos wrote:
>> Have you tried performing a bisection (http://ipxe.org/howto/bisect)
>> to identify the commit causing the problem?
>
> Problems seem to start after this commit:
>
> [tcp] Do not send RST for unrecognised connections
That commit doesn't touch the iBFT in any way, suggesting that the
underlying problem is a build artefact rather than a code change.
>>> With undionly.kkpxe compiled today from git sources:
>>
>> Another possibility is that a small increase in code or data size has
>> pushed the iBFT below the 512kB boundary. Try with undionly.kpxe
>> instead (which should reclaim more base memory); this may work.
>
> Does not work with .kpxe either.
>
> And perhaps we should test for location of iBFT in iPXE, and print out a
> big fat warning -if not fatal error- when it is under 512 KB?
A problem is that the SAN-booted OS is likely to clear the screen almost
immediately, meaning that the warning message would not be seen in practice.
You can get some diagnostic information from the information printed by
pxeprefix.S when undionly.[k]kpxe starts up. In particular, the "XXXkB
free base memory after PXE unload" will show you how much memory was
free before iPXE claimed its base memory segments.
A typical iPXE build will use around 14kB of base memory; you can find
the exact amount by looking in the linker map file
(bin/undionly.[k]kpxe.tmp.map) for the symbols _text16_memsz and
_data16_memsz.
On my test VM, I get "625kB free base memory after PXE unload", meaning
that iPXE will end up loaded at (625-14)=611kB, which is safely above
the 512kB threshold.
> BTW, I noticed the Linux code -in addition to scanning memory- also
> seems to look in the RSDT ACPI table for a reference to the iBFT table.
> Is there any way for us to add a reference to our iBFT there?
I'm not aware of any mechanism which allows us to modify the RSDT on a
BIOS system. (UEFI does provide an InstallAcpiTable() method which we
will use for SAN booting under UEFI, but this doesn't help us here.)
Michael
More information about the ipxe-devel
mailing list