Hi guys, Just joined the forum after hanging around for a while and learning from this great guide. Thanks @junjoo and @Lost_N_BIOS .
I'm trying to solve a problem with my old motherboard (Z77X-UP5) which decided to go into a power-on boot loop.
The motherboard has 2-digit LED display and also two LED's to show which BIOS is in play (Main or Backup). There's a switch to select Main or Backup BIOS.
On power up the LED display pauses with code "15" and then at code "32", then the bios LED switches from Main to Backup and auto restarts.
The restart is now with Backup BIOS and does the same...15..32...switch to Main BIOS...auto restart forever.
Once I did see a the code "db" which apparently means BIOS flash failed. I assume that the Backup flash was automatically being flashed to Main which failed (???).
So my assumption now is both BIOS's are bad.
Few weeks ago a had updated the main BIOS to to modded BIOS that has NVME UEFI drivers. This BIOS worked great by booting from the NVMe SSD.
May be that BIOS did not flash right.
So, I followed the guide here. Bought a CH341A programmer with a Clip cable. Installed the drivers for windows (I'm on WIN10) and a separate laptop.
I have disconnected everything (PSU, drives, CMOS battery, GPU, etc) on the motherboard (except the CPU as it's delidded with liquid thermal paste).
But I just cannot get the CH341A to detect either BIOS chips.
The BIOS chips are MX25L6406E :
I have tried position the Clip very carefully making sure the it is sitting over all 8 pins of the BIOS chip.
If I use CH341a_c.exe (v1.29) it will not detect the chip and the green RUN LED on the CH341 board is never active.
v 1.34 also could not detect the BIOS chips:
If I use v1.18, it will not detect the chip either but that version lets me click the "READ" button and proceeds to the BIOS (the RUN LED is is green) BUT it reads 8MB of Zero's.
So....I switched to another PC...running Linux and installed FLASHROM command line app.
It too cannot detect the chip...except once it did manage to read something. The output of the command was:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
macnb@macnb-eOS:~$ sudo flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
flashrom v0.9.9-r1954 on Linux 5.3.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
flashrom was built with libpci 3.3.1, GCC 5.3.1 20160424, little endian
Command line (7 args): flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
Calibrating delay loop... OS timer resolution is 1 usecs, 1262M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 993 us, 10000 myus = 9969 us, 4 myus = 4 us, OK.
Initializing ch341a_spi programmer
Device revision is 3.0.4
The following protocols are supported: SPI.
Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$
macnb@macnb-eOS:~$ sudo flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
flashrom v0.9.9-r1954 on Linux 5.3.0-28-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
flashrom was built with libpci 3.3.1, GCC 5.3.1 20160424, little endian
Command line (7 args): flashrom -V -p ch341a_spi -c MX25L6406E/MX25L6408E -r my-test-main.rom
Calibrating delay loop... OS timer resolution is 1 usecs, 1262M loops per second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 1030 us, 10000 myus = 10010 us, 4 myus = 4 us, OK.
Initializing ch341a_spi programmer
Device revision is 3.0.4
The following protocols are supported: SPI.
Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017
Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) on ch341a_spi.
Chip status register is 0x00.
Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set
Chip status register: Bit 6 is not set
Chip status register: Block Protect 3 (BP3) is not set
Chip status register: Block Protect 2 (BP2) is not set
Chip status register: Block Protect 1 (BP1) is not set
Chip status register: Block Protect 0 (BP0) is not set
Chip status register: Write Enable Latch (WEL) is not set
Chip status register: Write In Progress (WIP/BUSY) is not set
This chip may contain one-time programmable memory. flashrom cannot read
and may never be able to write it, hence it may not be able to completely
clone the contents of this chip (see man page for details).
Reading flash... done.
macnb@macnb-eOS:~$
But If I open the BIOS file it read with UEFITool, it is only partial BIOS...the tool says the UEFI modules are missing (GBe region is there and shows my LAN MAC address).
I did try the CH341A programmer on a PCIe USB3.0 adding card - it has a Pm25LD512 flash chip and FLASHROM on Windows manage to read it but not CH341A.EXE (as it does not have that chip in it's database).
So the question is, is my new CH341A USB Programmer faulty or my motherboard BIOS chips dead ?
What can I try ?
UPDATE:Nevermind. I solved my problem. If anyone is interested then see this
post.