I ended up buying the aforementioned bios chip on ebay. I sent the seller the motherboard model, everything went smoothly. I knew someone who'd let me use their workshop to solder it, so I did and swapped the old chip out for the new one. I kept it just in case. It still didn't work.
At that point I assumed they flashed it wrong, so I still wanted to get an SPI programmer and flash it myself.
I had a Thinkpad x220 by that point though which was good enough for doing most tasks so I didn't have that much motivation to fix my PC, and was progressing quite slowly.
At some point due to certain circumstances, I have bought a new motherboard.
I was still going to try and fix this one though since I could use it for my next PC build, not that I had anything to lose anyway.
I've found the FlashProg project - an open source 3.3V 25x series SPI flash programmer, conveniently based on the ATmega8A microcontroller which I had laying around. Only issue was it's designed for 3.3V chips. And the original BIOS chip was an MX25U12873F, which according to it's datasheet was 1.8V (which is from what I've heard later the standard bios chip voltage for Ryzen motherboards). After talking to some people on Louis Rossmann's discord server, I have decided to order a 3.3V <-> 1.8V logic level converter and some other electronic parts, and tried building it.
I have successfully built it on a breadboard - after connecting it to my laptop via USB, the loader program could communicate with the programmer without issues.
But yet another problem emerged. The JSPI1 header on the motherboard has smaller pin spacing than standard breadboard cables. Unfortunately it's really hard to get your hands on ones with 2.0mm spacing, I didn't really fancy the idea of buying a SOIC-8 clip, and didn't have a proper soldering iron, so the project was put on hold for some time again.
At some point, one of my friends also tried downgrading the BIOS in the same motherboard with the same method as me (even though I did warn her), and ended up with it not working properly. So since I already had the programmer she found some cables that had the correct spacing and bought them.
After they arrived she came over and we tried using them with my motherboard first.
I found the pinout of the JSPI1 connector in the manual of FlashcatUSB programmer when doing research earlier on.
To my disappointment, it didn't work. As she was about to leave, I asked what exactly was happening with the motherboard, so since she brought her entire PC, she said she'd show me. When we powered it on it just worked. Turns out newer motherboards take forever to reset their CMOS, and it finally reset properly after she took the battery out a day before and only plugged it back in to show me the problem.
So at that point I didn't really expect to be able to fix the motherboard. I didn't really know if it was the programmer that didn't work or if ISP just wouldn't work with this motherboard. Project was put on hold again.
While watching a YouTube video showing the repair process of some laptop, the guy mentioned that the client had ordered a bios chip from ebay but received a 3.3V one instead of a 1.8V one so it didn't work. Then I realized something. I have never once checked what chip did I actually receive. So I checked it. Turns out the chip was W25Q128JV. I checked the datasheet, and as expected, the chip was the right capacity, but the wrong voltage. I started looking for the old bios chip hoping I didn't throw it away. Fortunately it was in the motherboard box.
I decided to get a soldering station, due to having a hard time deciding on what version of it and from what seller to choose it took me a while to order it.
Right now I'm waiting for it to get shipped from China.
This was a pretty long update, but it was a while since the last one. I'm definitely gonna update again once I get the soldering iron and try flashing the motherboard again.
If anyone in future finds this, here are some of the resources I found so far:
FlashcatUSB manual, the pinout of the JSPI1 connectors is on page 20: https://www.darkwire.app/Downloads/F...USB_Manual.pdf
The original FlashProg project:
- on Hackaday https://hackaday.io/project/6076-fla...ory-programmer
- on SourceForge https://sourceforge.net/projects/flashprog/
My version of FlashProg (mostly improved documentation, the major changes are listed in README): https://gitlab.com/Mckol/flashprog