diff options
author | Tom Rini <trini@konsulko.com> | 2022-01-31 09:26:54 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-01-31 09:26:54 -0500 |
commit | 1047af5c65b00b822fd72d1750f3141615f7002d (patch) | |
tree | f659c1c5849407fca2d9596ede8bb4e356d77af3 | |
parent | ceefc660bae42e3fbd72390f039bec1463e01287 (diff) | |
parent | fcc87efdf3772e6e8d060dc10d521442d7772ce9 (diff) | |
download | u-boot-1047af5c65b00b822fd72d1750f3141615f7002d.zip u-boot-1047af5c65b00b822fd72d1750f3141615f7002d.tar.gz u-boot-1047af5c65b00b822fd72d1750f3141615f7002d.tar.bz2 |
Merge tag 'dm-pull-30jan22' of https://source.denx.de/u-boot/custodians/u-boot-dm
moveconfig fix
binman support for listing files with generated entries
-rw-r--r-- | tools/binman/etype/fit.py | 2 | ||||
-rw-r--r-- | tools/binman/ftest.py | 18 | ||||
-rw-r--r-- | tools/binman/image.py | 9 | ||||
-rw-r--r-- | tools/binman/test/219_fit_gennode.dts | 26 | ||||
-rwxr-xr-x | tools/moveconfig.py | 26 |
5 files changed, 65 insertions, 16 deletions
diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py index 6e5f020..6ad4a68 100644 --- a/tools/binman/etype/fit.py +++ b/tools/binman/etype/fit.py @@ -194,7 +194,7 @@ class Entry_fit(Entry): # the FIT (e.g. "/images/kernel/u-boot"), so don't call # fsw.add_node() or _AddNode() for it. pass - elif subnode.name.startswith('@'): + elif self.GetImage().generate and subnode.name.startswith('@'): if self._fdts: # Generate notes for each FDT for seq, fdt_fname in enumerate(self._fdts): diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index ca200ae..5400f76 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -5100,6 +5100,24 @@ fdt fdtmap Extract the devicetree blob from the fdtmap self.assertIn('Documentation is missing for modules: mkimage', str(e.exception)) + def testListWithGenNode(self): + """Check handling of an FDT map when the section cannot be found""" + entry_args = { + 'of-list': 'test-fdt1 test-fdt2', + } + data = self._DoReadFileDtb( + '219_fit_gennode.dts', + entry_args=entry_args, + use_real_dtb=True, + extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)]) + + try: + tmpdir, updated_fname = self._SetupImageInTmpdir() + with test_util.capture_sys_output() as (stdout, stderr): + self._RunBinman('ls', '-i', updated_fname) + finally: + shutil.rmtree(tmpdir) + if __name__ == "__main__": unittest.main() diff --git a/tools/binman/image.py b/tools/binman/image.py index 0f0c1d2..cb5279c 100644 --- a/tools/binman/image.py +++ b/tools/binman/image.py @@ -67,9 +67,13 @@ class Image(section.Entry_section): does not exist in binman. This is useful if an image was created by binman a newer version of binman but we want to list it in an older version which does not support all the entry types. + generate: If true, generator nodes are processed. If false they are + ignored which is useful when an existing image is read back from a + file. """ def __init__(self, name, node, copy_to_orig=True, test=False, - ignore_missing=False, use_expanded=False, missing_etype=False): + ignore_missing=False, use_expanded=False, missing_etype=False, + generate=True): super().__init__(None, 'section', node, test=test) self.copy_to_orig = copy_to_orig self.name = 'main-section' @@ -83,6 +87,7 @@ class Image(section.Entry_section): self.use_expanded = use_expanded self.test_section_timeout = False self.bintools = {} + self.generate = generate if not test: self.ReadNode() @@ -131,7 +136,7 @@ class Image(section.Entry_section): # Return an Image with the associated nodes root = dtb.GetRoot() image = Image('image', root, copy_to_orig=False, ignore_missing=True, - missing_etype=True) + missing_etype=True, generate=False) image.image_node = fdt_util.GetString(root, 'image-node', 'image') image.fdtmap_dtb = dtb diff --git a/tools/binman/test/219_fit_gennode.dts b/tools/binman/test/219_fit_gennode.dts new file mode 100644 index 0000000..e9eda29 --- /dev/null +++ b/tools/binman/test/219_fit_gennode.dts @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/dts-v1/; + +/ { + #address-cells = <1>; + #size-cells = <1>; + + binman { + fit { + description = "test-desc"; + #address-cells = <1>; + fit,fdt-list = "of-list"; + + images { + @fdt-SEQ { + description = "fdt-NAME.dtb"; + type = "flat_dt"; + compression = "none"; + }; + }; + }; + fdtmap { + }; + }; +}; diff --git a/tools/moveconfig.py b/tools/moveconfig.py index 35fe671..1bcf58c 100755 --- a/tools/moveconfig.py +++ b/tools/moveconfig.py @@ -205,12 +205,12 @@ def show_diff(alines, blines, file_path, color_enabled): tofile=os.path.join('b', file_path)) for line in diff: - if line[0] == '-' and line[1] != '-': - print(color_text(color_enabled, COLOR_RED, line), end=' ') - elif line[0] == '+' and line[1] != '+': - print(color_text(color_enabled, COLOR_GREEN, line), end=' ') + if line.startswith('-') and not line.startswith('--'): + print(color_text(color_enabled, COLOR_RED, line)) + elif line.startswith('+') and not line.startswith('++'): + print(color_text(color_enabled, COLOR_GREEN, line)) else: - print(line, end=' ') + print(line) def extend_matched_lines(lines, matched, pre_patterns, post_patterns, extend_pre, extend_post): @@ -368,7 +368,7 @@ def cleanup_one_header(header_path, patterns, args): matched = [] for i, line in enumerate(lines): - if i - 1 in matched and lines[i - 1][-2:] == '\\\n': + if i - 1 in matched and lines[i - 1].endswith('\\'): matched.append(i) continue for pattern in patterns: @@ -380,9 +380,9 @@ def cleanup_one_header(header_path, patterns, args): return # remove empty #ifdef ... #endif, successive blank lines - pattern_if = re.compile(r'#\s*if(def|ndef)?\W') # #if, #ifdef, #ifndef - pattern_elif = re.compile(r'#\s*el(if|se)\W') # #elif, #else - pattern_endif = re.compile(r'#\s*endif\W') # #endif + pattern_if = re.compile(r'#\s*if(def|ndef)?\b') # #if, #ifdef, #ifndef + pattern_elif = re.compile(r'#\s*el(if|se)\b') # #elif, #else + pattern_endif = re.compile(r'#\s*endif\b') # #endif pattern_blank = re.compile(r'^\s*$') # empty line while True: @@ -424,8 +424,8 @@ def cleanup_headers(configs, args): patterns = [] for config in configs: - patterns.append(re.compile(r'#\s*define\s+%s\W' % config)) - patterns.append(re.compile(r'#\s*undef\s+%s\W' % config)) + patterns.append(re.compile(r'#\s*define\s+%s\b' % config)) + patterns.append(re.compile(r'#\s*undef\s+%s\b' % config)) for dir in 'include', 'arch', 'board': for (dirpath, dirnames, filenames) in os.walk(dir): @@ -451,7 +451,7 @@ def cleanup_one_extra_option(defconfig_path, configs, args): """ start = 'CONFIG_SYS_EXTRA_OPTIONS="' - end = '"\n' + end = '"' lines = read_file(defconfig_path) @@ -812,7 +812,7 @@ class KconfigParser: for (action, value) in self.results: if action != ACTION_MOVE: continue - if not value + '\n' in defconfig_lines: + if not value in defconfig_lines: log += color_text(self.args.color, COLOR_YELLOW, "'%s' was removed by savedefconfig.\n" % value) |