At the coreboot summit in Denver we talked about a rating system for supported boards. The idea is to make it clear which boards are most highly recommended because the vendors cooperate.
To get to such a rating for a particular board, we should establish a list of categories with an associated score. Each fulfilled criteria should be easily verifiable as a yes or no answer. There should be no subjective elements to the rating system - only measurable criteria should be used to avoid bias or favoritism.
Adding up the scores for the major components on a board (cpu, chipsets, mainboard, others?) would give us a rating that results in a number of 'stars'.
Some ideas for those categories:
- availability of documentation (nothing/NDA restricted == 0, NDA but free to publish code == 3, online with click through == 7, public URL == 10)
- There should be multiple categories of documentation (register set, BIOS programming guide, errata, schematics or pinouts (for motherboards)
- vendor participation in the coreboot project
- How to quantify?
- Availability of example and support code
- ACPI tables
- LPC header, JTAG header, BIOS socket, etc.
- Should we dock a board because it requires soldering or a difficult process for flashing coreboot?
As we list boards, we should also make it clear if a board is actually available for purchase. A board might get a high rating, but be unavailable for purchase, in which case it should be carefully marked as such. Board availability will change over a board's lifespan.
Should we provide a separate rating for coreboot support (i.e. the stuff above) and how good our code actually is?