aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-01-31 09:26:54 -0500
committerTom Rini <trini@konsulko.com>2022-01-31 09:26:54 -0500
commit1047af5c65b00b822fd72d1750f3141615f7002d (patch)
treef659c1c5849407fca2d9596ede8bb4e356d77af3
parentceefc660bae42e3fbd72390f039bec1463e01287 (diff)
parentfcc87efdf3772e6e8d060dc10d521442d7772ce9 (diff)
downloadu-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.py2
-rw-r--r--tools/binman/ftest.py18
-rw-r--r--tools/binman/image.py9
-rw-r--r--tools/binman/test/219_fit_gennode.dts26
-rwxr-xr-xtools/moveconfig.py26
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)