Writing a new BootRom/BIOS using the CH341A programmer

I purchased a CH341A programmer to replace a BIOS chip in my existing logic board. This CH341A programmer has the capability to write to 24xx and 25xx chips.

NOTE: I thought I was supposed to modify input voltage to avoid destroying the programmer, after reading all the reviews on Youtube. It was time wasting mistake to mod the CH341A to take 3.3V inputs before doing a test run. In the end, I had to undo all the mods; namely

  1. cutting the 5V VCC and connecting the VCC to 3.3V from the linear regulator.
  2. connecting pin 9 on the CH341A chip to 3.3V.

Chiefly 3.3V was insufficient to power the pomona clips. Reinstating the 5V input to the CH341A made the pomona clips work.

You don’t need to mod the CH341A programmer! It works as advertised without mods.

Here are pics for positioning the pomona clip and adapter to the CH341A programmer.

Note the position of the red line. This red line represents power and must be aligned to the corner pin nearest to the O marker (denoting Pin 1) on the ROM chip.
Note the red line and where the adapter (green) indicates position 1. Position 1 should be pointing to the jackpot handle.

I am running on macOS with homebrew so I elected for flashrom (only choice actually) so…

brew update && brew upgrade
brew install flashrom

next navigate to the location of the BIOS firmware and run
flashrom —-programmer ch341a_spi

It will tell you whether was the CH341A programmer detected. If it says no detection, then you will need to try a new USB port (direct from the laptop/desktop and not through a unpowered USB hub) or swap a new CH341A programmer.

Now attach the ROM chip to the ponoma clips and run the same again.
flashrom --programmer ch341a

This time it will try to identify the ROM chip and ask you for the specific model of the ROM chip.
Now lets write the firmware onto the ROM chip.

flashrom --programmer ch341a_spi -c MX25L3206E/MX25L3208E -w <firmware.bin> -V

-c refers to the ROM chip model that I used
-w refers to the file to write to the ROM chip
-V refers to verbose mode, instruct flashrom to tell you what’s happening.

The above command will include the verification process, countercheck for any errors. (None came up in my case)

Another way to countercheck is to read from the ROM chip after writing to it. The command is similar as follows:

flashrom --programmer ch341a_spi -c MX25L3206E/MX25L3208E -r <extracted_firmware>

Hope this helps. If anyone needs a video, i’ll make one and post on Youtube.

Leave a Reply

Your email address will not be published.