blob: 3e80d44cb20faaad948bffaa1a68b35a739ed709 [file] [log] [blame]
Patrick Georgi274c6c22013-12-05 18:11:33 +01001#!/bin/sh
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +01002export COREBOOT_DIR="../coreboot"
3export GIT_DIR="$COREBOOT_DIR/.git"
Patrick Georgi274c6c22013-12-05 18:11:33 +01004CODE_GITWEB="http://review.coreboot.org/gitweb?p=coreboot.git;a=commitdiff;h="
5STATUS_GITWEB="http://review.coreboot.org/gitweb?p=board-status.git;a=blob;hb=HEAD;f="
6if [ -f `dirname $0`/foreword.wiki ]; then
7 cat `dirname $0`/foreword.wiki
8fi
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +01009detailed=
10nl="
11"
12have=
Patrick Georgi274c6c22013-12-05 18:11:33 +010013while read line; do
14 timeframe=`echo $line | cut -d: -f1`
15 rest=`echo $line | cut -d: -f2-`
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010016 detailed="$detailed= $timeframe =$nl"
Patrick Georgi274c6c22013-12-05 18:11:33 +010017 for i in $rest; do
18 vendor_board=`echo $i | cut -d/ -f1-2`
19 commit=`echo $i | cut -d/ -f3`
20 datetime=`echo $i | cut -d/ -f4`
21 datetime_human=`LC_ALL=C TZ=UTC date --date="$datetime"`
22 upstream=`grep "^Upstream revision:" $vendor_board/$commit/$datetime/revision.txt |cut -d: -f2-`
23 upstream=`git log -1 --format=%H $upstream`
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010024 if ! echo "$have"| grep "^$vendor_board:" > /dev/null; then
25 detailed="$detailed<span id=\"$vendor_board\"></span>$nl"
26 have="$have$vendor_board:$datetime$nl"
27 fi
28
29 detailed="$detailed[[Board:$vendor_board|$vendor_board]] at $datetime_human$nl"
30 detailed="$detailed[$CODE_GITWEB$upstream upstream tree] ($nl"
Vladimir Serbinenkodf7d5c92014-01-20 03:18:20 +010031 for file in "$vendor_board/$commit/$datetime/"*; do
32 if [ "$file" = "$vendor_board/$commit/$datetime/revision.txt" ]; then
33 continue
34 fi
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010035 detailed="$detailed[$STATUS_GITWEB$file `basename $file`] $nl"
Patrick Georgi274c6c22013-12-05 18:11:33 +010036 done
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010037 detailed="$detailed)$nl$nl"
Patrick Georgi274c6c22013-12-05 18:11:33 +010038 done
39done
40
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010041cat <<EOF
Vladimir Serbinenko2a0fc9f2014-01-19 03:49:30 +010042== Motherboards supported in coreboot ==
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010043
44{| border="0" style="font-size: smaller"
45|- bgcolor="#6699ff"
46! align="left" | Vendor
47! align="left" | Mainboard
48! align="left" | Latest known good
49! align="left" | Northbridge
50! align="left" | Southbridge
51! align="left" | Super&nbsp;I/O
52! align="left" | CPU
53! align="left" | Socket
54! align="left" | <span title="ROM chip package">ROM&nbsp;<sup>1</sup></span>
55! align="left" | <span title="ROM chip protocol">P&nbsp;<sup>2</sup></span>
56! align="left" | <span title="ROM chip socketed?">S&nbsp;<sup>3</sup></span>
57! align="left" | <span title="Board supported by flashrom?">F&nbsp;<sup>4</sup></span>
58! align="left" | <span title="Vendor Cooperation Score">VCS<sup>5</sup></span>
59EOF
60
Vladimir Serbinenko047c10c2014-01-19 02:56:48 +010061for category in desktop server laptop half mini settop "eval" sbc emulation misc unclass; do
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010062 last_vendor=
63 color=eeeeee
64 case "$category" in
65 desktop)
66 cat <<EOF
67|- bgcolor="#6699ff"
68| colspan="13" | <h4>Desktops / Workstations</h4>
69
70EOF
71 ;;
72 server)
73 cat <<EOF
74|- bgcolor="#6699ff"
75| colspan="13" | <h4>Servers</h4>
76
77EOF
78 ;;
79 laptop)
80 cat <<EOF
81|- bgcolor="#6699ff"
82| colspan="13" | <h4>Laptops</h4>
83
84EOF
85 ;;
86 half)
87 cat <<EOF
88|- bgcolor="#6699ff"
Vladimir Serbinenko047c10c2014-01-19 02:56:48 +010089| colspan="13" | <h4>Embedded / PC/104 / Half-size boards</h4>
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +010090
91EOF
92 ;;
93 mini)
94 cat <<EOF
95|- bgcolor="#6699ff"
96| colspan="13" | <h4>Mini-ITX / Micro-ITX / Nano-ITX</h4>
97
98EOF
99 ;;
100 settop)
101 cat <<EOF
102|- bgcolor="#6699ff"
103| colspan="13" | <h4>Set-top-boxes / Thin clients</h4>
104
105EOF
106 ;;
107 "eval")
108 cat <<EOF
109|- bgcolor="#6699ff"
110| colspan="13" | <h4>Devel/Eval Boards</h4>
111
112EOF
113 ;;
Vladimir Serbinenko047c10c2014-01-19 02:56:48 +0100114 sbc)
115 cat <<EOF
116|- bgcolor="#6699ff"
117| colspan="13" | <h4>Single-Board computer</h4>
118
119EOF
120 ;;
Vladimir Serbinenko14a70302014-01-19 02:54:25 +0100121 emulation)
122 cat <<EOF
123|- bgcolor="#6699ff"
124| colspan="13" | <h4>Emulation</h4>
125
126EOF
127 ;;
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100128 misc)
129 cat <<EOF
130|- bgcolor="#6699ff"
131| colspan="13" | <h4>Miscellaneous</h4>
132
133EOF
134 ;;
135 unclass)
136 cat <<EOF
137|- bgcolor="#6699ff"
138| colspan="13" | <h4>Unclassified</h4>
139
140EOF
141 ;;
142 esac
143
144 for vendor_board_dir in "$COREBOOT_DIR"/src/mainboard/*/* ; do
145 board="$(basename "$vendor_board_dir")"
146 vendor="$(basename "$(dirname "$vendor_board_dir")")"
147 if [ "$board" = Kconfig ]; then
148 continue
149 fi
150
151 if [ -f "$vendor_board_dir/board_info.txt" ]; then
152 cur_category="$(sed -n "/^[[:space:]]*Category:/ s,^[[:space:]]*Category:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
153 else
154 cur_category=
155 fi
156
157 case "$cur_category" in
Vladimir Serbinenko047c10c2014-01-19 02:56:48 +0100158 desktop|server|laptop|half|mini|settop|"eval"|emulation|sbc|misc)
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100159 ;;
160 *)
161 cur_category=unclass
162 ;;
163 esac
164 if [ "$cur_category" != "$category" ]; then
165 continue
166 fi
167
168 if [ -f "$vendor_board_dir/board_info.txt" ]; then
Kyösti Mälkki49592da2014-05-15 10:06:25 +0300169 vendor_2nd="$(sed -n "/^[[:space:]]*Vendor name:/ s,^[[:space:]]*Vendor name:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100170 board_nice="$(sed -n "/^[[:space:]]*Board name:/ s,^[[:space:]]*Board name:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
171 rom_package="$(sed -n "/^[[:space:]]*ROM package:/ s,^[[:space:]]*ROM package:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
172 rom_protocol="$(sed -n "/^[[:space:]]*ROM protocol:/ s,^[[:space:]]*ROM protocol:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
173 rom_socketed="$(sed -n "/^[[:space:]]*ROM socketed:/ s,^[[:space:]]*ROM socketed:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
174 flashrom_support="$(sed -n "/^[[:space:]]*Flashrom support:/ s,^[[:space:]]*Flashrom support:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
175 vendor_cooperation_score="$(sed -n "/^[[:space:]]*Vendor cooperation score:/ s,^[[:space:]]*Vendor cooperation score:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
176 vendor_cooperation_page="$(sed -n "/^[[:space:]]*Vendor cooperation page:/ s,^[[:space:]]*Vendor cooperation page:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100177 board_url="$(sed -n "/^[[:space:]]*Board URL:/ s,^[[:space:]]*Board URL:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
Vladimir Serbinenko2eaf3b42014-01-19 00:37:23 +0100178 clone_of="$(sed -n "/^[[:space:]]*Clone of:/ s,^[[:space:]]*Clone of:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100179 else
Kyösti Mälkki49592da2014-05-15 10:06:25 +0300180 vendor_2nd=
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100181 board_nice=
182 rom_package=
183 rom_protocol=
184 rom_socketed=
185 flashrom_support=
186 vendor_cooperation_score=
187 vendor_cooperation_page=
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100188 board_url=
Vladimir Serbinenko2eaf3b42014-01-19 00:37:23 +0100189 clone_of=
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100190 fi
191 if [ "$last_vendor" != "$vendor" ]; then
192 last_vendor="$vendor"
193 if [ "$color" = dddddd ]; then
194 color=eeeeee
195 else
196 color=dddddd
197 fi
198 fi
199
200 vendor_nice="$(grep -A1 -i "config VENDOR_$vendor" "$COREBOOT_DIR"/src/mainboard/Kconfig|tail -n1|sed -n 's,^[[:space:]]*bool[[:space:]]*"\(.*\)"[[:space:]]*$,\1,p')"
201
202 if [ -z "$vendor_nice" ]; then
203 vendor_nice="$(echo "$vendor" |sed -e "s/\(.\)/\u\1/g")";
204 fi
205 if [ -z "$board_nice" ]; then
Vladimir Serbinenko49fef4b2014-01-18 22:18:01 +0100206 board_nice="$(grep -A2 -i "config MAINBOARD_PART_NUMBER" "$COREBOOT_DIR"/src/mainboard/$vendor/$board/Kconfig|tail -n1|sed -n 's,^[[:space:]]*default[[:space:]]*"\(.*\)"[[:space:]]*$,\1,p')"
207 fi
208 if [ -z "$board_nice" ]; then
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100209 board_nice="$(echo "$board" |sed -e "s,_, ,g;s/\(.\)/\u\1/g")";
210 fi
211
Vladimir Serbinenko2697c072014-11-23 10:32:03 +0100212 venboard="$vendor/$board"
213 if [ -n "$clone_of" ]; then
214 venboard="$clone_of"
Vladimir Serbinenko2eaf3b42014-01-19 00:37:23 +0100215 fi
216
Vladimir Serbinenko2697c072014-11-23 10:32:03 +0100217 lastgood="$(echo "$have"| sed -n "/^$(echo "$venboard"|sed 's,/,\\/,g'):/ s,^[^:]*:,,gp")"
218
219 vendor_board_dir="$COREBOOT_DIR"/src/mainboard/"$venboard";
220
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100221 northbridge="$(sed -n "/^[[:space:]]*select NORTHBRIDGE_/ s,^[[:space:]]*select NORTHBRIDGE_,,p" "$vendor_board_dir/Kconfig")"
Vladimir Serbinenko5fb48a82014-01-19 03:19:16 +0100222 northbridge_nice="$(echo "$northbridge"|sed 's,AMD_AGESA_FAMILY\([0-9a-fA-F]*\)\(.*\),AMD Family \1h\2 (AGESA),g;s,AMD_FAMILY\([0-9a-fA-F]*\),AMD Family \1h,g;s,AMD_AMDFAM\([0-9a-fA-F]*\),AMD Family \1h,g;s,_, ,g;s,INTEL,Intel®,g;')"
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100223
Vladimir Serbinenko50d97522014-02-05 12:20:24 +0100224 southbridge="$(sed -n "/[[:space:]]*select SOUTHBRIDGE_/ s,[[:space:]]*select SOUTHBRIDGE_\([^ ]*\).*$,\1,p" "$vendor_board_dir/Kconfig"|grep -v SKIP_ISA_DMA_INIT)"
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100225 southbridge_nice="$(echo "$southbridge"|sed 's,_, ,g;s,INTEL,Intel®,g')"
Vladimir Serbinenko970dd9c2014-02-05 12:20:58 +0100226 superio="$(sed -n "/[[:space:]]*select SUPERIO_/ s,[[:space:]]*select SUPERIO_,,p" "$vendor_board_dir/Kconfig"|grep -v OVERRIDE_FANCTL)"
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100227 superio_nice="$(echo "$superio"|sed 's,_, ,g;s,WINBOND,Winbond™,g;s,ITE,ITE™,g;s,SMSC,SMSC®,g')"
228 cpu="$(sed -n "/ select CPU_/ s, select CPU_,,p" "$vendor_board_dir/Kconfig"|grep -v "AMD_AGESA_FAMILY")"
229 case "$cpu" in
230 ALLWINNER_A10)
231 cpu_nice="Allwinner A10"
232 socket_nice="?";;
233 AMD_GEODE_*)
234 cpu_nice="AMD Geode™ ${cpu#AMD_GEODE_}";
235 socket_nice="—";;
236 AMD_SOCKET_754)
237 cpu_nice="AMD Sempron™ / Athlon™ 64 / Turion™ 64";
238 socket_nice="Socket 754";;
239 AMD_SOCKET_ASB2)
240 cpu_nice="AMD Turion™ II Neo/Athlon™ II Neo";
241 socket_nice="ASB2 (BGA812)";;
242 AMD_SOCKET_S1G1)
243 cpu_nice="AMD Turion™ / X2 Sempron™";
244 socket_nice="Socket S1G1";;
245 AMD_SOCKET_G34)
246 cpu_nice="AMD Opteron™ Magny-Cours/Interlagos";
247 socket_nice="Socket G34";;
248 AMD_SOCKET_C32|AMD_SOCKET_C32_NON_AGESA)
249 cpu_nice="AMD Opteron™ Magny-Cours/Interlagos";
250 socket_nice="Socket C32";;
251 AMD_SOCKET_AM2)
252 cpu_nice="?";
253 socket_nice="Socket AM2"
254 ;;
255 AMD_SOCKET_AM3)
256 cpu_nice="AMD Athlon™ 64 / FX / X2";
257 socket_nice="Socket AM3"
258 ;;
259 AMD_SOCKET_AM2R2)
260 cpu_nice="AMD Athlon™ 64 / X2 / FX, Sempron™";
261 socket_nice="Socket AM2+"
262 ;;
263 AMD_SOCKET_F)
264 cpu_nice="AMD Opteron™";
265 socket_nice="Socket F"
266 ;;
267 AMD_SOCKET_F_1207)
268 cpu_nice="AMD Opteron™";
269 socket_nice="Socket F 1207"
270 ;;
271 AMD_SOCKET_940)
272 cpu_nice="AMD Opteron™";
273 socket_nice="Socket 940"
274 ;;
275 AMD_SOCKET_939)
276 cpu_nice="AMD Athlon™ 64 / FX / X2";
277 socket_nice="Socket 939"
278 ;;
279 AMD_SC520)
Alexandru Gagniuc0c54bfa2014-02-09 14:50:50 -0600280 cpu_nice="AMD Élan™SC520";
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100281 socket_nice="—";;
282 ARMLTD_CORTEX_A9)
283 cpu_nice="ARM Cortex A9";
284 socket_nice="?";;
285 DMP_VORTEX86EX)
286 cpu_nice="DMP VORTEX86EX";
287 socket_nice="?";;
288 SAMSUNG_EXYNOS5420)
289 cpu_nice="Samsung Exynos 5420";
290 socket_nice="?";;
291 SAMSUNG_EXYNOS5250)
292 cpu_nice="Samsung Exynos 5250";
293 socket_nice="?";;
294 TI_AM335X)
295 cpu_nice="TI AM335X";
296 socket_nice="?";;
297 INTEL_SLOT_1)
298 cpu_nice="Intel® Pentium® II/III, Celeron®";
299 socket_nice="Slot 1";;
300 INTEL_SOCKET_MPGA604)
301 cpu_nice="Intel® Xeon®";
302 socket_nice="Socket 604";;
303 INTEL_SOCKET_MFCPGA478)
304 cpu_nice="Intel® Core™ 2 Duo Mobile, Core™ Duo/Solo, Celeron® M";
305 socket_nice="Socket mPGA478";;
306 INTEL_SOCKET_LGA771)
307 cpu_nice="Intel Xeon™ 5000 series";
308 socket_nice="Socket LGA771";;
309 INTEL_SOCKET_PGA370)
310 cpu_nice="Intel® Pentium® III-800, Celeron®"
311 socket_nice="Socket 370";;
312 INTEL_SOCKET_MPGA479M)
313 cpu_nice="Intel® Mobile Celeron"
314 socket_nice="Socket 479"
315 ;;
316 INTEL_SOCKET_RPGA989)
317 case $northbridge in
318 INTEL_HASWELL)
319 cpu_nice="Intel® 4th Gen (Haswell) Core i3/i5/i7"
320 socket_nice="Socket RPGA989";;
Vladimir Serbinenko76998332014-08-16 19:14:02 +0200321 INTEL_IVYBRIDGE_NATIVE|INTEL_IVYBRIDGE|INTEL_FSP_IVYBRIDGE)
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100322 cpu_nice="Intel® 3rd Gen (Ivybridge) Core i3/i5/i7"
323 socket_nice="Socket RPGA989";;
324 INTEL_SANDYBRIDGE)
325 cpu_nice="Intel® 2nd Gen (Sandybridge) Core i3/i5/i7"
326 socket_nice="Socket RPGA989";;
327 *)
Vladimir Serbinenko08c372f2014-01-19 14:44:04 +0100328 cpu_nice="$northbridge"
329 socket_nice="$northbridge";;
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100330 esac
331 ;;
332 INTEL_SOCKET_441)
333 cpu_nice="Intel® Atom™ 230";
334 socket_nice="Socket 441";;
335 INTEL_SOCKET_BGA956)
Vladimir Serbinenkof4ea9b22014-08-16 17:16:20 +0200336 case $northbridge in
337 INTEL_GM45)
338 cpu_nice="Intel® Core 2 Duo (Penryn)"
339 socket_nice="Socket P";;
340 *)
341 cpu_nice="Intel® Pentium® M";
342 socket_nice="BGA956";;
343 esac
344 ;;
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100345 INTEL_SOCKET_FC_PGA370)
346 cpu_nice="Intel® Pentium® III / Celeron®";
347 socket_nice="Socket 370"
348 ;;
349 INTEL_EP80579)
350 cpu_nice="Intel® EP80579";
351 socket_nice="Intel® EP80579"
352 ;;
353 INTEL_SOCKET_MFCBGA479)
354 cpu_nice="Intel® Mobile Celeron"
355 socket_nice="Socket 479";;
356 VIA_C3)
357 cpu_nice="VIA C3™";
358 socket_nice="?"
359 ;;
360 VIA_C7)
361 cpu_nice="VIA C7™";
362 socket_nice="?"
363 ;;
364 VIA_NANO)
365 cpu_nice="VIA Nano™";
366 socket_nice="?"
367 ;;
368 QEMU_X86)
369 cpu_nice="QEMU x86";
370 socket_nice="—"
371 ;;
372 "")
373 case $northbridge in
374 INTEL_NEHALEM)
Vladimir Serbinenko892728c2014-02-05 13:01:47 +0100375 cpu_nice="Intel® 1st Gen (Nehalem) Core i3/i5/i7"
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100376 socket_nice="?";;
377 RDC_R8610)
378 cpu_nice="RDC 8610"
379 socket_nice="—";;
380 AMD_AGESA_FAMILY14|AMD_AGESA_FAMILY15_TN|AMD_AGESA_FAMILY15_KB|AMD_AGESA_FAMILY16_KB|AMD_AGESA_FAMILY12)
381 cpu_nice="?"
382 socket_nice="?";;
383 *)
Vladimir Serbinenko08c372f2014-01-19 14:44:04 +0100384 cpu_nice="$northbridge"
385 socket_nice="$northbridge";;
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100386 esac
387 ;;
388 *)
Vladimir Serbinenko08c372f2014-01-19 14:44:04 +0100389 cpu_nice="$cpu"
390 socket_nice="$cpu";;
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100391 esac
392
393 echo "|- bgcolor=\"#$color\""
Rudolf Mareka8d089d2014-04-27 20:29:10 +0200394
Vladimir Serbinenko21a27072014-01-18 23:37:13 +0100395 if [ -z "$board_url" ]; then
Rudolf Mareka8d089d2014-04-27 20:29:10 +0200396 echo "| $vendor_nice"
Vladimir Serbinenko21a27072014-01-18 23:37:13 +0100397 else
Rudolf Mareka8d089d2014-04-27 20:29:10 +0200398 echo "| [$board_url $vendor_nice]"
Vladimir Serbinenko21a27072014-01-18 23:37:13 +0100399 fi
Kyösti Mälkki49592da2014-05-15 10:06:25 +0300400 if ! [ -z "$vendor_2nd" ]; then
401 echo "( $vendor_2nd )"
402 fi
403
Rudolf Mareka8d089d2014-04-27 20:29:10 +0200404 echo "| [[Board:$vendor/$board|$board_nice]]"
405
Vladimir Serbinenko22210dd2014-01-17 16:04:25 +0100406 if [ -z "$lastgood" ]; then
407 echo "| style=\"background:red\" | Unknown"
408 else
409 echo "| style=\"background:lime\" | [[#$vendor/$board|$lastgood]]"
410 fi
411
412 echo "| $northbridge_nice"
413 echo "| $southbridge_nice"
414 echo "| $superio_nice"
415 echo "| $cpu_nice"
416 echo "| $socket_nice"
417 if [ "$rom_package" = "" ]; then
418 echo "| ?"
419 else
420 echo "| $rom_package"
421 fi
422 if [ "$rom_protocol" = "" ]; then
423 echo "| ?"
424 else
425 echo "| $rom_protocol"
426 fi
427 if [ "$rom_socketed" = "y" ]; then
428 echo "| style=\"background:lime\" | Y"
429 elif [ "$rom_socketed" = "n" ]; then
430 echo "| style=\"background:red\" | N"
431 elif [ "$flashrom_support" = "variable" ]; then
432 echo "| ...<sup>7</sup>"
433 elif [ "$rom_socketed" = "" ]; then
434 echo "| ?"
435 else
436 echo "| $rom_socketed"
437 fi
438 if [ "$flashrom_support" = "y" ]; then
439 echo "| style=\"background:lime\" | Y"
440 elif [ "$flashrom_support" = "n" ]; then
441 echo "| style=\"background:red\" | N"
442 elif [ "$flashrom_support" = "coreboot-only" ]; then
443 echo "| style=\"background:yellow\" | ...<sup>6</sup>"
444 elif [ "$flashrom_support" = "" ]; then
445 echo "| ?"
446 else
447 echo "| $flashrom_support"
448 fi
449 if [ "$vendor_cooperation_score" = "4" ]; then
450 echo -n "| style=\"background:lime\""
451 elif [ "$vendor_cooperatio_scoren" = "3" ]; then
452 echo -n "| style=\"background:yellow\""
453 fi
454 if [ "$vendor_cooperation_page" != "" ]; then
455 echo "| [[$vendor_cooperation_page|$vendor_cooperation_score]]"
456 elif [ "$vendor_cooperation_score" = "" ]; then
457 echo "| —"
458 else
459 echo "| $vendor_cooperation_score"
460 fi
461 echo
462 done
463done
464echo "|}"
465
466cat <<EOF
467<small>
468<sup>1</sup> ROM chip package (PLCC, DIP32, DIP8, SOIC8).<br />
469<sup>2</sup> ROM chip protocol/type (parallel flash, LPC, FWH, SPI).<br />
470<sup>3</sup> ROM chip socketed (Y/N)?<br />
471<sup>4</sup> Board supported by [http://www.flashrom.org flashrom] (Y/N)?<br />
472<sup>5</sup> Vendor Cooperation Score.<br />
473<sup>6</sup> [http://www.flashrom.org flashrom] does not work when the vendor BIOS is booted, but it does work when the machine is booted with coreboot.<br />
474<sup>7</sup> Some boards have ROM sockets, others are soldered.<br />
475</small>
476EOF
477
478
479echo "$detailed"