From 52941673b12a5ecd7d921c79268bb7698240bf7b Mon Sep 17 00:00:00 2001
From: Patrick Georgi This page shows two representations of the same data: First a list of all mainboards supported by coreboot (current within
-one hour) ordered by category. For each mainboard the table shows the
-latest user-contributed report of a successful boot on the device. After that, the page provides a time-ordered list of these contributed
-reports, with the newest report first. Boards without such reports may boot or there may be some maintenance
-required. The reports contain the coreboot configuration and precise commit
-id, so it is possible to reproduce the build. We encourage developers and users to contribute reports so we know which
-devices are well-tested. We have
-a tool in the coreboot repository
-to make contributing easy. The data resides in the
-board status repository.
-Contributing requires an account on review.coreboot.org. After
-logging into the site with your preferred OpenID or GitHub/Google
-credentials, you can get a user name and password for git pushes on gerrit's
-settings screen. Sometimes the same board is sold under different names, we've tried to
-list all known names but some names might be missing. If the board is not found in the coreboot's source code, there might
-be some form of support that is not ready yet for inclusion in coreboot,
-usually people willing to send their patches to coreboot goes through
-gerrit, so looking there could find some
-code for boards that are not yet merged. Some vendors have their own coreboot trees/fork, for instance:
-Mainboards supported by coreboot
-
-Vendor trees
-
Vendor | -Mainboard | -Latest known good | -Northbridge | -Southbridge | -Super I/O | -CPU | -Socket | -ROM 1 | -P 2 | -S 3 | -F 4 | -VCS5 | -Desktops / Workstations |
-
-
-EOF
- ;;
- server)
- cat <Servers |
-
-
-EOF
- ;;
- laptop)
- cat <Laptops |
-
-
-EOF
- ;;
- half)
- cat <Embedded / PC/104 / Half-size boards |
-
-
-EOF
- ;;
- mini)
- cat <Mini-ITX / Micro-ITX / Nano-ITX |
-
-
-EOF
- ;;
- settop)
- cat <Set-top-boxes / Thin clients |
-
-
-EOF
- ;;
- "eval")
- cat <Devel/Eval Boards |
-
-
-EOF
- ;;
- sbc)
- cat <Single-Board computer |
-
-
-EOF
- ;;
- emulation)
- cat <Emulation |
-
-
-EOF
- ;;
- misc)
- cat <Miscellaneous |
-
-
-EOF
- ;;
- unclass)
- cat <Unclassified |
-
-
-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 ] || [ "$board" = Kconfig.name ]; 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"|emulation|sbc|misc)
- ;;
- *)
- cur_category=unclass
- ;;
- esac
- if [ "$cur_category" != "$category" ]; then
- continue
- fi
-
- if [ -f "$vendor_board_dir/board_info.txt" ]; then
- vendor_2nd="$(sed -n "/^[[:space:]]*Vendor name:/ s,^[[:space:]]*Vendor name:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
- 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_url="$(sed -n "/^[[:space:]]*Board URL:/ s,^[[:space:]]*Board URL:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
- clone_of="$(sed -n "/^[[:space:]]*Clone of:/ s,^[[:space:]]*Clone of:[[:space:]]*,,p" "$vendor_board_dir/board_info.txt")"
- else
- vendor_2nd=
- board_nice=
- rom_package=
- rom_protocol=
- rom_socketed=
- flashrom_support=
- vendor_cooperation_score=
- vendor_cooperation_page=
- board_url=
- clone_of=
- 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/$vendor/Kconfig.name|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="$(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')"
- fi
- if [ -z "$board_nice" ]; then
- board_nice="$(echo "$board" |sed -e "s,_, ,g;s/\(.\)/\u\1/g")";
- fi
-
- venboard="$vendor/$board"
- if [ -n "$clone_of" ]; then
- venboard="$clone_of"
- fi
-
- lastgood="$(echo "$have"| sed -n "/^$(echo "$venboard"|sed 's,/,\\/,g'):/ s,^[^:]*:,,gp")"
-
- vendor_board_dir="$COREBOOT_DIR"/src/mainboard/"$venboard";
-
- northbridge="$(sed -n "/^[[:space:]]*select NORTHBRIDGE_/ s,^[[:space:]]*select NORTHBRIDGE_,,p" "$vendor_board_dir/Kconfig")"
- northbridge_nice="$(echo "$northbridge"|sed 's,AMD_AGESA_FAMILY\([0-9a-fA-F]*\)\(.*\),AMD Family \1h\2 (AGESA),g;s,AMD_PI_\(.*\),AMD \1 (PI),g;s,INTEL_FSP_\(.*\),Intel® \1 (FSP),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;')"
-
- southbridge="$(sed -n "/[[:space:]]*select SOUTHBRIDGE_/ s,[[:space:]]*select SOUTHBRIDGE_\([^ ]*\).*$,\1,p" "$vendor_board_dir/Kconfig"|grep -v SKIP_|grep -v DISABLE_)"
- southbridge_nice="$(echo "$southbridge"|sed 's,_, ,g;s,INTEL,Intel®,g')"
- superio="$(sed -n "/[[:space:]]*select SUPERIO_/ s,[[:space:]]*select SUPERIO_,,p" "$vendor_board_dir/Kconfig"|grep -v OVERRIDE_FANCTL)"
- superio_nice="$(echo "$superio"|sed 's,_, ,g;s,WINBOND,Winbond™,g;s,ITE,ITE™,g;s,SMSC,SMSC®,g;s,NUVOTON,Nuvoton ,g')"
- cpu="$(sed -n \
- -e "/ select CPU_/ s, select CPU_,,p" \
- -e "/ select SOC_/ s, select SOC_,,p" \
- "$vendor_board_dir/Kconfig" | \
- grep -v "AMD_AGESA_FAMILY" | \
- grep -v CPU_MICROCODE_CBFS_NONE)"
- 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|AMD_SOCKET_G34_NON_AGESA)
- 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="—";;
- AMD_STONEYRIDGE_FP4)
- cpu_nice="AMD Stoney Ridge";
- socket_nice="FP4 BGA";;
- ARMLTD_CORTEX_A9)
- cpu_nice="ARM Cortex A9";
- socket_nice="?";;
- DMP_VORTEX86EX)
- cpu_nice="DMP VORTEX86EX";
- socket_nice="?";;
- MEDIATEK_MT8173)
- cpu_nice="MediaTek MT8173";
- socket_nice="—";;
- NVIDIA_TEGRA124)
- cpu_nice="NVIDIA Tegra 124";
- socket_nice="—";;
- NVIDIA_TEGRA210)
- cpu_nice="NVIDIA Tegra 210";
- 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_APOLLOLAKE)
- cpu_nice="Intel® Apollo Lake";
- socket_nice="—";;
- INTEL_BAYTRAIL)
- cpu_nice="Intel® Bay Trail";
- socket_nice="—";;
- INTEL_BRASWELL)
- cpu_nice="Intel® Braswell";
- socket_nice="—";;
- INTEL_BROADWELL)
- cpu_nice="Intel® Broadwell";
- socket_nice="—";;
- INTEL_DENVERTON_NS)
- cpu_nice="Intel® Denverton-NS";
- socket_nice="—";;
- INTEL_FSP_BROADWELL_DE)
- cpu_nice="Intel® Broadwell-DE";
- socket_nice="—";;
- INTEL_GLK)
- cpu_nice="Intel® Gemini Lake";
- socket_nice="—";;
- INTEL_ICELAKE)
- cpu_nice="Intel® Ice Lake";
- socket_nice="—";;
- INTEL_KABYLAKE)
- cpu_nice="Intel® Kaby Lake";
- socket_nice="—";;
- INTEL_SANDYBRIDGE)
- cpu_nice="Intel® Sandy Bridge";
- socket_nice="—";;
- INTEL_SKYLAKE)
- cpu_nice="Intel® Skylake";
- 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_M)
- cpu_nice="Intel® Core™ 2 Duo Mobile, Core™ Duo/Solo, Celeron® M";
- socket_nice="Socket M (mPGA478MT)";;
- INTEL_SOCKET_LGA771)
- cpu_nice="Intel Xeon™ 5000 series";
- socket_nice="Socket LGA771";;
- INTEL_SOCKET_LGA775)
- cpu_nice="Intel® Core 2, Pentium 4/D";
- socket_nice="Socket LGA775";;
- 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_HASWELL)
- cpu_nice="Intel® 4th Gen (Haswell) Core i3/i5/i7"
- socket_nice="?"
- ;;
- INTEL_FSP_RANGELEY)
- cpu_nice="Intel® Atom Rangeley (FSP)"
- socket_nice="?"
- ;;
- INTEL_SOCKET_RPGA989|INTEL_SOCKET_LGA1155|INTEL_SOCKET_RPGA988B)
- socket_nice="`echo $cpu | sed 's,INTEL_SOCKET_,Socket ,g'`"
- case $northbridge in
- INTEL_HASWELL)
- cpu_nice="Intel® 4th Gen (Haswell) Core i3/i5/i7";;
- INTEL_IVYBRIDGE|INTEL_FSP_IVYBRIDGE)
- cpu_nice="Intel® 3rd Gen (Ivybridge) Core i3/i5/i7";;
- INTEL_SANDYBRIDGE)
- cpu_nice="Intel® 2nd Gen (Sandybridge) Core i3/i5/i7";;
- *)
- cpu_nice="$northbridge";;
- esac
- ;;
- INTEL_SOCKET_441)
- cpu_nice="Intel® Atom™ 230";
- socket_nice="Socket 441";;
- INTEL_SOCKET_BGA956)
- case $northbridge in
- INTEL_GM45)
- cpu_nice="Intel® Core 2 Duo (Penryn)"
- socket_nice="Socket P";;
- *)
- cpu_nice="Intel® Pentium® M";
- socket_nice="BGA956";;
- esac
- ;;
- 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";;
- INTEL_WHISKEYLAKE)
- cpu_nice="Intel® Whiskey Lake";
- socket_nice="—";;
- QC_IPQ806X)
- cpu_nice="Qualcomm IPQ806x";
- socket_nice="—";;
- QUALCOMM_QCS405)
- cpu_nice="Qualcomm QCS405";
- socket_nice="—";;
- ROCKCHIP_RK3288)
- cpu_nice="Rockchip RK3288";
- socket_nice="—";;
- ROCKCHIP_RK3399)
- cpu_nice="Rockchip RK3399";
- socket_nice="—";;
- 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_IRONLAKE)
- cpu_nice="Intel® 1st Gen (Westmere) Core i3/i5/i7"
- socket_nice="?";;
- RDC_R8610)
- cpu_nice="RDC 8610"
- socket_nice="—";;
- AMD_AGESA_*|AMD_PI_*)
- cpu_nice="$northbridge_nice"
- socket_nice="?";;
- *)
- cpu_nice="$northbridge"
- socket_nice="$northbridge";;
- esac
- ;;
- *)
- cpu_nice="$cpu"
- socket_nice="$cpu";;
- esac
-
- echo "|||
$vendor_nice" - else - echo " | $vendor_nice" - fi - if ! [ -z "$vendor_2nd" ]; then - echo " ($vendor_2nd)" - fi - - echo " | $board_nice | " - - if [ -z "$lastgood" ]; then - echo "Unknown | " - else - lastgood_diff=0 - lastgood_ts=$(date -d "$lastgood" "+%s") - if [ "$lastgood_ts" != "" ]; then - current_ts=$(date "+%s") - if [ "$lastgood_ts" -lt "$current_ts" ]; then - lastgood_diff=$(( current_ts - lastgood_ts )) - # Convert seconds to days - lastgood_diff=$(( lastgood_diff / 86400 )) - # Set maximum age at 255 days for convenience of code - if [ $lastgood_diff -gt 255 ]; then - lastgood_diff=255 - fi - fi - fi - lastgood_diff_hex=$(echo "obase=16; $lastgood_diff" | bc) - if [ "$lastgood_diff" -lt 16 ]; then - lastgood_diff_hex="0${lastgood_diff_hex}" - fi - cell_bgcolor="#${lastgood_diff_hex}ff00" - echo "$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 "Y | " - elif [ "$rom_socketed" = "n" ]; then - echo "N | " - elif [ "$flashrom_support" = "variable" ]; then - echo "...7 | " - elif [ "$rom_socketed" = "" ]; then - echo "? | " - else - echo "$rom_socketed | " - fi - if [ "$flashrom_support" = "y" ]; then - echo "Y | " - elif [ "$flashrom_support" = "n" ]; then - echo "N | " - elif [ "$flashrom_support" = "coreboot-only" ]; then - echo "...6 | " - elif [ "$flashrom_support" = "" ]; then - echo "? | " - else - echo "$flashrom_support | " - fi - if [ "$vendor_cooperation_score" = "4" ]; then - echo -n "" - elif [ "$vendor_cooperatio_scoren" = "3" ]; then - echo -n " | " - else - echo -n " | " - fi - if [ "$vendor_cooperation_page" != "" ]; then - echo "$vendor_cooperation_score" - elif [ "$vendor_cooperation_score" = "" ]; then - echo "—" - else - echo "$vendor_cooperation_score" - fi - echo " |