From: Adrian Freihofer <[email protected]> The anonymous function sets the FIT_LOADABLE_* variables to the flags of all loadables joined by " ? ", e.g. "0x86000000 ? 0x87000000". This was done only to make the flags visible to the selftests, which could read variables but not flags. do_compile reads the flags directly and does not need these values.
get_bb_vars supports reading variable flags now. Let the test request the FIT_LOADABLE_* flags of the loadables it configures and drop the synthetic values from the class. Signed-off-by: Adrian Freihofer <[email protected]> --- meta/classes-recipe/kernel-fit-image.bbclass | 7 ++----- meta/lib/oeqa/selftest/cases/fitimage.py | 13 +++++++------ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/meta/classes-recipe/kernel-fit-image.bbclass b/meta/classes-recipe/kernel-fit-image.bbclass index a238de1aa2..abf7327c97 100644 --- a/meta/classes-recipe/kernel-fit-image.bbclass +++ b/meta/classes-recipe/kernel-fit-image.bbclass @@ -32,8 +32,8 @@ python () { # Parse loadables config loadables = d.getVar('FIT_LOADABLES') if loadables: - # Forbid direct assignment, set synthetic values for testability and - # add the vars to vardeps so their flags are part of the signature. + # Only flags are supported. Add the vars to vardeps so their flags are + # part of the signature. loadable_vars = ['FIT_LOADABLE_ARCH', 'FIT_LOADABLE_COMPRESSION', 'FIT_LOADABLE_DESCRIPTION', 'FIT_LOADABLE_ENTRYPOINT', 'FIT_LOADABLE_FILENAME', 'FIT_LOADABLE_LOADADDRESS', @@ -41,9 +41,6 @@ python () { for v in loadable_vars: if d.getVar(v): raise bb.parse.SkipRecipe("You cannot use %s as a variable, you can only set flags." % v) - - synt_value = " ? ".join([ d.getVarFlag(v, loadable) or "" for loadable in loadables.split() ]) - d.setVar(v, synt_value) d.appendVarFlag('do_compile', 'vardeps', ' ' + ' '.join(loadable_vars)) } diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py index 5d77e6da09..ffd7f9747e 100644 --- a/meta/lib/oeqa/selftest/cases/fitimage.py +++ b/meta/lib/oeqa/selftest/cases/fitimage.py @@ -676,8 +676,6 @@ class KernelFitImageBase(FitImageTestCase): 'FIT_HASH_ALG', 'FIT_KERNEL_COMP_ALG', 'FIT_LOADABLES', - 'FIT_LOADABLE_ENTRYPOINT', - 'FIT_LOADABLE_LOADADDRESS', 'FIT_OS', 'FIT_SIGN_ALG', 'FIT_SIGN_INDIVIDUAL', @@ -1025,10 +1023,10 @@ class KernelFitImageBase(FitImageTestCase): "Entry Point": bb_vars['UBOOT_RD_ENTRYPOINT'] } # Create one section per loadable - for index,loadable in enumerate(loadables): - loadaddress = bb_vars['FIT_LOADABLE_LOADADDRESS'].split("?")[index].strip() + for loadable in loadables: + loadaddress = bb_vars['FIT_LOADABLE_LOADADDRESS[%s]' % loadable] req_sections[loadable] = { "Load Address": loadaddress } - entrypoint = bb_vars['FIT_LOADABLE_ENTRYPOINT'].split("?")[index].strip() + entrypoint = bb_vars.get('FIT_LOADABLE_ENTRYPOINT[%s]' % loadable) if entrypoint: req_sections[loadable]['Entry Point'] = entrypoint # Create a configuration section for each DTB @@ -1204,7 +1202,10 @@ FIT_LOADABLE_TYPE[loadable2] = "firmware" config = FitImageTestCase._config_add_machine_settings(config, machine, keys=["KERNEL_DEVICETREE", "FIT_CONF_DEFAULT_DTB"]) config = self._config_add_kernel_classes(config) self.write_config(config) - bb_vars = self._fit_get_bb_vars() + loadable_flags = ['%s[%s]' % (var, loadable) + for loadable in ('loadable1', 'loadable2') + for var in ('FIT_LOADABLE_ENTRYPOINT', 'FIT_LOADABLE_LOADADDRESS')] + bb_vars = self._fit_get_bb_vars(loadable_flags) self._gen_atf_tee_dummy_images(bb_vars) self._test_fitimage(bb_vars) -- 2.56.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#248613): https://lists.openembedded.org/g/openembedded-core/message/248613 Mute This Topic: https://lists.openembedded.org/mt/121930722/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
