summaryrefslogtreecommitdiff
path: root/util/vboot_list
diff options
context:
space:
mode:
Diffstat (limited to 'util/vboot_list')
-rw-r--r--util/vboot_list/description.md2
-rwxr-xr-xutil/vboot_list/vboot_list.sh55
2 files changed, 57 insertions, 0 deletions
diff --git a/util/vboot_list/description.md b/util/vboot_list/description.md
new file mode 100644
index 0000000000..b994557f6c
--- /dev/null
+++ b/util/vboot_list/description.md
@@ -0,0 +1,2 @@
+Tools to generate a list of vboot enabled devices to the documentation
+`Bash`
diff --git a/util/vboot_list/vboot_list.sh b/util/vboot_list/vboot_list.sh
new file mode 100755
index 0000000000..f3e8975e96
--- /dev/null
+++ b/util/vboot_list/vboot_list.sh
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+
+TOP="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../.. >/dev/null 2>&1 && pwd )"
+MAINBOARDS="src/mainboard"
+OUTPUT_FILE=${1:-$TOP/Documentation/security/vboot/list_vboot.md}
+
+function has_vboot
+{
+ local DIR=$1
+
+ grep -rq "config VBOOT" $DIR
+ return $?
+}
+
+function get_vendor_name
+{
+ local VENDORDIR=$1
+
+ sed -n '/config VENDOR/{n;s/^[\t[:space:]]\+bool "\(.*\)"/\1/;p;}' \
+ $VENDORDIR/Kconfig.name
+}
+
+function get_board_name
+{
+ local BOARDDIR=$1
+
+ sed -n '/config BOARD/{n;s/^[\t[:space:]]\+bool "\(->\s\+\)\?\(.*\)"/\2/;p;}' \
+ $BOARDDIR/Kconfig.name
+}
+
+function list_vboot_boards
+{
+ local VENDORDIR=$1
+ for BOARD in $(ls -d $VENDORDIR/*/)
+ do
+ has_vboot $BOARD || continue
+ get_board_name $BOARD
+ done
+}
+
+function generate_vboot_list
+{
+for VENDOR in $(ls -d $TOP/$MAINBOARDS/*/)
+do
+ has_vboot $VENDOR || continue
+ echo -e "\n## $(get_vendor_name $VENDOR)"
+ IFS=$'\n'
+ for BOARD in $(list_vboot_boards $VENDOR)
+ do
+ echo "- $BOARD"
+ done
+done
+}
+
+(echo "# VBOOT enabled devices"; generate_vboot_list) > $OUTPUT_FILE