[ipxe-devel] "Installation failed" on 3Com 905B cards

Quinn Plattel qiet72 at gmail.com
Fri Mar 29 21:43:40 UTC 2019


On Thu, Mar 21, 2019 at 8:30 AM Quinn Plattel <qiet72 at gmail.com> wrote:

>
>
> On Mon, Mar 18, 2019 at 12:59 PM Michael Brown <mcb30 at ipxe.org> wrote:
>
>> On 17/03/2019 01:09, Quinn Plattel wrote:
>> > Well, I have now tested the same two cards with the same two roms on a
>> > different older system.  Here is the results:
>> >
>> > D-Link DFE-530TX:
>> > ============================
>> > iPXE (http://ipxe.org) 00:10.0 D400 PCI2.10 PnP D400
>> >
>> > iPXE (PCI 00:10.0) starting execution...ok
>> > iPXE initialising devices...ok
>> >
>> > iPXE 1.0.0+ (b6ffe) -- Open Source Network Boot Firmware -
>> http://ipxe.org
>> > Features: DNS HTTP TFTP ELF MBOOT PXE bzImage Menu PXEXT
>> >
>> > iPXE>
>> > =============================
>> >
>> > 3Com 905B:
>> > =============================
>> > iPXE (http://ipxe.org) 00:10.0 D400 PCI2.10 PnP D400
>> >
>> > iPXE (PCI 00:10.0) starting execution...1B101B10 000D4CF4 00000712
>> > Installation failed - cannot continue
>> > =============================
>> >
>> > So, results are the same, except, on this older system, I do not seem
>> to
>> > see any addresses advertised in the banner part of the roms.
>> > Why is that?
>>
>> Your older system does not support PMM.  iPXE will read the ROM image
>> directly from the BIOS option ROM area (and will therefore require more
>> option ROM space than if PMM were present), and will use 0x100000 as the
>> temporary decompression area.
>>
>> It looks as though your 3c905b is experiencing a genuine CRC32 checksum
>> failure when reading the ROM image, i.e. the image as read back from the
>> expansion ROM is corrupted.
>>
>> Michael
>>
>
> Hi Michael,
>
> I have done some more testing.  If I write the ipxe code using flashrom to
> the chip via the 3com card and read it back again, then the code matches -
> also after a reboot.  Interestingly, I have found the original software
> used to flash the 3com cards with.  Of course, it is not a generic flashing
> utility as you cannot flash any another other firmware other than the one
> included in the tool but after flashing with this tool, the card started
> successfully PXE booting from the network.  The tool is called MBAFLASH.  I
> am thinking, maybe the 3com cards reads from the chip in a different
> way???  What do you think?
>
> Quinn
>
> Good news!

I managed to track down the problem.  Looks like a hardware issue on 3com
905B cards that use the Lucent chipset.  Apparently, when the card reads
from the rom, only the first 8KB is read.  I found out about this by going
back in time to when etherboot was still being developed.  There is a file
called 3c90x.txt which describes the problem.  This text is also referenced
in 3c90x.c in the ipxe sources.  Anyways, etherboot made a bootrom fix so
that the card could read 16KB instead of 8KB by changing the NVRAM to use
MII on the card as the default.  Of course, when you apply this fix then
you must make sure you don't touch the NVRAM after for example by using the
3c90xcfg.exe utility or otherwise you will have to apply the bootrom fix
again.  Unfortunately, the variable  CFG_3C90X_BOOTROM_FIX was removed when
gPXE came out and iPXE also.  So I compiled the etherboot 3c90x rom file in
a floppy bootable format with the bootrom fix variable active as described
in the text file.  The result is I can now flash any rom code to the flash
rom and it will work properly now.  I have tested both iPXE and the XTIDE
rom projects and they both work successfully after applying the fix.

Quinn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20190329/6e1f6dd9/attachment.htm>


More information about the ipxe-devel mailing list