This adds some helper functions for FDT, since more and more mainboards seem to need FDT nowadays. For example our QEMU boards need it in order to know how much RAM is available. Also all RISC-V boards in our tree need FDT. This also adds some tests in order to test said functions. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I2fb1d93c5b3e1cb2f7d9584db52bbce3767b63d8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/81081 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
142 lines
3.9 KiB
Bash
Executable File
142 lines
3.9 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
# DESCR: Check that files in have valid license headers
|
|
# $1 is an optional command line parameter containing directories to check
|
|
|
|
|
|
LINTDIR="$(
|
|
cd -- "$(dirname "$0")" > /dev/null 2>&1 || return
|
|
pwd -P
|
|
)"
|
|
|
|
# shellcheck source=helper_functions.sh
|
|
. "${LINTDIR}/helper_functions.sh"
|
|
|
|
# regex list of files and directories to exclude from the search
|
|
HEADER_EXCLUDED="\
|
|
^src/commonlib/bsd/lz4.c.inc\$|\
|
|
^src/cpu/x86/16bit/entry16.inc\$|\
|
|
^src/device/oprom/x86emu/|\
|
|
^src/device/oprom/include/x86emu/|\
|
|
^src/device/oprom/yabel/|\
|
|
^src/drivers/net/ne2k.c\$|\
|
|
^src/drivers/xgi/common/initdef.h\$|\
|
|
^src/drivers/xgi/common/vstruct.h\$|\
|
|
^src/lib/gnat/|\
|
|
^src/lib/lzmadecode.[ch]\$|\
|
|
^src/lib/stack.c\$|\
|
|
^src/sbom/TAGS|\
|
|
^src/vendorcode/|\
|
|
^tests/data/|\
|
|
^util/amdtools/example_input/|\
|
|
^util/cbfstool/lzma/|\
|
|
^util/cbfstool/lz4/|\
|
|
^util/kconfig/|\
|
|
Kconfig|\
|
|
\<COPYING\>|\
|
|
\<LICENSE\>|\
|
|
\<README\>|\
|
|
Changelog|\
|
|
AUTHORS|\
|
|
TODO|\
|
|
EXAMPLE|\
|
|
NEWS|\
|
|
ChangeLog|\
|
|
Dockerfile|\
|
|
\.gitignore$|\
|
|
\.in$|\
|
|
\.[18]$|\
|
|
\.md$|\
|
|
\.wiki$|\
|
|
\.xxdump$|\
|
|
\.spec$|\
|
|
\.txt$|\
|
|
\.jpg$|\
|
|
\.cksum$|\
|
|
\.bin$|\
|
|
\.vbt$|\
|
|
\.hex$|\
|
|
\.patch$|\
|
|
_shipped$|\
|
|
/microcode-[^/]*.h$|\
|
|
/sdram-.*\.inc$|\
|
|
\.fmd|\
|
|
\.cb|\
|
|
\.cfg$|\
|
|
\.spd|\
|
|
config|\
|
|
cmos\.layout|\
|
|
cmos\.default|\
|
|
\.apcb$\
|
|
"
|
|
|
|
#space separated list of directories to test
|
|
if [ "$1" = "" ]; then
|
|
HEADER_DIRS="src util"
|
|
else
|
|
HEADER_DIRS="$1"
|
|
fi
|
|
|
|
|
|
#get initial list from git, removing HEADER_EXCLUDED files.
|
|
#make a copy to check for the old style header later.
|
|
headerlist=$(${FIND_FILES} $HEADER_DIRS | grep -E -v "($HEADER_EXCLUDED)")
|
|
|
|
#update headerlist by removing files that match the license string
|
|
check_for_license() {
|
|
if [ -n "$headerlist" ] && [ -z "$2" ]; then
|
|
headerlist="$(grep -iL "$1" $headerlist 2>/dev/null)"
|
|
elif [ -n "$headerlist" ]; then
|
|
p1list="$(grep -il "$1" $headerlist 2>/dev/null)"
|
|
p2list="$(grep -il "$2" $headerlist 2>/dev/null)"
|
|
|
|
# Make list of files that were in both previous lists
|
|
pbothlist="$(echo $p1list $p2list | tr ' ' "\n" | \
|
|
sort | uniq -d)"
|
|
|
|
# Remove all files that were in both of the previous lists
|
|
# Note that this is unstable if we ever get any filenames
|
|
# with spaces.
|
|
headerlist="$(echo $headerlist $pbothlist | tr ' ' "\n" | \
|
|
sort | uniq -u)"
|
|
fi
|
|
}
|
|
|
|
#search the files for license headers
|
|
check_for_license 'SPDX-License-Identifier: Apache-2.0'
|
|
check_for_license 'SPDX-License-Identifier: BSD-2-Clause'
|
|
check_for_license 'SPDX-License-Identifier: BSD-3-Clause'
|
|
check_for_license 'SPDX-License-Identifier: GPL-2.0-only'
|
|
check_for_license 'SPDX-License-Identifier: GPL-2.0-or-later'
|
|
check_for_license 'SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note'
|
|
check_for_license 'SPDX-License-Identifier: GPL-3.0-only'
|
|
check_for_license 'SPDX-License-Identifier: GPL-3.0-only WITH GCC-exception-3.1'
|
|
check_for_license 'SPDX-License-Identifier: GPL-3.0-or-later'
|
|
check_for_license 'SPDX-License-Identifier: HPND'
|
|
check_for_license 'SPDX-License-Identifier: HPND-sell-variant'
|
|
check_for_license 'SPDX-License-Identifier: ISC'
|
|
check_for_license 'SPDX-License-Identifier: MIT'
|
|
check_for_license 'SPDX-License-Identifier: X11'
|
|
|
|
# This is 4 clause ("with advertising") but the University of Berkeley
|
|
# declared that 4th clause void, see
|
|
# ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
|
|
# With this, BSD-4-Clause-UC becomes GPLv2 compatible, and so SPDX doesn't
|
|
# differentiate between this license with or without advertising.
|
|
check_for_license 'SPDX-License-Identifier: BSD-4-Clause-UC'
|
|
|
|
# This is the Creative Commons Public Domain Dedication and Certification
|
|
# for files that are already in the public domain. This includes files
|
|
# that cannot be licensed such as blank files or files with no "creative"
|
|
# content.
|
|
check_for_license 'SPDX-License-Identifier: CC-PDDC'
|
|
|
|
for file in $headerlist; do
|
|
# Verify the file actually exists
|
|
if [ -f "$file" ]; then
|
|
echo "$file has no recognized SPDX identifier."
|
|
fi
|
|
done
|