Intel Gbe firmware repository

Wondering if there is a firmware respository for Gbe region firmware? I have only gone trough the latest ME11, 9.5, 9.1 firmwares here (with FITC) - there does not seem to be Gbe regions included? Am I looking or doing something incorrectly?

1. I can contribute a few firmware from the devices I own and I have tried to extract it from Gigabyte BIOSes with FITC (ASUS does not seem to work - different format?) though they may not include the latest GBe firmware:

i219-V 8086/1570 v1.3
i219-V (2) 8086/15B8 v0.8
i219-LM (2) 8086/15B7 v0.8
i218-V 8086/1559 v0.6
i218-V (2) 8086/15A1 v0.1 (!)

2. Does someone know the header/description of the GBe firmware? Looking at it it seems:

Bytes 00-05 MAC
Bytes 08-09 (Sub)Vendor ID
Bytes 1A-1B (Sub)Device ID
Byte 0A - Version (high nibble) - 1X seems to be 0.1 while FX seems to be 1.5 - maximum version thus 1.5???

3. Why am I asking this? As you may know Intel does not provide Windows Server OS drivers for “-V” adapters only “-LM”. OK so you can manually force the -LM driver on -V and it works fine - as far as I can see - but it’s a bit of a pain if you reinstall often (for testing) or you upgrade the drivers, etc.

Having got the Gbe firmware for i219-LM (2) I am trying to load it on the i219-V (2) - both “Jacksonville”. The idea is that the PCI ID will change (15B8 -> 15B7) and thus drivers will automatically install/update. There are also a few more bits different between the -LM and -V firmware, perhaps “VPro” enablement?

4. So far I have not been able to flash the Gbe firmware as I guess it is locked just like the ME firmware - so I guess a whole BIOS needs to be made and then flashed after the descriptors are unlocked?

Thanks!

There is no GbE repository and no extensive research has been performed at the moment but it’s planned for the future. GbE is an optional firmware for systems that use Intel Gigabit Ethernet controllers so it cannot be found everywhere.

1. It doesn’t get updated often so we probably already have what you listed. Still, when I deal with GbE, I may ask you then for any firmware you might have collected. For Jacksonville, the latest we have from early 2015 are 1.3 and 0.8.

2. The header is very simple and pretty much what you said if I remember properly. Check UEFITool’s source code for an actual header structure.

4. Yes it’s locked by the FD as well.

Thanks for answering.

1. As you say you likely have more images than I do - but I will keep what I have to send until requested - they’re tiny anyway :wink:

2. Great.

4. So that means I have to make a complete BIOS including ME just to flash Gbe? Or dump the BIOS with programmer, find and change Gbe portion and flash back?

Thanks!

The GbE is a Region. The regions are Flash Descriptor, GbE, ME, BIOS. The FD controls Read/Write access to itself, ME and GbE. So you can flash just the GbE region if you want but the FD needs to be unlocked to allow Read/Write access there. If your FD is locked (fptw -d spi.bin results in “cpu access error”) then you can use a programmer to dump the whole SPI image and change whatever you like, including the FD lock state. If you decide to also remove the FD locks, you won’t need to use a programmer in the future for such tasks.

Many thanks. Let me see what I can get working.

Does anyone have a LM version of i218-V (2) 8086/15A1? aka i218-LM (2) 8086/15A0 Gbe image?

Attached the GbE firmware for i218-LM (8086-15A0)

15A0.rar (472 Bytes)

Thanks. I think I need to use the “NO LAN” one as it is the right “size” 0xF4 bytes while the “LAN” is only 0xDB bytes (I am comparing with the -V I have dumped).

It’s interesting that besides the bytes 0x1A-1B which I thought was “Device ID” - there are many more places where “A1” is replaced with “A0” in the -LM version - bytes 0x38, 3C, 3E, 42, 46? So there seem to be 6 places where the ID is different???

Otherwise only byte 0x1C is different (18 -> 1A so bit1 in there becomes ON whatever it means) - both are version 0.1 - guess Intel got this one right 1st time :wink:

From what I can see, the bytes are explained (in detail apparently) at the equivalent .eep files so these may help you decide on what to flash by spotting the important differences. Reuploaded the 15A0 archive.

15A0 (bin + eep).rar (7.13 KB)

Thanks that covers it. Just in case anyone else getting this and getting confused - Intel’s EE doc “location” (aka addresses) deals in word register (16bits) rather than bytes (8bits) you may see on an editor - so divide by 2. Also I think it’s stored Little-Endian?

There is a checksum so I guess if you change the MAC in the image to flash you need to fix the checksum at word 0x3F (to make 0xBABA - daddy?) - the Gbe dump I from the actual card has proper checksum while the BIOS Gbe dumps have 0xFFFF. Otherwise it won’t work?

I’m interested in this, too. I replaced GBe on my old motherboard (I can’t remember the model), I had to use a program to keep the MAC address. I don’t know how to do this in UEFI bioses

You probably had an Asus board and used CodeRush’s tool for such cases but that has nothing to do with GbE firmware. Anyway, as I said, the GbE research and repo is planned for the future. Now it’s microcodes repo time.

Thanks, I’ll anxiously wait…
BTW, I think the program was from Intel, I posted it here somewhere…

Sorry to re-up this thread, I noticed that newest “bios” for my motherboard includes 0.8 GBe, and descriptors say it’s unlocked for writing, anyway it doesn’t get updated.
Is this correcct?

Is that “GBE” you’re on about, the same as “onboard NIC card firmware”?
I think I need the latter, as all the tools say my firmware is invalid, on intel card part of Asus X79-DELUXE

No. GbE is an (Intel specific) firmware region of the UEFI firmware

Thanks. So, if GBE is absent, should I see any effects after booting into Windows with the right driver?

Depends. For an Intel Nic there might be relevant configuration information in the GbE, see post 6 for an example.