<div dir="ltr"><div dir="ltr"><div dir="ltr">On Thu, Mar 21, 2019 at 8:30 AM Quinn Plattel <<a href="mailto:qiet72@gmail.com">qiet72@gmail.com</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 12:59 PM Michael Brown <<a href="mailto:mcb30@ipxe.org" target="_blank">mcb30@ipxe.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 17/03/2019 01:09, Quinn Plattel wrote:<br>
> Well, I have now tested the same two cards with the same two roms on a <br>
> different older system.  Here is the results:<br>
> <br>
> D-Link DFE-530TX:<br>
> ============================<br>
> iPXE (<a href="http://ipxe.org" rel="noreferrer" target="_blank">http://ipxe.org</a>) 00:10.0 D400 PCI2.10 PnP D400<br>
> <br>
> iPXE (PCI 00:10.0) starting execution...ok<br>
> iPXE initialising devices...ok<br>
> <br>
> iPXE 1.0.0+ (b6ffe) -- Open Source Network Boot Firmware - <a href="http://ipxe.org" rel="noreferrer" target="_blank">http://ipxe.org</a><br>
> Features: DNS HTTP TFTP ELF MBOOT PXE bzImage Menu PXEXT<br>
> <br>
> iPXE><br>
> =============================<br>
> <br>
> 3Com 905B:<br>
> =============================<br>
> iPXE (<a href="http://ipxe.org" rel="noreferrer" target="_blank">http://ipxe.org</a>) 00:10.0 D400 PCI2.10 PnP D400<br>
> <br>
> iPXE (PCI 00:10.0) starting execution...1B101B10 000D4CF4 00000712<br>
> Installation failed - cannot continue<br>
> =============================<br>
> <br>
> So, results are the same, except, on this older system, I do not seem to <br>
> see any addresses advertised in the banner part of the roms.<br>
> Why is that?<br>
<br>
Your older system does not support PMM.  iPXE will read the ROM image <br>
directly from the BIOS option ROM area (and will therefore require more <br>
option ROM space than if PMM were present), and will use 0x100000 as the <br>
temporary decompression area.<br>
<br>
It looks as though your 3c905b is experiencing a genuine CRC32 checksum <br>
failure when reading the ROM image, i.e. the image as read back from the <br>
expansion ROM is corrupted.<br>
<br>
Michael<br>
</blockquote></div><br clear="all"><div>Hi Michael,</div><div><br></div><div>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?</div><div><br></div><div>Quinn<br></div><div dir="ltr" class="gmail-m_5263930101997442306gmail_signature"><div dir="ltr"><br></div></div></div>
</blockquote></div>Good news!<div><br></div><div>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.</div><div><br></div><div>Quinn</div><div><br></div></div>