Saturday 17 March 2018

Updating a motherboard BIOS the hard way

This is an old post, preserved for reference.
The products and services mentioned within are no longer available.

I was presented with an interesting problem this week. I had been asked to build a PC for a friend, and they had sent me the parts they had chosen. Lots of boxes arrived, and all looked promising, lots of nice boxes from brands I like.
They had gone for an intel Core i3 7100, which is a good choice at the moment. However, there appeared to be a problem with the processor and motherboard combination. It wasn't the board I had suggested, but one that was cheaper. They said it should be fine, as it had apparently come up in the 'frequently bought together' section on Amazon with the processor, which I usually interpret as 'here is something else we want to sell you', rather than a guarantee of compatibility.
The board was a Gigabyte H110M-S2H. Not the latest 200 series chipsets, but the 100 series should support the later processors, and it has DDR4 RAM etc. so should be fine. Checking their website, it is listed as supporting 6th and 7th generation processors.
The box, however, didn't agree with that, it stated 6th generation only.
Checking the CPU support list, the processor is supported, but only with a BIOS update to version F20 or later. A bit of googling brought up a selection of reviews and ratings which indicated people had hit this problem before and either had to return the board or buy a cheap 6th generation CPU in order to be able to boot the board and upgrade the BIOS before discarding it and fitting their new 7th generation processor. Also comments from buyers on Amazon (where this came from) confirming the current boards were still shipping with the old BIOS.
I put those options to the buyer, either send the board back (I hadn't powered it up) and get a later one, or buy a cheap CPU just to do the BIOS update. I did look though the manual to see if it was one of the ones that can update the BIOS via a USB stick in a specific port, but sadly not. I could only think of one other way to do this. The BIOS chip on the board was a standard 8 pin EEPROM, if he were prepared to risk it, I could just remove the chip, program in the latest BIOS then put it back
Given the go ahead, I double checked the part number, MX25L6473F was supported by my programmer, so off with the chip it was. Kapton tape all around to protect the rest of the board, a bit of flux and some hot air and off comes the chip.
There are so many variations of small IC package these days, it's difficult to keep up, particularly when they interchangeably use different names for the same package, and similar names for different ones, SM8, SSOP, VSOP, TSOP, etc. Whatever it was, I didn't have an adapter board suitable to take the chip directly, so as it was only required briefly, I improvised.
A work of art no doubt, but it was recognised by the programmer, and as a test, I read back what was on there. I was expecting there to be a version number in there, but I couldn't find one. Nor was I able to match it to any of the 11 versions of the BIOS on the manufacturers website. The closest was version F4, which would not have supported the new processor.
They clearly had a neater adapter in mind when they drew the graphics, but it still worked. Programming took a minute or so, with version F25A, the latest on their website at the time. I did have lots of screenshots here, showing reading in, comparing the versions and then the erasing and programming. However, when I came back to my desk a few hours later, I found Microsoft had decided to reboot my PC to do an update. This had closed all the windows and lost all the raw screenshots. Well, I says 'my PC', it's clearly Microsoft's PC as they seem to decide when I can use it. Rant over.
I managed to clear a space just about large enough to test the board, and fired it up. I'm using an old 12V DC powered ATX supply. I find that useful for quick testing like this, a board like this only needs about 20W to post and do some basic testing.
Success! It booted and a quick check in the BIOS showed version F25a was indeed running, and the processor and RAM had been correctly detected.
I left that running for a while on memtest and it flew through. These modern intel processors have massive memory bandwidth, very impressive.
With that now working, it just needed building up in the case and Windows installing, and it's on to it's new owner.