[ipxe-devel] [Realtek]: Possible bug - cannot load ipxe when intel-sata controller is set to RAID

Michael Brown mbrown at fensystems.co.uk
Mon Apr 15 14:43:38 UTC 2013

On 15/04/13 15:37, Joshua C. wrote:
> Let me put more light into the situation: this is a msi p67a-gd65
> motherboard with am 8MB winbond bios-chip. The bios file has about 2MB
> "free" space so I can put some more files on the bios-chip itself. The
> motherboard uses a cheap realtek trl8111e chip which is soldgered on the
> motherboard and taps one of the pci-e lanes on the chipset. PCI-E 3.0 is
> not supported by the p67 chipset. The stock bios uses the propriatery
> realtek pxe stack which can be downloaded from the realtek official site
> (current version as of today: 2.54). The pxe stack is integrated into
> the bios file and I know that the realtek stack is less than 64kb in size.
> I have my custom ipxe rom which comes at about 81kb in size. As I said
> the bios flashes successfully and the ipxe works correctly as long as
> the intel-sata-controller is not set to raid-mode. The intel-orom is
> about 120kb and I know that some older versions on the intel chipset (i
> think p57 was it) cannot work with newer oroms because of their size.
> I have disabled all other controllers on the motherboard (I don't need
> them anyway). The ones being active are usb, network and intel-sata.
> I can't say to the support service that I'm using a custom orom image
> because of the obvious reasons...
> I can compile the mrom image but since both the orom and mrom are in the
> same bios file I'm not sure if this can solve the problem. As I said
> this is not an expansion card with its own memory/extension bars. I can
> give it a try... Should I just compile both as stated here:
> http://ipxe.org/download and put them in the bios file? If so how can
> the mrom find the orom in this case??

Still exactly the same diagnosis.  The size of the BIOS flash chip is 
not relevant here: what matters is the 128kB limit on option ROM space 
which is intrinsic to all PC BIOSes.  You are (almost certainly) running 
out of space in this region when using a relatively large iPXE ROM image 
_and_ the Intel ROM with RAID enabled.

You can't use .mrom in this situation: .mrom requires a NIC which has a 
memory BAR at least as large as the expansion ROM BAR (not true with 
RTL8169-based NICs), and also works only when the ROM image is held on 
the NIC's own expansion ROM (rather than being embedded into the BIOS 

81kB is surprisingly large.  My standard build of bin/realtek.rom comes 
in at 65kB.  Which version of gcc are you using, and have you enabled 
any non-standard features?

PCI BIOS 3.00 is not the same thing as PCIe gen3.  As I said before, you 
should check the ROM banner printed by iPXE, which will state the PCI 
BIOS version.

Did you try the patch from my previous message?


More information about the ipxe-devel mailing list