[coreboot-gerrit] Patch set updated for coreboot: b5b9ad1 boardstatus: generate table of all boards with links to latest run

Vladimir Serbinenko (phcoder@gmail.com) gerrit at coreboot.org
Sat Jan 18 20:58:59 CET 2014


Vladimir Serbinenko (phcoder at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4699

-gerrit

commit b5b9ad10bf58afa725a65a171b6589c3d1f60d7d
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date:   Fri Jan 17 16:04:25 2014 +0100

    boardstatus: generate table of all boards with links to latest run
    
    Change-Id: I78f94238d7931c8b41e63174220ec4392108f4ce
    Signed-off-by: Vladimir Serbinenko <phcoder at gmail.com>
---
 util/board_status/to-wiki/towiki.sh | 436 +++++++++++++++++++++++++++++++++++-
 1 file changed, 430 insertions(+), 6 deletions(-)

diff --git a/util/board_status/to-wiki/towiki.sh b/util/board_status/to-wiki/towiki.sh
index 82cb3b6..98dd502 100755
--- a/util/board_status/to-wiki/towiki.sh
+++ b/util/board_status/to-wiki/towiki.sh
@@ -1,14 +1,19 @@
 #!/bin/sh
-export GIT_DIR=../coreboot/.git
+export COREBOOT_DIR="../coreboot"
+export GIT_DIR="$COREBOOT_DIR/.git"
 CODE_GITWEB="http://review.coreboot.org/gitweb?p=coreboot.git;a=commitdiff;h="
 STATUS_GITWEB="http://review.coreboot.org/gitweb?p=board-status.git;a=blob;hb=HEAD;f="
 if [ -f `dirname $0`/foreword.wiki ]; then
 	cat `dirname $0`/foreword.wiki
 fi
+detailed=
+nl="
+"
+have=
 while read line; do
 	timeframe=`echo $line | cut -d: -f1`
 	rest=`echo $line | cut -d: -f2-`
-	echo "= $timeframe ="
+	detailed="$detailed= $timeframe =$nl"
 	for i in $rest; do
 		vendor_board=`echo $i | cut -d/ -f1-2`
 		commit=`echo $i | cut -d/ -f3`
@@ -16,13 +21,432 @@ while read line; do
 		datetime_human=`LC_ALL=C TZ=UTC date --date="$datetime"`
 		upstream=`grep "^Upstream revision:" $vendor_board/$commit/$datetime/revision.txt |cut -d: -f2-`
 		upstream=`git log -1 --format=%H $upstream`
-		echo "[[Board:$vendor_board|$vendor_board]] at $datetime_human"
-		echo "[$CODE_GITWEB$upstream upstream tree] ("
+		if ! echo "$have"| grep  "^$vendor_board:" > /dev/null; then
+			detailed="$detailed<span id=\"$vendor_board\"></span>$nl"
+			have="$have$vendor_board:$datetime$nl"
+		fi
+
+		detailed="$detailed[[Board:$vendor_board|$vendor_board]] at $datetime_human$nl"
+		detailed="$detailed[$CODE_GITWEB$upstream upstream tree] ($nl"
 		ls $vendor_board/$commit/$datetime/* |grep -v '/revision.txt$' | while read file; do
-			echo "[$STATUS_GITWEB$file `basename $file`] "
+			detailed="$detailed[$STATUS_GITWEB$file `basename $file`] $nl"
+		done
+		detailed="$detailed)$nl$nl"
+	done
+done
+
+cat <<EOF
+== Motherboards supported in coreboot v4 ==
+
+{| border="0" style="font-size: smaller"
+|- bgcolor="#6699ff"
+! align="left" | Vendor
+! align="left" | Mainboard
+! align="left" | Latest known good
+! align="left" | Northbridge
+! align="left" | Southbridge
+! align="left" | Super I/O
+! align="left" | CPU
+! align="left" | Socket
+! align="left" | <span title="ROM chip package">ROM <sup>1</sup></span>
+! align="left" | <span title="ROM chip protocol">P <sup>2</sup></span>
+! align="left" | <span title="ROM chip socketed?">S <sup>3</sup></span>
+! align="left" | <span title="Board supported by flashrom?">F <sup>4</sup></span>
+! align="left" | <span title="Vendor Cooperation Score">VCS<sup>5</sup></span>
+EOF
+
+for category in desktop server laptop half mini settop "eval" misc unclass; do
+	last_vendor=
+	color=eeeeee
+	case "$category" in
+		desktop)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Desktops / Workstations</h4>
+
+EOF
+			;;
+		server)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Servers</h4>
+
+EOF
+			;;
+		laptop)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Laptops</h4>
+
+EOF
+			;;
+		half)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Embedded / SBC / PC/104 / Half-size boards</h4>
+
+EOF
+			;;
+		mini)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Mini-ITX / Micro-ITX / Nano-ITX</h4>
+
+EOF
+			;;
+		settop)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Set-top-boxes / Thin clients</h4>
+
+EOF
+			;;
+		"eval")
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Devel/Eval Boards</h4>
+
+EOF
+			;;
+		misc)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Miscellaneous</h4>
+
+EOF
+			;;
+		unclass)
+			cat <<EOF
+|- bgcolor="#6699ff"
+| colspan="13" | <h4>Unclassified</h4>
+
+EOF
+			;;
+	esac
+
+	for vendor_board_dir in "$COREBOOT_DIR"/src/mainboard/*/* ; do
+		board="$(basename "$vendor_board_dir")"
+		vendor="$(basename "$(dirname "$vendor_board_dir")")"
+		if [ "$board" = Kconfig ]; then
+			continue
+		fi
+
+		if [ -f "$vendor_board_dir/board_info.txt" ]; then
+			cur_category="$(sed -n "/^[[:space:]]*Category:/ s,^[[:space:]]*Category:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+		else
+			cur_category=
+		fi
+
+		case "$cur_category" in
+			desktop|server|laptop|half|mini|settop|"eval"|misc)
+				;;
+			*)
+				cur_category=unclass
+				;;
+		esac
+		if [ "$cur_category" != "$category" ]; then
+			continue
+		fi
+
+		if [ -f "$vendor_board_dir/board_info.txt" ]; then
+			board_nice="$(sed -n "/^[[:space:]]*Board name:/ s,^[[:space:]]*Board name:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			rom_package="$(sed -n "/^[[:space:]]*ROM package:/ s,^[[:space:]]*ROM package:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			rom_protocol="$(sed -n "/^[[:space:]]*ROM protocol:/ s,^[[:space:]]*ROM protocol:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			rom_socketed="$(sed -n "/^[[:space:]]*ROM socketed:/ s,^[[:space:]]*ROM socketed:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			flashrom_support="$(sed -n "/^[[:space:]]*Flashrom support:/ s,^[[:space:]]*Flashrom support:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			vendor_cooperation_score="$(sed -n "/^[[:space:]]*Vendor cooperation score:/ s,^[[:space:]]*Vendor cooperation score:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			vendor_cooperation_page="$(sed -n "/^[[:space:]]*Vendor cooperation page:/ s,^[[:space:]]*Vendor cooperation page:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			board_page="$(sed -n "/^[[:space:]]*Board page:/ s,^[[:space:]]*Board page:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+			board_url="$(sed -n "/^[[:space:]]*Board URL:/ s,^[[:space:]]*Board URL:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
+		else
+			board_nice=
+			rom_package=
+			rom_protocol=
+			rom_socketed=
+			flashrom_support=
+			vendor_cooperation_score=
+			vendor_cooperation_page=
+			board_page=
+			board_url=
+		fi
+		if [ "$last_vendor" != "$vendor" ]; then
+			last_vendor="$vendor"
+			if [ "$color" = dddddd ]; then
+				color=eeeeee
+			else
+				color=dddddd
+			fi
+		fi
+
+		vendor_nice="$(grep -A1 -i "config VENDOR_$vendor" "$COREBOOT_DIR"/src/mainboard/Kconfig|tail -n1|sed -n 's,^[[:space:]]*bool[[:space:]]*"\(.*\)"[[:space:]]*$,\1,p')"
+
+		if [ -z "$vendor_nice" ]; then
+			vendor_nice="$(echo "$vendor" |sed -e "s/\(.\)/\u\1/g")";
+		fi
+		if [ -z "$board_nice" ]; then
+			board_nice="$(echo "$board" |sed -e "s,_, ,g;s/\(.\)/\u\1/g")";
+		fi
+
+		lastgood="$(echo "$have"| sed -n "/^$vendor\/$board:/ s,^[^:]*:,,gp")"
+
+		northbridge="$(sed -n "/^[[:space:]]*select NORTHBRIDGE_/ s,^[[:space:]]*select NORTHBRIDGE_,,p" "$vendor_board_dir/Kconfig")"
+		northbridge_nice="$(echo "$northbridge"|sed 's,AMD_AGESA_FAMILY\(.*\),AMD Family \1h (AGESA),g;s,AMD_FAMILY\(.*\),AMD Family \1h,g;s,AMD_AMDFAM\(.*\),AMD Family \1h,g;s,_, ,g;s,INTEL,Intel®,g;')"
+
+		southbridge="$(sed -n "/	select SOUTHBRIDGE_/ s,	select SOUTHBRIDGE_,,p" "$vendor_board_dir/Kconfig")"
+		southbridge_nice="$(echo "$southbridge"|sed 's,_, ,g;s,INTEL,Intel®,g')"
+		superio="$(sed -n "/	select SUPERIO_/ s,	select SUPERIO_,,p" "$vendor_board_dir/Kconfig")"
+		superio_nice="$(echo "$superio"|sed 's,_, ,g;s,WINBOND,Winbond™,g;s,ITE,ITE™,g;s,SMSC,SMSC®,g')"
+		cpu="$(sed -n "/	select CPU_/ s,	select CPU_,,p" "$vendor_board_dir/Kconfig"|grep -v "AMD_AGESA_FAMILY")"
+		case "$cpu" in
+			ALLWINNER_A10)
+				cpu_nice="Allwinner A10"
+				socket_nice="?";;
+			AMD_GEODE_*)
+				cpu_nice="AMD Geode™ ${cpu#AMD_GEODE_}";
+				socket_nice="—";;
+			AMD_SOCKET_754)
+				cpu_nice="AMD Sempron™ / Athlon™ 64 / Turion™ 64";
+				socket_nice="Socket 754";;
+			AMD_SOCKET_ASB2)
+				cpu_nice="AMD Turion™ II Neo/Athlon™ II Neo";
+				socket_nice="ASB2 (BGA812)";;
+			AMD_SOCKET_S1G1)
+				cpu_nice="AMD Turion™ / X2  Sempron™";
+				socket_nice="Socket S1G1";;
+			AMD_SOCKET_G34)
+				cpu_nice="AMD Opteron™ Magny-Cours/Interlagos";
+				socket_nice="Socket G34";;
+			AMD_SOCKET_C32|AMD_SOCKET_C32_NON_AGESA)
+				cpu_nice="AMD Opteron™ Magny-Cours/Interlagos";
+				socket_nice="Socket C32";;
+			AMD_SOCKET_AM2)
+				cpu_nice="?";
+				socket_nice="Socket AM2"
+				;;
+			AMD_SOCKET_AM3)
+				cpu_nice="AMD Athlon™ 64 / FX / X2";
+				socket_nice="Socket AM3"
+				;;
+			AMD_SOCKET_AM2R2)
+				cpu_nice="AMD Athlon™ 64 / X2 / FX, Sempron™";
+				socket_nice="Socket AM2+"
+				;;
+			AMD_SOCKET_F)
+				cpu_nice="AMD Opteron™";
+				socket_nice="Socket F"
+				;;
+			AMD_SOCKET_F_1207)
+				cpu_nice="AMD Opteron™";
+				socket_nice="Socket F 1207"
+				;;
+			AMD_SOCKET_940)
+				cpu_nice="AMD Opteron™";
+				socket_nice="Socket 940"
+				;;
+			AMD_SOCKET_939)
+				cpu_nice="AMD Athlon™ 64 / FX / X2";
+				socket_nice="Socket 939"
+				;;
+			AMD_SC520)
+				cpu_nice="AMD Élan™SC520";
+				socket_nice="—";;
+			ARMLTD_CORTEX_A9)
+				cpu_nice="ARM Cortex A9";
+				socket_nice="?";;
+			DMP_VORTEX86EX)
+				cpu_nice="DMP VORTEX86EX";
+				socket_nice="?";;
+			SAMSUNG_EXYNOS5420)
+				cpu_nice="Samsung Exynos 5420";
+				socket_nice="?";;
+			SAMSUNG_EXYNOS5250)
+				cpu_nice="Samsung Exynos 5250";
+				socket_nice="?";;
+			TI_AM335X)
+				cpu_nice="TI AM335X";
+				socket_nice="?";;
+			INTEL_SLOT_1)
+				cpu_nice="Intel® Pentium® II/III, Celeron®";
+				socket_nice="Slot 1";;
+			INTEL_SOCKET_MPGA604)
+				cpu_nice="Intel® Xeon®";
+				socket_nice="Socket 604";;
+			INTEL_SOCKET_MFCPGA478)
+				cpu_nice="Intel® Core™ 2 Duo Mobile, Core™ Duo/Solo, Celeron® M";
+				socket_nice="Socket mPGA478";;
+			INTEL_SOCKET_LGA771)
+				cpu_nice="Intel Xeon™ 5000 series";
+				socket_nice="Socket LGA771";;
+			INTEL_SOCKET_PGA370)
+				cpu_nice="Intel® Pentium® III-800, Celeron®"
+				socket_nice="Socket 370";;
+			INTEL_SOCKET_MPGA479M)
+				cpu_nice="Intel® Mobile Celeron"
+				socket_nice="Socket 479"
+				;;
+			INTEL_SOCKET_RPGA989)
+				case $northbridge in
+					INTEL_HASWELL)
+						cpu_nice="Intel® 4th Gen (Haswell) Core i3/i5/i7"
+						socket_nice="Socket RPGA989";;
+					INTEL_IVYBRIDGE|INTEL_FSP_IVYBRIDGE)
+						cpu_nice="Intel® 3rd Gen (Ivybridge) Core i3/i5/i7"
+						socket_nice="Socket RPGA989";;
+					INTEL_SANDYBRIDGE)
+						cpu_nice="Intel® 2nd Gen (Sandybridge) Core i3/i5/i7"
+						socket_nice="Socket RPGA989";;
+					*)
+						echo "unknown northbridge $northbridge" >&2;
+						exit 1;;
+				esac
+				;;
+			INTEL_SOCKET_441)
+				cpu_nice="Intel® Atom™ 230";
+				socket_nice="Socket 441";;
+			INTEL_SOCKET_BGA956)
+				cpu_nice="Intel® Pentium® M";
+				socket_nice="BGA956";;
+			INTEL_SOCKET_FC_PGA370)
+				cpu_nice="Intel® Pentium® III / Celeron®";
+				socket_nice="Socket 370"
+				;;
+			INTEL_EP80579)
+				cpu_nice="Intel® EP80579";
+				socket_nice="Intel® EP80579"
+				;;
+			INTEL_SOCKET_MFCBGA479)
+				cpu_nice="Intel® Mobile Celeron"
+				socket_nice="Socket 479";;
+			VIA_C3)
+				cpu_nice="VIA C3™";
+				socket_nice="?"
+				;;
+			VIA_C7)
+				cpu_nice="VIA C7™";
+				socket_nice="?"
+				;;
+			VIA_NANO)
+				cpu_nice="VIA Nano™";
+				socket_nice="?"
+				;;
+			QEMU_X86)
+				cpu_nice="QEMU x86";
+				socket_nice="—"
+				;;
+			"")
+				case $northbridge in
+					INTEL_NEHALEM)
+						cpu_nice="Intel® 1st Gen (Haswell) Core i3/i5/i7"
+						socket_nice="?";;
+					RDC_R8610)
+						cpu_nice="RDC 8610"
+						socket_nice="—";;
+					AMD_AGESA_FAMILY14|AMD_AGESA_FAMILY15_TN|AMD_AGESA_FAMILY15_KB|AMD_AGESA_FAMILY16_KB|AMD_AGESA_FAMILY12)
+						cpu_nice="?"
+						socket_nice="?";;
+					*)
+						echo "unknown northbridge $northbridge ($vendor/$board)" >&2;
+						exit 1;;
+				esac
+				;;
+			*)
+				echo "unknown CPU $cpu" >&2;
+				exit 1;;
+		esac
+
+		echo "|- bgcolor=\"#$color\""
+		echo "| $vendor_nice"
+		echo -n "| "
+		num_boards="$(echo "$board_nice"|wc -l)"
+		boardn=1
+		while [ $boardn -le $num_boards ]; do
+			cur_board_name="$(echo "$board_nice" | head -n $boardn |tail -n 1)"
+			cur_board_page="$(echo "$board_page" | head -n $boardn |tail -n 1)"
+			cur_board_url="$(echo "$board_url" | head -n $boardn |tail -n 1)"
+
+			if [ -z "$cur_board_page" ]; then
+				echo -n "$cur_board_name"
+			else
+				echo -n "[[$cur_board_page|$cur_board_name]]"
+			fi
+			if [ -z "$cur_board_url" ]; then
+				echo
+			else
+				echo " [$cur_board_url vendor page]"
+			fi
+			boardn="$((boardn+1))"
 		done
-		echo ")"
+		if [ -z "$lastgood" ]; then
+			echo "| style=\"background:red\" | Unknown"
+		else
+			echo "| style=\"background:lime\" | [[#$vendor/$board|$lastgood]]"
+		fi
+
+		echo "| $northbridge_nice"
+		echo "| $southbridge_nice"
+		echo "| $superio_nice"
+		echo "| $cpu_nice"
+		echo "| $socket_nice"
+		if [ "$rom_package" = "" ]; then
+			echo "| ?"
+		else
+			echo "| $rom_package"
+		fi
+		if [ "$rom_protocol" = "" ]; then
+			echo "| ?"
+		else
+			echo "| $rom_protocol"
+		fi
+		if [ "$rom_socketed" = "y" ]; then
+			echo "| style=\"background:lime\" | Y"
+		elif [ "$rom_socketed" = "n" ]; then
+			echo "| style=\"background:red\" | N"
+		elif [ "$flashrom_support" = "variable" ]; then
+			echo "| ...<sup>7</sup>"
+		elif [ "$rom_socketed" = "" ]; then
+			echo "| ?"
+		else
+			echo "| $rom_socketed"
+		fi
+		if [ "$flashrom_support" = "y" ]; then
+			echo "| style=\"background:lime\" | Y"
+		elif [ "$flashrom_support" = "n" ]; then
+			echo "| style=\"background:red\" | N"
+		elif [ "$flashrom_support" = "coreboot-only" ]; then
+			echo "| style=\"background:yellow\" | ...<sup>6</sup>"
+		elif [ "$flashrom_support" = "" ]; then
+			echo "| ?"
+		else
+			echo "| $flashrom_support"
+		fi
+		if [ "$vendor_cooperation_score" = "4" ]; then
+			echo -n "| style=\"background:lime\""
+		elif [ "$vendor_cooperatio_scoren" = "3" ]; then
+			echo -n "| style=\"background:yellow\""
+		fi
+		if [ "$vendor_cooperation_page" != "" ]; then 
+			echo "| [[$vendor_cooperation_page|$vendor_cooperation_score]]"
+		elif [ "$vendor_cooperation_score" = "" ]; then 
+			echo "| —"
+		else
+			echo "| $vendor_cooperation_score"
+		fi
 		echo
 	done
 done
+echo "|}"
+
+cat <<EOF
+<small>
+<sup>1</sup> ROM chip package (PLCC, DIP32, DIP8, SOIC8).<br />
+<sup>2</sup> ROM chip protocol/type (parallel flash, LPC, FWH, SPI).<br />
+<sup>3</sup> ROM chip socketed (Y/N)?<br />
+<sup>4</sup> Board supported by [http://www.flashrom.org flashrom] (Y/N)?<br />
+<sup>5</sup> Vendor Cooperation Score.<br />
+<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 />
+<sup>7</sup> Some boards have ROM sockets, others are soldered.<br />
+</small>
+EOF
+
 
+echo "$detailed"



More information about the coreboot-gerrit mailing list