My favourite, most reliable method is to use a TL866 family rom-burner, they are also dirt cheap.
There's conveniently an open source "minipro" programming tool for TL866 family. (linked by another poster)
That + a clip for SOIC, WSON or whatever applies to the motherboard, if you're not lucky enough to have a socketed DIP EEPROM.
Else, something supported by "flashrom", which has a load of supported programmers, including a range of microcontrollers and even bitbanging with dirt cheap FTDI uart usb dongles.
There's conveniently an open source "minipro" programming tool for TL866 family. (linked by another poster)
That + a clip for SOIC, WSON or whatever applies to the motherboard, if you're not lucky enough to have a socketed DIP EEPROM.
Else, something supported by "flashrom", which has a load of supported programmers, including a range of microcontrollers and even bitbanging with dirt cheap FTDI uart usb dongles.