summaryrefslogtreecommitdiff
path: root/tools/buildman/boards.py
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-07-11 19:04:06 -0600
committerTom Rini <trini@konsulko.com>2022-08-05 11:47:56 -0400
commit256126c29434a93584b6043b1c1d1c6dbbc340db (patch)
tree4a2219c3f827d777d60f3d32bf6beb35ba2e08ac /tools/buildman/boards.py
parent969fd333bab22ed263dbcc15219d2aa9d331dd92 (diff)
buildman: Replace the Options column with config name
This appears in boards.cfg but we want to remove it. Drop support for generating it and reading it. Detect an old boards.cfg file that has this field and regenerate it, to avoid problems. Instead, add the config name in that place. This fixes a subtle bug in the generation code, since it uses 'target' for the config name and then overwrites the value in scan() by setting params['target'] to the name of the defconfig. The defconfig name is not the same as the SYS_CONFIG_NAME variable. With this change, we still have the config name and it can be searched by buildman, e.g. with: buildman -nv sun5i Signed-off-by: Simon Glass <sjg@chromium.org> Reported-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'tools/buildman/boards.py')
-rw-r--r--tools/buildman/boards.py19
1 files changed, 6 insertions, 13 deletions
diff --git a/tools/buildman/boards.py b/tools/buildman/boards.py
index e16f3268ab1..8832e40cd5d 100644
--- a/tools/buildman/boards.py
+++ b/tools/buildman/boards.py
@@ -28,7 +28,7 @@ COMMENT_BLOCK = f'''#
# List of boards
# Automatically generated by {__file__}: don't edit
#
-# Status, Arch, CPU, SoC, Vendor, Board, Target, Options, Maintainers
+# Status, Arch, CPU, SoC, Vendor, Board, Target, Config, Maintainers
'''
@@ -98,6 +98,8 @@ def output_is_new(output):
# was generated
with open(output, encoding="utf-8") as inf:
for line in inf:
+ if 'Options,' in line:
+ return False
if line[0] == '#' or line == '\n':
continue
defconfig = line.split()[6] + '_defconfig'
@@ -186,7 +188,7 @@ class KconfigScanner:
'vendor' : 'SYS_VENDOR',
'board' : 'SYS_BOARD',
'config' : 'SYS_CONFIG_NAME',
- 'options' : 'SYS_EXTRA_OPTIONS'
+ # 'target' is added later
}
def __init__(self):
@@ -216,7 +218,7 @@ class KconfigScanner:
defconfig (str): path to the defconfig file to be processed
Returns:
- Dictionary of board parameters. It has a form:
+ A dictionary of board parameters. It has a form of:
{
'arch': <arch_name>,
'cpu': <cpu_name>,
@@ -225,7 +227,6 @@ class KconfigScanner:
'board': <board_name>,
'target': <target_name>,
'config': <config_header_name>,
- 'options': <extra_options>
}
"""
# strip special prefixes and save it in a temporary file
@@ -262,14 +263,6 @@ class KconfigScanner:
if params['arch'] == 'arm' and params['cpu'] == 'armv8':
params['arch'] = 'aarch64'
- # fix-up options field. It should have the form:
- # <config name>[:comma separated config options]
- if params['options'] != '-':
- params['options'] = params['config'] + ':' + \
- params['options'].replace(r'\"', '"')
- elif params['config'] != params['target']:
- params['options'] = params['config']
-
return params
@@ -708,7 +701,7 @@ class Boards:
output (str): The path to the output file
"""
fields = ('status', 'arch', 'cpu', 'soc', 'vendor', 'board', 'target',
- 'options', 'maintainers')
+ 'config', 'maintainers')
# First, decide the width of each column
max_length = {f: 0 for f in fields}