Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) #!/bin/sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) # Generate the x86_cap/bug_flags[] arrays from include/asm/cpufeatures.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) set -e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) OUT=$1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) dump_array()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 	ARRAY=$1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	SIZE=$2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	PFX=$3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	POSTFIX=$4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	IN=$5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	PFX_SZ=$(echo $PFX | wc -c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	TABS="$(printf '\t\t\t\t\t')"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	echo "const char * const $ARRAY[$SIZE] = {"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	# Iterate through any input lines starting with #define $PFX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	sed -n -e 's/\t/ /g' -e "s/^ *# *define *$PFX//p" $IN |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	while read i
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 		# Name is everything up to the first whitespace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 		NAME="$(echo "$i" | sed 's/ .*//')"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 		# If the /* comment */ starts with a quote string, grab that.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 		VALUE="$(echo "$i" | sed -n 's@.*/\* *\("[^"]*"\).*\*/@\1@p')"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 		[ -z "$VALUE" ] && VALUE="\"$NAME\""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 		[ "$VALUE" = '""' ] && continue
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 		# Name is uppercase, VALUE is all lowercase
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 		VALUE="$(echo "$VALUE" | tr A-Z a-z)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)         if [ -n "$POSTFIX" ]; then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)             T=$(( $PFX_SZ + $(echo $POSTFIX | wc -c) + 2 ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	        TABS="$(printf '\t\t\t\t\t\t')"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 		    TABCOUNT=$(( ( 6*8 - ($T + 1) - $(echo "$NAME" | wc -c) ) / 8 ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 		    printf "\t[%s - %s]%.*s = %s,\n" "$PFX$NAME" "$POSTFIX" "$TABCOUNT" "$TABS" "$VALUE"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)         else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 		    TABCOUNT=$(( ( 5*8 - ($PFX_SZ + 1) - $(echo "$NAME" | wc -c) ) / 8 ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)             printf "\t[%s]%.*s = %s,\n" "$PFX$NAME" "$TABCOUNT" "$TABS" "$VALUE"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)         fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	echo "};"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) trap 'rm "$OUT"' EXIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) (
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	echo "#ifndef _ASM_X86_CPUFEATURES_H"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	echo "#include <asm/cpufeatures.h>"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 	echo "#endif"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	echo ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 	dump_array "x86_cap_flags" "NCAPINTS*32" "X86_FEATURE_" "" $2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	echo ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 	dump_array "x86_bug_flags" "NBUGINTS*32" "X86_BUG_" "NCAPINTS*32" $2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 	echo ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 	echo "#ifdef CONFIG_X86_VMX_FEATURE_NAMES"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 	echo "#ifndef _ASM_X86_VMXFEATURES_H"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 	echo "#include <asm/vmxfeatures.h>"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 	echo "#endif"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 	dump_array "x86_vmx_flags" "NVMXINTS*32" "VMX_FEATURE_" "" $3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 	echo "#endif /* CONFIG_X86_VMX_FEATURE_NAMES */"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) ) > $OUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) trap - EXIT