util/mainboard/google: deduplicate create_coreboot_variant.sh

create_coreboot_variant.sh and kconfig.py have moved to the chromium
repo, in src/platform/dev/contrib/variant (see crrev.com/c/2052338),
so remove them from the coreboot repo.

BUG=b:149410618
BRANCH=None
TEST=N/A

Cq-Depend: chromium:2052338
Signed-off-by: Paul Fagerburg <pfagerburg@chromium.org>
Change-Id: Ie27f68bfd978be5e2b1a2f0789d574749825f6fc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38979
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
This commit is contained in:
Paul Fagerburg 2020-02-18 08:48:22 -07:00 committed by Martin Roth
parent 17f0f01188
commit 291a014e15
2 changed files with 0 additions and 234 deletions

View File

@ -1,94 +0,0 @@
#!/bin/bash
#
# This file is part of the coreboot project.
#
# Copyright 2019 Google LLC.
#
# 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.
VERSION="2.0.0"
SCRIPT=$(basename -- "${0}")
export LC_ALL=C
if [[ "$#" -lt 3 ]]; then
echo "Usage: ${SCRIPT} base_name reference_name variant_name [bug_number]"
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 "* Copies the template files for the baseboard to the new variant"
exit 1
fi
# This is the name of the base board
# ${var,,} converts to all lowercase.
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.
# ${var,,} converts to all lowercase; ${var^^} is all uppercase.
VARIANT="${3,,}"
VARIANT_UPPER="${VARIANT^^}"
# Assign BUG= text, or "None" if that parameter wasn't specified.
BUG=${4:-None}
# This script lives in util/mainboard/google
# The template files are in util/mainboard/google/${BASE}/templates
# We need to create files in src/mainboard/google/${BASE}/variants/${VARIANT}
pushd "${BASH_SOURCE%/*}" || exit 1
SRC=$(pwd)
popd || exit 1
pushd "${SRC}/../../../src/mainboard/google/${BASE}" || {
echo "The baseboard directory for ${BASE} does not exist.";
exit 1; }
# Make sure the variant doesn't already exist.
if [[ -e variants/${VARIANT} ]]; then
echo "variants/${VARIANT} already exists."
echo "Have you already created this variant?"
exit 1
fi
# Start a branch. Use YMD timestamp to avoid collisions.
DATE=$(date +%Y%m%d)
git checkout -b "coreboot_${VARIANT}_${DATE}" || exit 1
# Copy the template tree to the target.
mkdir -p "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}/"
# Now add the new variant to Kconfig and Kconfig.name
# These files are in the current directory, e.g. src/mainboard/google/hatch
"${SRC}/kconfig.py" --board "${BASE}" --variant "${VARIANT}" || exit 1
mv Kconfig.new Kconfig
mv Kconfig.name.new Kconfig.name
git add Kconfig Kconfig.name
# Now commit the files.
git commit -sm "${BASE}: Create ${VARIANT} variant
Create the ${VARIANT} variant of the ${REFERENCE} reference
board by copying the template files to a new directory named
for the variant.
(Auto-Generated by ${SCRIPT} version ${VERSION}).
BUG=${BUG}
BRANCH=None
TEST=util/abuild/abuild -p none -t google/${BASE} -x -a
make sure the build includes GOOGLE_${VARIANT_UPPER}"

View File

@ -1,140 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Add a new variant to the Kconfig and Kconfig.name
To start a new variant of an existing reference board, we need to
add the variant into the Kconfig and Kconfig.name files for the
reference board. In Kconfig, we have two sections that need additional
entries, MAINBOARD_PART_NUMBER and VARIANT_DIR.
The MAINBOARD_PART_NUMBER and VARIANT_DIR just use various
capitalizations of the variant name to create the strings.
Kconfig.name adds an entire section for the new variant, and all
of these use various capitalizations of the variant name. The strings
in this section are SOC-specific, so we'll need versions for each
SOC that we support.
Copyright 2019 Google LLC.
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.
"""
from __future__ import print_function
import argparse
import sys
def main():
parser = argparse.ArgumentParser(
description='Add strings to coreboot Kconfig for a new board variant')
parser.add_argument('--board', type=str, required=True,
help='Name of the reference board')
parser.add_argument('--variant', type=str, required=True,
help='Name of the board variant')
args = parser.parse_args()
if args.board not in ['hatch', 'volteer', 'trembyle']:
print('Unsupported reference board "' + args.board + '"')
sys.exit(1)
add_to_Kconfig(args.variant)
add_to_Kconfig_name(args.board, args.variant)
def add_to_Kconfig(variant_name):
"""Add options for the variant to the Kconfig
Open the Kconfig file and read it line-by-line. When we detect that we're
in one of the sections of interest, wait until we get a blank line
(signalling the end of that section), and then add our new line before
the blank line. The updated lines are written out to Kconfig.new in the
same directory as Kconfig.
variant_name The name of the board variant, e.g. 'kohaku'
"""
# These are the part of the strings that we'll add to the sections
BOARD = 'BOARD_GOOGLE_' + variant_name.upper()
lowercase = variant_name.lower()
capitalized = lowercase.capitalize()
# These flags track whether we're in a section where we need to add an option
in_mainboard_part_number = False
in_variant_dir = False
inputname = 'Kconfig'
outputname = 'Kconfig.new'
with open(outputname, 'w') as outfile:
with open(inputname, 'r') as infile:
for rawline in infile:
line = rawline.rstrip('\r\n')
# Are we in one of the sections of interest?
if line == 'config MAINBOARD_PART_NUMBER':
in_mainboard_part_number = True
if line == 'config VARIANT_DIR':
in_variant_dir = True
# Are we at the end of a section, and if so, is it one of the
# sections of interest?
if line == '':
if in_mainboard_part_number:
print('\tdefault "' + capitalized + '" if ' + BOARD, file=outfile)
in_mainboard_part_number = False
if in_variant_dir:
print('\tdefault "' + lowercase + '" if ' + BOARD, file=outfile)
in_variant_dir = False
print(line, file=outfile)
def add_to_Kconfig_name(refboard_name, variant_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
the end with the new variant's details.
refboard_name The name of the reference board, e.g. 'hatch'
We expect the caller to have checked that it is one we support
variant_name The name of the board variant, e.g. 'kohaku'
"""
# Board name for the config section
uppercase = variant_name.upper()
capitalized = variant_name.lower().capitalize()
inputname = 'Kconfig.name'
outputname = 'Kconfig.name.new'
with open(outputname, 'w') as outfile:
with open(inputname, 'r') as infile:
# Copy all input lines to output
for rawline in infile:
line = rawline.rstrip('\r\n')
print(line, file=outfile)
# Now add the new section
if refboard_name == 'hatch':
print('\nconfig ' + 'BOARD_GOOGLE_' + uppercase, file=outfile)
print('\tbool "-> ' + capitalized + '"', file=outfile)
print('\tselect BOARD_GOOGLE_BASEBOARD_HATCH', file=outfile)
print('\tselect BOARD_ROMSIZE_KB_16384', file=outfile)
if refboard_name == 'volteer':
print('\nconfig ' + 'BOARD_GOOGLE_' + uppercase, file=outfile)
print('\tbool "-> ' + capitalized + '"', 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__':
main()