I have just successfully patched my Intel Haswell motherboard's (DH87MC) UEFI BIOS using a RaspberryPi Model B as an SPI programmer based on CodeRush's recommendations. Posting how I did here for other people who may have no option but to go down this path. Warning, this is not for the faint hearted, or people who have no experience in soldering. Unless you know what you are doing, you are very likely to mess up your board.
- Make sure your motherboard has the BIOS you want to patch.
- I followed Pacman's instructions from here (or here) very closely. I deviated from his instructions when installing pciutils required a manual download, and make, sudo make install, and sudo make install-lib. flashrom also requires manual downloading, make, and sudo make install.
- I did not remove the BIOS (SPI) chip, instead I soldered very thin wires to it in place. This is not necessarily good practice, but worked for me.
- I did not remove the motherboard cables (also not necessarily good practice), but I disconnected my computer from all external connections, especially power.
- With the main computer unplugged and disconnected from everything external, except the soldered wires from the raspberrypi, I booted the raspberrypi, and executed a "sudo flashrom -p linux_spi:dev=/dev/spidev0.0 -r biosbackup.rom". Took at least 5 minutes. Now we have the BIOS in a file named 'biosbackup.rom'.
- I copied the file biosbackup.rom from the raspberrypi to a Windows 7 VM, and ran PMPatch.exe, naming the output file biosbackup_patched.rom. (I was not able to run on OSX due to Segmentation fault: 11.)
- After I brought the patched file back to the raspberrypi, and I executed "sudo flashrom -p linux_spi:dev=/dev/spidev0.0 -w biosbackup_patched.rom -V". It also took at least 5 minutes.
- It came back verified, but before I removed the wires, I ran a second test by executing "sudo flashrom -p linux_spi:dev=/dev/spidev0.0 -r biosbackup_patched_reread.rom".
- I compared the files biosbackup_patched.rom and biosbackup_patched_reread.rom in OSX using Hex Fiend. They were identical.
- I reset the CMOS by removing the motherboard battery to be on the safe side.
- Removed the wires from the BIOS SPI chip.
- Reassembled the computer, and booted successfully.
- Tested with 10.8.5 and 10.9 DP8 successfully.
Once again, this is your last resort, and is not recommended unless you absolutely know what you are doing. CodeRush and Fix It Felix Jr, thanks for all the support. Much appreciated.
EDIT: If you are going this way, you may want to consider investing in a SOIC8 / SOP8 (or whatever matches your SPI chip) in circuit test clip instead of soldering on to your motherboard. Look for "SOIC8 in circuit" on ebay. They go for about $10.