The story in short: I have a laptop which got bricked with a failed BIOS update, and it's ENE KB9012QF A3 KBC's embedded flash contents needs to be reflashed.

Solutions I tried, but didn't work:

  • Using flashrom software with Rayer_SPI parallel port programmer - it doesn't even detect KB9012's internal flash.

  • Using flashrom with a motherboard's DIP8 BIOS socket after hot-swapping it's original chip to KBC's debug wires - flashrom is able to detect KB9012, but read / erase / write fails because of ICH7's SPI frequency is 17.86MHz, and KB9012's maximum is 16MHz.

  • Using SPIPGM parallel port programmer which is designed for SPI BIOS EEPROMs - it doesn't detect KBC because of different commands used by KB9012 and regular BIOS chips.

After a bit googling, I found some russian parallel port programmer softwares.

  • Postal2 - It has KB9012 support, but it can't be used with debug pins directly connected to LPT port, needs external hardware.

  • UniProf - It's originally designed for reflashing AVRs with SPI protocol, supports connecting directly to LPT port, but not reflashing KB9012.

My question is how to reflash KB9012 with the hardwares currently I have?

  • \$\begingroup\$ Try flashrom with an stm32f103 "bluepill" board as an I/O delegate running the precompiled firmware for that use. Or write a little Arduino sketch to do it (don't overlook voltage differences). As actual bitbang-capable local-bus parallel ports are effectively extinct, investing in parallel port gizmos is probably not worthwhile, pick MCU based things that can be interacted with over USB at a high level where the latency that would kill bit-banging is not an issue. \$\endgroup\$ – Chris Stratton Jan 23 at 17:40
  • \$\begingroup\$ Or how about flashrom on a raspberry pi? \$\endgroup\$ – Chris Stratton Jan 23 at 17:47
  • \$\begingroup\$ It's possible to solve this with a CH341A. The only problem is I'm currently not at home, so I must wait a few months before ordering anything. This is because I try to do it with LPT, or the DIP8 socket. \$\endgroup\$ – UDPSend Jan 23 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.