48 lines
1.9 KiB
Bash
Executable File
48 lines
1.9 KiB
Bash
Executable File
#!/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}"
|
|
echo "+-------------------------------+------------------------+------------+-----------+"
|
|
done
|
|
done
|
|
|
|
echo '```'
|