Manual/Off-Board BIOS/EC Flashing?

So, I was flashing one of my 1240p mainboards (standalone/not in a chasis) with the 3.09 BIOS and apparently the update didn’t take, as now it will turn on, fan spins, and after several minutes might give me a post code, but that post code seems to be different every time I boot. I don’t get any output on a display either, whether that be one hooked up to the internal eDP connector or an external display. I think something happened during either the BIOS or EC update causing it to not update completely. I was updating 4 boards and ran into various problems with all of them, however the other 3 managed to update successfully while bricking this one.

Anyway, to my question, has anyone attempted to flash the BIOS or EC chips either in-place (i.e. one of those clamp on adapters or via some debug port, even if it requires soldering) or outside of the laptop (i.e. remove it from the board, flash, then re-solder)? I’ve seen this done for various other laptops but I can’t seem to find anyone that’s attempted to do it with a Framework.

Somebody documented doing so over in How to prepare for reflashing firmware

I have reflashed the 11th Gen and Core Ultra 1 boards by hand. The important parts to know are that the flash parts are 3.3V on the older generations and 1.8V on the newer ones and that with the common CH341A-based SPI flashers you will need to hold the pogo pin jig in place for 8-12 minutes for a full read/compare/write cycle.

I have an encapsulated full flash image extracted from the 12th gen update (3.05?) around somewhere if you need it.

Given that you are seeing POST codes, that suggests the embedded controller is running just fine.

So, it must have failed during the bios update then, as I believe I saw the EC update happen after the BIOS update on the other boards. This board used to have 3.05, so would you be able to send that over? My assumption is it would be easier to start back from 3.05 and then just do the normal flash over that. I can PM you my email address if that’s okay.

I need to get the clip and anything else needed to flash it as well so it will be a few days or so until I’m actually able to attempt this.

Thanks!

P.S. My assumption is that 12th gen is “older generation” and therefore on 3.3V; is that correct?

Edit: Looks like I can do this from a pi, so I just need the clip. So this may happen earlier then.

IIRC 8th gen was already 1.8V

They’re asking about the flash part, not the SoC. The flash part on the 12th gen should be 3V3.

I apologize, I misremembered. The earliest full flash image I have is 3.06, which never came out of beta. 3.08 is the current recommended stable version.

You can find 3.08 here: https://drop.howett.net/share/hx30-hfw30.03.08.fd

The firmware on this device is protected by Intel BootGuard, so you should be able to verify the signature originates from Framework Computer and the image has not been tampered with. :slightly_smiling_face:

I got the programmer today but I ordered the wrong probe so that it coming tomorrow… I was just thinking about something though; if push came to shove and I’m not able to use what you posted to recover the bios, couldn’t I just take the bios off of another board and flash that on to this one? I have another 1240P board and two other 1280P boards that were successfully upgraded to 3.09.

Yes, that would suffice in a pinch. It would bring over some of the per-device configuration from the previous device, but it’s unlikely that that would cause too much trouble.

My assumption is that “per-device configuration” would be stuff like the serial number and whatnot as that’s the only thing I can think of that would be a “problem” for otherwise identical boards. That said if that is the case, I’d rather have that than a dead board.

I think you may be making assumptions about the BIOS flash problems.
I would do some other steps first:

  1. Remove all expansion cards.
  2. Do a main board reset process.
  3. Power off the laptop and unplug the PSU and leave it for 2 minutes, then plug back in. This resets the EC.

I’ve tried this and even let the board sit overnight and still have the same problem. Thank you though.

Another thing to try.
Get an EC CCD card and see what extra information the EC can give you about this. For example, it can give some meaningful text output instead of just the flashing LEDs you are seeing. It is the EC that flashes the LEDs after all.
Edit: The EC CCD is not as useful as I thought in this case.
When the LED error code is flashing, the BIOS is making the pattern, and not the EC.

I have not tested what the EC does if no RAM is detected.

You say this like they’re as easy to find as cheap usb cables on Amazon :joy:

I did find where to buy one but for a start I’d rather just compare the bios with the one from a good board to see if it’s corrupted. I’ll have all the things I need for that tomorrow vs waiting I presume weeks for this CCD card.

Looks like I get to wait until Friday now… who knew there were two different sizes of WSON8 probes…

Argh, I should have warned you! The Framework mainboard has flash chips in both sizes; the main firmware chip is the larger (as you’ve unfortunately discovered!) Sorry.

Ah, I was thinking about things like RAM training data and—if you’re using systemd-boot or another similarly enlightened bootloader—a potential random seed or synthetic machine IDs for your distribution. Training data would almost certainly be regenerated.

On the 11th, 12th and 13th Gen Intel mainboards, serial numbers and the device’s first boot date are stored in EC flash. On other models, I haven’t found any of these things. :slight_smile:

Well now, I extracted the bios from another working 1240p board that was upgraded to 3.09, and then wrote that image to the board that’s not booting, and verified that the bios is now an exact copy by reading from the bios chip and comparing it in a hex editor, and now everything appears to be worse.

The blink codes I get now indicate red for:

4 - CPU deassert sleep S4
9 - Fan detected and spins up
10 - CPU reached S0 state

So the CPU isn’t starting at all.

I did backup the original bios that I can put back. Any thoughts?

Edit: Tried flashing the original bios back, verified it, and I’m getting the same codes :expressionless_face: