CLASS: fix wrong var dependency

Signed-off-by: Priouzeau Christophe <christophe.priouzeau@st.com>
This commit is contained in:
Priouzeau Christophe 2020-02-03 14:53:38 +01:00
parent c9f76277cd
commit 3c67c03907
2 changed files with 15 additions and 48 deletions

View File

@ -87,50 +87,6 @@ UBOOT_EXTLINUX_KERNEL_IMAGE ?= "/${KERNEL_IMAGETYPE}"
UBOOT_EXTLINUX_KERNEL_ARGS ?= "rootwait rw" UBOOT_EXTLINUX_KERNEL_ARGS ?= "rootwait rw"
UBOOT_EXTLINUX_TIMEOUT ?= "20" UBOOT_EXTLINUX_TIMEOUT ?= "20"
UBOOT_EXTLINUX_CONFIGURE_FILES ??= ""
python update_extlinuxconf_targets() {
"""
Append dynamically to UBOOT_EXTLINUX_TARGETS new target list generated from
config flag list (UBOOT_EXTLINUX_CONFIG_FLAGS) and supported devicetree list
for each flag (UBOOT_EXTLINUX_DEVICEFLAG_xxx)
"""
import re
default_targets = d.getVar('UBOOT_EXTLINUX_CONFIGURED_TARGETS')
if not default_targets:
bb.fatal("UBOOT_EXTLINUX_CONFIGURED_TARGETS not defined, please update your config")
if not default_targets.strip():
bb.fatal("No UBOOT_EXTLINUX_CONFIGURED_TARGETS list defined, nothing to do")
bb.note('UBOOT_EXTLINUX_CONFIGURED_TARGETS: %s' % default_targets)
config_flags = d.getVar('UBOOT_EXTLINUX_CONFIG_FLAGS')
if not config_flags:
bb.fatal("UBOOT_EXTLINUX_CONFIG_FLAGS not defined, please update your config")
if not config_flags.strip():
bb.fatal("No UBOOT_EXTLINUX_CONFIG_FLAGS list defined, nothing to do")
bb.note('UBOOT_EXTLINUX_CONFIG_FLAGS: %s' % config_flags)
for config_label in config_flags.split():
bb.note('*** Loop for config_label: %s' % config_label)
devicetree_list = d.getVar('UBOOT_EXTLINUX_DEVICEFLAG_%s' % config_label) or ''
if devicetree_list is None:
continue
for devicetree in devicetree_list.split():
bb.note('*** Loop for devicetree: %s' % devicetree)
target_prefix = re.match('^stm32(.*)$', devicetree)
new_target = target_prefix.group(1) + '_' + config_label
bb.note('>>> New target label: %s' % new_target)
if not new_target in default_targets.split():
bb.note('Computed target: "%s" is not part of UBOOT_EXTLINUX_CONFIGURED_TARGETS: %s' % (new_target, default_targets))
bb.note('Target not append to UBOOT_EXTLINUX_TARGETS')
continue
# Append target to UBOOT_EXTLINUX_TARGETS list
d.appendVar('UBOOT_EXTLINUX_TARGETS', ' ' + new_target)
bb.note('>>> Append %s to UBOOT_EXTLINUX_TARGETS' % new_target)
bb.note('>>> UBOOT_EXTLINUX_TARGETS (updated): %s' % d.getVar('UBOOT_EXTLINUX_TARGETS'))
}
python do_create_multiextlinux_config() { python do_create_multiextlinux_config() {
targets = d.getVar('UBOOT_EXTLINUX_TARGETS') targets = d.getVar('UBOOT_EXTLINUX_TARGETS')
if not targets: if not targets:
@ -244,5 +200,11 @@ addtask create_multiextlinux_config before do_compile
do_create_multiextlinux_config[dirs] += "${B}" do_create_multiextlinux_config[dirs] += "${B}"
do_create_multiextlinux_config[cleandirs] += "${B}" do_create_multiextlinux_config[cleandirs] += "${B}"
do_create_multiextlinux_config[prefuncs] += "update_extlinuxconf_targets" # Manage specific var dependency:
do_create_multiextlinux_config[file-checksums] += "${UBOOT_EXTLINUX_CONFIGURE_FILES}" # Because of local overrides within create_multiextlinux_config() function, we
# need to make sure to add each variables to the vardeps list.
UBOOT_EXTLINUX_TARGET_VARS = "LABELS BOOTPREFIXES TIMEOUT DEFAULT_LABEL"
do_create_multiextlinux_config[vardeps] += "${@' '.join(['UBOOT_EXTLINUX_%s_%s' % (v, l) for v in d.getVar('UBOOT_EXTLINUX_TARGET_VARS').split() for l in d.getVar('UBOOT_EXTLINUX_TARGETS').split()])}"
UBOOT_EXTLINUX_LABELS_VARS = "CONSOLE MENU_DESCRIPTION ROOT KERNEL_IMAGE FDTDIR FDT KERNEL_ARGS INITRD"
UBOOT_EXTLINUX_LABELS_CONFIGURED = "${@" ".join(map(lambda t: "%s" % d.getVar("UBOOT_EXTLINUX_LABELS_%s" % t), d.getVar('UBOOT_EXTLINUX_TARGETS').split()))}"
do_create_multiextlinux_config[vardeps] += "${@' '.join(['UBOOT_EXTLINUX_%s_%s' % (v, l) for v in d.getVar('UBOOT_EXTLINUX_LABELS_VARS').split() for l in d.getVar('UBOOT_EXTLINUX_LABELS_CONFIGURED').split()])}"

View File

@ -102,6 +102,7 @@ FLASHLAYOUT_BASENAME ??= "FlashLayout"
FLASHLAYOUT_SUFFIX ??= "tsv" FLASHLAYOUT_SUFFIX ??= "tsv"
FLASHLAYOUT_BOOTSCHEME_LABELS ??= "" FLASHLAYOUT_BOOTSCHEME_LABELS ??= ""
FLASHLAYOUT_CONFIG_LABELS ??= ""
ENABLE_FLASHLAYOUT_DEFAULT ??= "0" ENABLE_FLASHLAYOUT_DEFAULT ??= "0"
FLASHLAYOUT_DEFAULT_SRC ??= "" FLASHLAYOUT_DEFAULT_SRC ??= ""
@ -246,8 +247,12 @@ def get_binaryname(labeltype, bootscheme, config, partition, d):
binary_name = expand_var('FLASHLAYOUT_PARTITION_BIN2LOAD', bootscheme, config, partition, d) binary_name = expand_var('FLASHLAYOUT_PARTITION_BIN2LOAD', bootscheme, config, partition, d)
bb.note('>>> Selected FLASHLAYOUT_PARTITION_BIN2LOAD: %s' % binary_name) bb.note('>>> Selected FLASHLAYOUT_PARTITION_BIN2LOAD: %s' % binary_name)
# Get binary_name basename to then check for any rename case
binary_name_base = os.path.basename(binary_name)
bb.note('>>> Basename selected for %s: %s' % (binary_name, binary_name_base))
# Treat TF-A, TEE, U-BOOT and U-BOOT-SPL binary rename case # Treat TF-A, TEE, U-BOOT and U-BOOT-SPL binary rename case
if re.match('^tf-a.*$', binary_name) or re.match('^u-boot.*$', binary_name) or re.match('^tee-.*$', binary_name): if re.match('^tf-a.*$', binary_name_base) or re.match('^u-boot.*$', binary_name_base) or re.match('^tee-.*$', binary_name_base):
file_name, file_ext = os.path.splitext(binary_name) file_name, file_ext = os.path.splitext(binary_name)
# Init binary_type to use from labeltype # Init binary_type to use from labeltype
binary_type = labeltype + '-' + bootscheme binary_type = labeltype + '-' + bootscheme
@ -266,7 +271,7 @@ def get_binaryname(labeltype, bootscheme, config, partition, d):
binary_type = re.sub(r'-%s$' % pattern2replace, '-' + pattern2use, binary_type) binary_type = re.sub(r'-%s$' % pattern2replace, '-' + pattern2use, binary_type)
bb.note('>>> New "binary_type" to use for binary name": %s' % binary_type) bb.note('>>> New "binary_type" to use for binary name": %s' % binary_type)
# Append binary_type to binary name # Append binary_type to binary name
if re.match('^u-boot-spl.*$', binary_name): if re.match('^u-boot-spl.*$', binary_name_base):
binary_name = file_name + file_ext + '-' + binary_type binary_name = file_name + file_ext + '-' + binary_type
else: else:
binary_name = file_name + '-' + binary_type + file_ext binary_name = file_name + '-' + binary_type + file_ext