User:Eswierk: Difference between revisions
mNo edit summary |
(Mention Artec LPC dongle) |
||
Line 16: | Line 16: | ||
The only major downside is that the EETools software is Windows-only. This seems to be par for the course among professional-grade programmers; last time I checked, Linux support was available only for the more do-it-yourself "Willem" programmers. I just hook up the programmer to an old laptop running Windows. It may be possible to [http://wiki.jswindle.com/index.php/Wine_Config_File#Configuring_the_Parallel_Port run TopMax on Linux using Wine] but I have not tried it myself. | The only major downside is that the EETools software is Windows-only. This seems to be par for the course among professional-grade programmers; last time I checked, Linux support was available only for the more do-it-yourself "Willem" programmers. I just hook up the programmer to an old laptop running Windows. It may be possible to [http://wiki.jswindle.com/index.php/Wine_Config_File#Configuring_the_Parallel_Port run TopMax on Linux using Wine] but I have not tried it myself. | ||
==== [[Artecgroup_programmable_LPC_dongle|Artec USB LPC Dongle]] ==== | |||
Typical firmware development process: | |||
* Build a firmware image | |||
* Pry the flash chip out of the target board, insert into programmer | |||
* Erase the flash chip, program the firmware image onto the chip | |||
* Reinsert the flash chip into the target board | |||
* Power up the board, watch it crash | |||
* Fix a bug in your code | |||
* Repeat | |||
Firmware development process with the magical Artec LPC dongle in place of a flash chip: | |||
* Build a firmware image | |||
* Send the image to the dongle via the USB cable | |||
* Power up the target board, watch it crash | |||
* Fix a bug in your code | |||
* Repeat | |||
In short, the Artec LPC dongle saves you lots of prying and inserting, and reduces the compile-test cycle from about 10 minutes to 1 minute. It's worth every penny. |
Revision as of 22:42, 15 October 2008
Ed Swierk
I've been implementing firmware based on Coreboot on a number of AMD- and Intel-based boards for my employer, Arastra.
Favorite Tools
EETools TopMax Flash Programmer
If you plan to do any serious firmware hacking, a flash programmer is an indispensible tool. For most x86-based boards, it's the only way to program a flash chip on a brand-new board with no existing firmware.
The key to a good programmer is good software that's kept up-to-date with the programming algorithms and parameters for a variety of flash chips.
After fighting a losing battle with a cheap no-name flash programmer for a few weeks, I managed to find the TopMax on a dusty shelf at my local Fry's Electronics (much to the surprise of the Fry's employee who told me they hadn't stocked programmers for years).
EETools software supports zillions of different chips and posts updates regularly on their web site. It's reasonably well desgined, stable, and Just Works[tm].
The only major downside is that the EETools software is Windows-only. This seems to be par for the course among professional-grade programmers; last time I checked, Linux support was available only for the more do-it-yourself "Willem" programmers. I just hook up the programmer to an old laptop running Windows. It may be possible to run TopMax on Linux using Wine but I have not tried it myself.
Artec USB LPC Dongle
Typical firmware development process:
- Build a firmware image
- Pry the flash chip out of the target board, insert into programmer
- Erase the flash chip, program the firmware image onto the chip
- Reinsert the flash chip into the target board
- Power up the board, watch it crash
- Fix a bug in your code
- Repeat
Firmware development process with the magical Artec LPC dongle in place of a flash chip:
- Build a firmware image
- Send the image to the dongle via the USB cable
- Power up the target board, watch it crash
- Fix a bug in your code
- Repeat
In short, the Artec LPC dongle saves you lots of prying and inserting, and reduces the compile-test cycle from about 10 minutes to 1 minute. It's worth every penny.