summaryrefslogtreecommitdiff
path: root/tools/buildman
diff options
context:
space:
mode:
authorAlex Kiernan <alex.kiernan@gmail.com>2018-05-31 04:48:33 +0000
committerSimon Glass <sjg@chromium.org>2018-06-07 11:25:07 -0800
commit0ddc510ea37aa578b8cb197840a5125409978bec (patch)
treeec86d6c4a05306a43cf4270f12ad3581224caab6 /tools/buildman
parentbf6226c3c4e181f7fcaec924ccd7c953f6aa0d9b (diff)
buildman: Extract environment as part of each build
As we're building the boards, extract the default U-Boot environment to uboot.env so we can interrogate it later. Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman')
-rw-r--r--tools/buildman/builderthread.py10
-rw-r--r--tools/buildman/func_test.py5
2 files changed, 15 insertions, 0 deletions
diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
index 0efe80d945..c84ba6acf1 100644
--- a/tools/buildman/builderthread.py
+++ b/tools/buildman/builderthread.py
@@ -351,6 +351,16 @@ class BuilderThread(threading.Thread):
lines.append(size_result.stdout.splitlines()[1] + ' ' +
rodata_size)
+ # Extract the environment from U-Boot and dump it out
+ cmd = ['%sobjcopy' % self.toolchain.cross, '-O', 'binary',
+ '-j', '.rodata.default_environment',
+ 'env/built-in.o', 'uboot.env']
+ command.RunPipe([cmd], capture=True,
+ capture_stderr=True, cwd=result.out_dir,
+ raise_on_error=False, env=env)
+ ubootenv = os.path.join(result.out_dir, 'uboot.env')
+ self.CopyFiles(result.out_dir, build_dir, '', ['uboot.env'])
+
# Write out the image sizes file. This is similar to the output
# of binutil's 'size' utility, but it omits the header line and
# adds an additional hex value at the end of each line for the
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index 9206fb299d..363db9d8ce 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -327,6 +327,9 @@ class TestFunctional(unittest.TestCase):
def _HandleCommandObjdump(self, args):
return command.CommandResult(return_code=0)
+ def _HandleCommandObjcopy(self, args):
+ return command.CommandResult(return_code=0)
+
def _HandleCommandSize(self, args):
return command.CommandResult(return_code=0)
@@ -359,6 +362,8 @@ class TestFunctional(unittest.TestCase):
return self._HandleCommandNm(args)
elif cmd.endswith('objdump'):
return self._HandleCommandObjdump(args)
+ elif cmd.endswith('objcopy'):
+ return self._HandleCommandObjcopy(args)
elif cmd.endswith( 'size'):
return self._HandleCommandSize(args)