iPXE discussion forum
Getting ROM file under 64K - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Getting ROM file under 64K (/showthread.php?tid=7416)

Getting ROM file under 64K - wootty2000 - 2014-07-29 14:55


I am trying to build a ROM file and get it to be under 64K (so I can burn it in to the FLASH ROM)

I n general.h
undef all protocol except HTTP
undef wireless cryptos,

In console.h

This still gives me a file of 66048 bytes.

I might need to include NFS and TFTP later on.

Is there anything else I can remove?

I am using an Intel Pro 100/S Desktop PCI card. Would I be better desoldering the 512Kb FLASH ROM and soldering in a 1Mb FLASH ROM instead? Has anyone tried changing the ROM for a larger one (on this card or any other)?



RE: Getting ROM file under 64K - robinsmidsrod - 2014-08-01 15:07

I think your only option is to remove either HTTP or the menu command to get below the 64KB limit. I believe each of them pull in about 3KB each. That should give you a ROM that follows normal PXE behavior, which you can then "upgrade" using chainloading to a fully fledged iPXE binary. I've documented how to chainload using ipxe feature flags here: https://gist.github.com/robinsmidsrod/4008017

RE: Getting ROM file under 64K - wootty2000 - 2014-08-01 15:56

The DHCP server is a Cisco Catalist 6500 switch and I dont think I will get access to it.

If I remove the menu and HTTP but include TFTP, can I still use a script to pull a full feature version? That might be an option

I have removed the original FLASH ROM and the A16 address pin is electrically connected to the controller IC, so Im hoping I still have a chance of using a larger ROM.
Do I need to pad out a > 64K with ZEROs at the end to make it up to 128K or can I just leave the unused space on the ROM as FF?

RE: Getting ROM file under 64K - robinsmidsrod - 2014-08-08 11:28

Yes, there is no problem to embed a script that fetches a more featureful version of ipxe using TFTP.

Whenever I need to pad my ROM image I use util/padimg.pl to do the work. I'm not sure if 00 or FF is the proper padding value. Check the script I just mentioned for details.

RE: Getting ROM file under 64K - wootty2000 - 2014-08-08 12:50

Im testing in VirtualBox. If i use the inbuilt iPXE, I can chainload a full version from TFTP, but then the network card disappears in the chainloaded version. Is this a know issue?

On real hardware, iPXE locks up the machine randomly with in CLI, sometime skewing the display. Is this a know issue? I have tried looking on the forum, but can not see any one else complaining about it

Not having any luck either with a file larger than 64K.
If I use a mrom file, iPXE starts to load and then crashes out, filling the screen with coloured squares.
If I use a rom file, iPXE starts but locks up as soon as I press CTRL+B

As for pading, I've found it is very easy in python (2 lines).


RE: Getting ROM file under 64K - sebastian - 2014-08-11 19:32

I had the same problem on my flash when it was over 64K. It seems like it loads a truncated version of the rom when you are oversize, thus causing it to execute badly. NFS is taking a lot of space, try replacing it with ISCSI.
ISCSI + HTTP did take very Little space for me, could enable almost every command except for fibre channel, NFS, FTP, wireless, and crypto. Undef TFTP too, and boot via HTTP instead. Eg fetch over HTTP instead.
Also disable AoE, it taking up much too.