Dear everyone,
I have a question regarding boot ROMs for onboard-integrated
network adapters, Intel and others. Specifically the question
relates to the format that is necessary for successful inclusion
of the PXE ROM in the system flash BIOS.
Some time ago I read the Etherboot and Netboot documentation.
Most network adapters that I meet today are onboard-integrated,
so the first thing I tried (after booting the ROM off a floppy)
was to integrate the bootrom into the main system BIOS.
The machines that I have are based on AWARD BIOS v6.00PG and
I'm dissecting/reassembling the BIOS images using cbrom 2.15.
I am able to add/extract/release the individual ROM objects
from the compressed BIOS image, but the ROM's generated by
Netboot/Etherboot fail to execute. It seems as if they're
not considered executable by the system BIOS. They can only
be loaded by cbrom as /other.
Recently, I've tried to get PXE boot support for an onboard
Intel adapter. This time I've tried boot ROMs from two
different sources:
- one downloaded off the Intel web as part of the
Intel Boot Agent package
- and another one extracted from a working (PXE-booting)
BIOS image for another PC motherboard (same brand).
The image extracted from another BIOS worked like a charm.
'cbrom215.exe /pci' had no problem.
The image downloaded from Intel didn't work at all.
If I tried to load the Intel ROM file as /pci, cbrom215 yelled
"CAUTION: BA1219M2.FLB file is not BIOS ROM".
If I tried to load it as /other or /oem<X>, it didn't yell,
but the ROM didn't initialize (execute) at boot.
The original Intel boot ROM images are named something
like <version>.FLB
The ROM images ripped out of another BIOS (apparently
also of Intel origin) are named <version>.LOM.
Please note that, with Intel, there are actually two
ROM files that need to be included in the compressed
BIOS image - don't know exactly for what reason. (Two
onboard LAN's? Driver part and generic PXE code?)
This applies to both versions, .LOM and .FLB.
The FLB and LOM files have similar contents (judging
by the human-readable strings), but the header is different.
Unfortunately I don't have the .LOM and .FLB images
in the same version, so I can't compare and I'm not
competent enough to reverse-engineer the x86 machine
code.
LOM == Lan On Motherboard, at least in Intel vocabulary.
The difference in file extension is related to the BIOS
hookup, not to the hardware (LOM vs. stand-alone PCI).
The Intel Boot Agent ROM in any particular version
appears to be common to all the Intel PCI LAN chips
(knows them all by their PCI ID's). Hmm... or perhaps
a particular PCI ROM must be "tainted" for a particular
PCI device ID? Not likely, IMO.
I might as well ask: is there a straight-forward way
to convert a generic extension BIOS ROM
into a PCI-enabled ROM for the Award BIOS?
I know that intel says on its web that you should ask
your motherboard manufacturer for PXE support for the
onboard devices - perhaps the LOM format is distributed
only to the OEM's.
It seems as if the BIOS-embedded ROM's need some special
header/preamble/hook/magic# to be recognized by the
system BIOS. Something that's missing in the stand-alone
ROM images, and in third-party images (netboot, etherboot)
that might work in some ancient BIOSes, following some
init sequence conventions of those days (now deprecated)...
I'd like to apologize in advance if I'm asking about
information that's subject to NDA's between
Intel/Phoenix/OEM's.
Otherwise, any ideas are welcome.
Frank Rysanek
>> Stay informed about: Intel PXE bootrom: .LOM vs. .FLB (AWARD BIOS 6.00, cbrom 2..