util/mainboard/google: add support for Zork

Update the create_coreboot_variant.sh and kconfig.py to support the
zork baseboard. Full template files will be added in a later CL.

BUG=b:148161697, b:148281637
BRANCH=None
TEST=`./create_coreboot_variant.sh zork dalboz` and verify that the
changes staged are correct.

Signed-off-by: Paul Fagerburg <pfagerburg@google.com>
Change-Id: Ie0a29bb9f4bb8f3bb7eaeae8799cef861c395e7d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38559
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Paul Fagerburg 2020-01-24 09:51:46 -07:00 committed by Patrick Georgi
parent c015bcc304
commit e967cfa409
3 changed files with 47 additions and 21 deletions

View File

@ -13,29 +13,32 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
VERSION="1.0.2" VERSION="2.0.0"
SCRIPT=$(basename -- "${0}") SCRIPT=$(basename -- "${0}")
export LC_ALL=C export LC_ALL=C
if [[ "$#" -lt 2 ]]; then if [[ "$#" -lt 3 ]]; then
echo "Usage: ${SCRIPT} base_name variant_name [bug_number]" echo "Usage: ${SCRIPT} base_name reference_name variant_name [bug_number]"
echo "e.g. ${SCRIPT} hatch kohaku b:140261109" echo "e.g. ${SCRIPT} hatch hatch kohaku b:140261109"
echo "e.g. ${SCRIPT} zork trembyle dalboz"
echo "* Adds a new variant of the baseboard to Kconfig and Kconfig.name" echo "* Adds a new variant of the baseboard to Kconfig and Kconfig.name"
echo "* Copies the template files for the baseboard to the new variant" echo "* Copies the template files for the baseboard to the new variant"
exit 1 exit 1
fi fi
# This is the name of the base board that we're using to make the variant. # This is the name of the base board
# ${var,,} converts to all lowercase. # ${var,,} converts to all lowercase.
BASE="${1,,}" BASE="${1,,}"
# This is the name of the reference board that we're using to make the variant.
REFERENCE="${2,,}"
# This is the name of the variant that is being cloned. # This is the name of the variant that is being cloned.
# ${var,,} converts to all lowercase; ${var^^} is all uppercase. # ${var,,} converts to all lowercase; ${var^^} is all uppercase.
VARIANT="${2,,}" VARIANT="${3,,}"
VARIANT_UPPER="${VARIANT^^}" VARIANT_UPPER="${VARIANT^^}"
# Assign BUG= text, or "None" if that parameter wasn't specified. # Assign BUG= text, or "None" if that parameter wasn't specified.
BUG=${3:-None} BUG=${4:-None}
# This script lives in util/mainboard/google # This script lives in util/mainboard/google
# The template files are in util/mainboard/google/${BASE}/templates # The template files are in util/mainboard/google/${BASE}/templates
@ -61,6 +64,10 @@ git checkout -b "coreboot_${VARIANT}_${DATE}" || exit 1
# Copy the template tree to the target. # Copy the template tree to the target.
mkdir -p "variants/${VARIANT}/" mkdir -p "variants/${VARIANT}/"
cp -pr "${SRC}/${BASE}/template/." "variants/${VARIANT}/" cp -pr "${SRC}/${BASE}/template/." "variants/${VARIANT}/"
if [[ -e "variants/${VARIANT}/Kconfig" ]]; then
sed -i -e "s/BOARD_GOOGLE_TEMPLATE/BOARD_GOOGLE_${VARIANT_UPPER}/" \
"variants/${VARIANT}/Kconfig"
fi
git add "variants/${VARIANT}/" git add "variants/${VARIANT}/"
# Now add the new variant to Kconfig and Kconfig.name # Now add the new variant to Kconfig and Kconfig.name
@ -75,12 +82,13 @@ git add Kconfig Kconfig.name
# Now commit the files. # Now commit the files.
git commit -sm "${BASE}: Create ${VARIANT} variant git commit -sm "${BASE}: Create ${VARIANT} variant
Create the ${VARIANT} variant of the ${BASE} baseboard by Create the ${VARIANT} variant of the ${REFERENCE} reference
copying the baseboard template files to a new directory board by copying the template files to a new directory named
named for the variant. for the variant.
(Auto-Generated by ${SCRIPT} version ${VERSION}). (Auto-Generated by ${SCRIPT} version ${VERSION}).
BUG=${BUG} BUG=${BUG}
BRANCH=None
TEST=util/abuild/abuild -p none -t google/${BASE} -x -a TEST=util/abuild/abuild -p none -t google/${BASE} -x -a
make sure the build includes GOOGLE_${VARIANT_UPPER}" make sure the build includes GOOGLE_${VARIANT_UPPER}"

View File

@ -1,10 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
"""Add a new variant to the Kconfig and Kconfig.name for the baseboard """Add a new variant to the Kconfig and Kconfig.name
To start a new variant of an existing baseboard, we need to add To start a new variant of an existing reference board, we need to
the variant into the Kconfig and Kconfig.name files for the add the variant into the Kconfig and Kconfig.name files for the
baseboard. In Kconfig, we have two sections that need additional reference board. In Kconfig, we have two sections that need additional
entries, MAINBOARD_PART_NUMBER and VARIANT_DIR. entries, MAINBOARD_PART_NUMBER and VARIANT_DIR.
The MAINBOARD_PART_NUMBER and VARIANT_DIR just use various The MAINBOARD_PART_NUMBER and VARIANT_DIR just use various
@ -36,13 +36,13 @@ def main():
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description='Add strings to coreboot Kconfig for a new board variant') description='Add strings to coreboot Kconfig for a new board variant')
parser.add_argument('--board', type=str, required=True, parser.add_argument('--board', type=str, required=True,
help='Name of the baseboard') help='Name of the reference board')
parser.add_argument('--variant', type=str, required=True, parser.add_argument('--variant', type=str, required=True,
help='Name of the board variant') help='Name of the board variant')
args = parser.parse_args() args = parser.parse_args()
if args.board not in ['hatch', 'volteer']: if args.board not in ['hatch', 'volteer', 'trembyle']:
print('Unsupported baseboard "' + args.board + '"') print('Unsupported reference board "' + args.board + '"')
sys.exit(1) sys.exit(1)
add_to_Kconfig(args.variant) add_to_Kconfig(args.variant)
@ -95,13 +95,13 @@ def add_to_Kconfig(variant_name):
print(line, file=outfile) print(line, file=outfile)
def add_to_Kconfig_name(baseboard_name, variant_name): def add_to_Kconfig_name(refboard_name, variant_name):
"""Add a config section for the variant to the Kconfig.name """Add a config section for the variant to the Kconfig.name
Kconfig.name is easier to modify than Kconfig; it only has a block at Kconfig.name is easier to modify than Kconfig; it only has a block at
the end with the new variant's details. the end with the new variant's details.
baseboard_name The name of the baseboard, e.g. 'hatch' refboard_name The name of the reference board, e.g. 'hatch'
We expect the caller to have checked that it is one we support We expect the caller to have checked that it is one we support
variant_name The name of the board variant, e.g. 'kohaku' variant_name The name of the board variant, e.g. 'kohaku'
""" """
@ -119,17 +119,22 @@ def add_to_Kconfig_name(baseboard_name, variant_name):
print(line, file=outfile) print(line, file=outfile)
# Now add the new section # Now add the new section
if baseboard_name == 'hatch': if refboard_name == 'hatch':
print('\nconfig ' + 'BOARD_GOOGLE_' + uppercase, file=outfile) print('\nconfig ' + 'BOARD_GOOGLE_' + uppercase, file=outfile)
print('\tbool "-> ' + capitalized + '"', file=outfile) print('\tbool "-> ' + capitalized + '"', file=outfile)
print('\tselect BOARD_GOOGLE_BASEBOARD_HATCH', file=outfile) print('\tselect BOARD_GOOGLE_BASEBOARD_HATCH', file=outfile)
print('\tselect BOARD_ROMSIZE_KB_16384', file=outfile) print('\tselect BOARD_ROMSIZE_KB_16384', file=outfile)
if baseboard_name == 'volteer': if refboard_name == 'volteer':
print('\nconfig ' + 'BOARD_GOOGLE_' + uppercase, file=outfile) print('\nconfig ' + 'BOARD_GOOGLE_' + uppercase, file=outfile)
print('\tbool "-> ' + capitalized + '"', file=outfile) print('\tbool "-> ' + capitalized + '"', file=outfile)
print('\tselect BOARD_GOOGLE_BASEBOARD_VOLTEER', file=outfile) print('\tselect BOARD_GOOGLE_BASEBOARD_VOLTEER', file=outfile)
if refboard_name == 'trembyle':
print('\nconfig ' + 'BOARD_GOOGLE_' + uppercase, file=outfile)
print('\tbool "-> ' + capitalized + '"', file=outfile)
print('\tselect BOARD_GOOGLE_BASEBOARD_TREMBYLE', file=outfile)
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View File

@ -0,0 +1,13 @@
## This file is part of the coreboot project.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; version 2 of the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
SPD_SOURCES =