summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Roth <gaumless@gmail.com>2022-04-23 15:19:11 -0600
committerFelix Held <felix-coreboot@felixheld.de>2022-11-07 14:16:47 +0000
commit65a0e5a92def54a505a2053b57e96d3b4dfe5289 (patch)
tree4671cb5aeb1f97b4ca0fd52964744ec914092d79
parentd55ed57c36e02b5fa1ddd3526309fcfa9eeefe88 (diff)
util/scripts: Add script to show platforms, CPU, type, and date added
This is the script used to generate the list of platforms that were removed from the master branch at each release. Generate a list for the old branch, another for the new, and compare the two. Representative output: ```eval_rst +-------------------------+-------------------+------------+----------+ | Vendor/Board | Processor | Date added | Brd type | +=========================+===================+============+==========+ | 51nb/x210 | INTEL_KABYLAKE | 2020-03-16 | laptop | | acer/aspire_vn7_572g | INTEL_SKYLAKE | 2022-01-28 | laptop | | acer/g43t-am3 | INTEL_X4X | 2020-09-28 | desktop | | amd/bilby | AMD_PICASSO | 2021-02-17 | eval | | amd/birman | AMD_MORGANA | 2022-10-10 | eval | | system76/whl-u | INTEL_WHISKEYLAKE | 2021-04-14 | laptop | | ti/beaglebone | TI_AM335X | 2013-05-26 | sbc | | up/squared | INTEL_APOLLOLAKE | 2019-05-22 | mini | +-------------------------+-------------------+------------+----------+ ``` Signed-off-by: Martin Roth <gaumless@gmail.com> Change-Id: I4f7265d95df31f3a74aa2aa164f6a094c1139750 Reviewed-on: https://review.coreboot.org/c/coreboot/+/63799 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r--util/scripts/description.md3
-rwxr-xr-xutil/scripts/show_platforms.sh47
2 files changed, 50 insertions, 0 deletions
diff --git a/util/scripts/description.md b/util/scripts/description.md
index eb7a1e8167..780e9c95d6 100644
--- a/util/scripts/description.md
+++ b/util/scripts/description.md
@@ -25,5 +25,8 @@ __scripts__
`Perl`
* _rm_unused_code_ - Remove all code not used for a platform from the local
git repository for auditing or release `Bash`
+ * _show_platforms.sh_ - Makes a list of platforms in the tree. Does
+ not show variants.
+ `Shell`
* _ucode_h_to_bin.sh_ - Microcode conversion tool `Bash`
* _update_submodules_ - Check all submodules for updates `Bash`
diff --git a/util/scripts/show_platforms.sh b/util/scripts/show_platforms.sh
new file mode 100755
index 0000000000..39d77725a8
--- /dev/null
+++ b/util/scripts/show_platforms.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This script finds all of the top-level mainboards, then goes through
+# and finds the date the directory was added, the processor type, and
+# the board type.
+#
+# This could be improved by finding all of the variants, then figuring
+# out when those veriants were added.
+# It's also very slow, but only needs to be run once in a while...
+
+readarray -t platforms < <(find src/mainboard -mindepth 3 -name 'Kconfig' | sort)
+
+echo '```eval_rst'
+echo "+-------------------------------+------------------------+------------+-----------+"
+echo "| Vendor/Board | Processor | Date added | Brd type |"
+echo "+===============================+========================+============+===========+"
+
+for file in "${platforms[@]}"; do
+ platformname="$(echo "${file}" | sed 's|.*/mainboard/||;s|/Kconfig||')"
+ if [[ ! -f "${file/Kconfig/board_info.txt}" ]]; then
+ continue
+ fi
+ chips="$(grep "CPU_\|SOC_\|NORTHBRIDGE" "${file}" |
+ grep -v "SUBTYPE\|COMMON\|SOCKET\|ENABLE\|CONSOLE\|SMU\|depends on\|ESPI\|INTEL_CSE\|NORTHBRIDGE_AMD_AGESA\|INTEL_SLOT\|REBOOT\|DISABLE" |
+ sed -e 's|\s\+select\s\+||' \
+ -e 's|\s\+if.*||' \
+ -e 's|SKYLAKE_SOC_PCH|INTEL_SKYLAKE|' \
+ -e 's|CPU_AMD_AGESA|AMD|' \
+ -e 's|SOC_INTEL_ALDERLAKE_PCH_|INTEL_ALDERLAKE|' \
+ -e 's|QC_|QUALCOMM_|' \
+ -e 's/SOC_\|NORTHBRIDGE_\|PCH_\|CPU_//g' |
+ sort -u)"
+ if [[ ! -f ${file/Kconfig/board_info.txt} ]]; then
+ continue
+ fi
+ create_date="$(git log --format="format:%cs" -- "${file}" | tail -n1)"
+ platform_type="$(sed -nE -e 's/Category: (.*)/\1/p' "${file/Kconfig/board_info.txt}" 2>/dev/null)"
+ for chip in ${chips}; do
+
+ printf "| %-29s | %-22s | %-10s | %-9s |\n" "${platformname}" "${chip}" "${create_date}" "${platform_type}"
+ done
+done
+
+echo "+-------------------------------+------------------------+------------+-----------+"
+echo '```'