A motherboard that powers on, but doesn’t boot.

This Framework 13 7640U motherboard was bricked through a “fwupdmgr update” that errored out until the battery died, leaving the UEFI in a broken state.

The advice from framework made it seem like resetting the embedded controller would fix the problem, so when that didn’t work, I started my own troubleshooting with the EC (Embedded Controller).

I accessed the EC through the JECDB header’s serial interface which Framework provides the pinout to find RX and TX. This takes some precise soldering, but is doable with the naked eye and thin enameled wire, 0.3mm gave me sketchy but working connections. RX Soldering

I then was able to observe the boot and the errors being printed. First the EC correctly detected that the boot was failing because memory wasn’t installed.

...
222.999600 power button released]
223.000400 PB releasedº5:~$ \e[6D\e[J[223.001100 PB task 6 = released]
223.001900 PB task 0 = idle, wait 65535]
223.004000 SW 0x05]
223.049900 Power saving disable]
ORT80: 1001
223.068500 PB task 0 = idle]
APELLA ALS sensor failed to initialize, err=3
223.084900 C2, cypd_set_power_state pwr state 0]
223.086000 power state 4 = S0, in 0x000f]
223.090500 Hard reset 0]
223.091700 Hard reset 1]
223.092700 Hard reset 2]
223.097000 INTR_REG CTRL:0 TODO Device 0x2]
223.098500 TYPE_C_ERROR_RECOVERY]
223.105400 INTR_REG CTRL:1 TODO Device 0x2]
223.106900 TYPE_C_ERROR_RECOVERY]
223.111700 INTR_REG CTRL:0 TODO Device 0x2]
223.113100 TYPE_C_ERROR_RECOVERY]
ORT80: 0000
223.183200 Fan 0 stalled!]
ORT80: F200
ORT80: 0200
ORT80: ABE5
ORT80: E001
283.082900 Boot issue: HW 0x000000c2 BIOS: 0xe001]

Fixing that, It gave me a generic bios boot error, which informed me that indeed the problem was not with the EC but with the bios image.

...
16.474200 power button released]
16.476000 PB released]
m[J[16.478200 PB task 6 = released]
...
76.529200 Boot issue: HW 0x000000c2 BIOS: 0xa780]

I was unable to find a bios image online that could be externally flashed, so I obtained a donor bios off a known working board. This bios image is available here, use at your own risk. If your aware of any hazards of hosting this file, let me know.

sha256:4edc8f4467b251aa6e41380b9562e1bd44d494a49f0fdbee1a2cf0681ff09c8 donorbios5.bin

The bios chip shown below is a Winbond 25R256JW, product number W25Q256JWEIQ which is marked as 25Q256JWEQ. I desoldered this WSON8 package to attach my programmer, but it’s likely safe to program the chip on board, as long as a 1.8V programmer is used. WINBOND Programmer

With programming done the board boots! Since the “brain” was transplanted from a bios in an actual laptop, it gives a warning message and the suggestion to enable standalone operation. After enabling standalone operation, the board works as expected and is now being used to run this webserver.

I plan to expand the server to include a zfs array and networking, but until then it is functioning well as a low-power server.

Update

06-02-2025, I fixed another nearly identical framework motherboard using this technique.