summaryrefslogtreecommitdiff
path: root/tools/binman
AgeCommit message (Collapse)Author
2019-07-23binman: Allow preserving test directoriesSimon Glass
Sometimes when debugging tests it is useful to keep the input and output directories so they can be examined later. Add an option for this and update the binman tests to support it. This affects both the test class and the tearDown() function called after each test. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Allow verbosity control when running testsSimon Glass
At present the -v flag is ignored with tests, so that (for example) -v2 does not have any effect. Update binman to pass this flag through to tests so that they work just like running binman normally, except in a few special cases where we are actually testing behaviour with different levels of verbosity. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Fix up the _DoTestFile() function -u argumentSimon Glass
This should be -u, not -up, since we don't need to preserve the output directory in this case. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Support ELF files for TPLSimon Glass
We currenty support using the ELF file in U-Boot proper and SPL, but not TPL. Add this as it is useful both with sandbox and for CBFS to allow adding TPL as a 'stage'. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Correct comment in u_boot_spl_elfSimon Glass
This comment mentions the wrong default filename. Fix it. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Use tools compression function for blob handlingSimon Glass
Avoid duplicate code here by using the new compression function in the tools module. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Drop unnecessary debug handlingSimon Glass
The -D option enables debug mode, but we only need to add -D to the command line once. Drop the duplicate code. Also drop the comment about enabling debugging since this can be done with -D. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Use the tools.Decompress methodSimon Glass
Update the compression test to use the tools module to decompress the output data. Signed-off-by: Simon Glass <[email protected]>
2019-07-23patman: Add functions to compress and decompress dataSimon Glass
Add utility functions to compress and decompress using lz4 and lzma algorithms. In the latter case these use the legacy lzma support favoured by coreboot's CBFS. No tests are provided as these functions will be tested by the CBFS tests in a separate patch. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Allow text directly in the nodeSimon Glass
At present text entries use an indirect method to specify the text to use, with a label pointing to the text itself. Allow the text to be directly written into the node. This is more convenient in cases where the text is constant. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Update entry.SetOffsetSize to be optionalSimon Glass
At present this function always sets both the offset and the size of entries. But in some cases we want to set only one or the other, for example with the forthcoming ifwi entry, where we only set the offset. Update the function to handle this. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Don't assume there is an ME regionSimon Glass
At present having a descriptor means that there is an ME (Intel Management Engine) entry as well. The descriptor provides the ME location and assumes that it is present. For some SoCs this is not true. Before providing the location of a potentially non-existent entry, check if it is present. Update the comment in the ME entry also. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Assume Intel descriptor is at the start of the imageSimon Glass
At present binman requires that the Intel descriptor has an explicit offset. Generally this is 0 since the descriptor is at the start of the image. Add a default to handle this, so users don't need to specify the offset. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Ensure that coverage has access to site packagesSimon Glass
Code coverage tests fail on binman due to dist-packages being dropped from the python path on Ubuntu 16.04. Add them in so that we can find the elffile module, which is required by binman. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Add a function to decode an ELF fileSimon Glass
Add a function which decodes an ELF file, working out where in memory each part of the data should be written. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Add a function to create a sample ELF fileSimon Glass
It is useful to create an ELF file for testing purposes, with just the right attributes used by the test. Add a function to handle this, along with a test that it works correctly. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Detect skipped testsSimon Glass
If tests are skipped we should ideally exit with an error, since there may be a missing dependency. However at present this is not desirable since it breaks travis tests. For now, just report the skips. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Use a better error for missing Intel descriptorSimon Glass
FD is a bit confusing so write this out in full. Also avoid splitting the string so that people can grep for the error message more easily. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Tidy up help for --indirSimon Glass
The current help is confusing. Adjust it to indicate what the flag actually does. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Add missing comments toentrySimon Glass
At present GetOffsets() lacks a function comment. Add one. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Add missing comments to bsectionSimon Glass
Some functions lack comments in this file. Add comments to cover this functionality. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Add a --toolpath option to set the tool search pathSimon Glass
Sometimes tools used by binman may not be in the normal PATH search path, such as when the tool is built by the U-Boot build itself (e.g. mkimage). Provide a way to specify an additional search path for tools. The flag can be used multiple times. Update the help to describe this option. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Add coverage tools info for Python 3Simon Glass
Test coverage with Python 3 requires a new package. Add details about this. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Correct two typos in function names in ftestSimon Glass
Two functions have incorrect names. Fix them. Signed-off-by: Simon Glass <[email protected]>
2019-07-23binman: Fix comment in bsection.GetEntries()Simon Glass
This comment is out of date as it does not correctly describe the return value. Fix it. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Update the README.entries fileSimon Glass
A few minor changes have been made including one new entry. Update the documentation with: $ binman -E >tools/binman/README.entries Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Document parallel testsSimon Glass
Since binman can run tests in parallel, document this. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Read map files as textSimon Glass
These files are text files so should be read as such, so that string-equality assertions work as expected. With this binman tests work correctly on Python 2 and Python 3: PYTHONPATH=/tmp/b/sandbox_spl/scripts/dtc/pylibfdt \ python ./tools/binman/binman -t Change first line of binman.py to end "python3": PYTHONPATH=~/cosarm/dtc/pylibfdt:tools/patman \ python3 ./tools/binman/binman -t Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Fix up a format string in AssertInList()Simon Glass
Add the missing 's' to the required '%s' here. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Update 'text' entry for Python 3Simon Glass
This code reads a binary value and then uses it as a string to look up another value. Add conversions to make this work as expected on Python 3. Signed-off-by: Simon Glass <[email protected]>
2019-07-10patman: Update fmap code for Python 3Simon Glass
This needs special care to ensure that the bytes type is used for binary data. Add conversion code to deal with strings and bytes correctly. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Update entry_test to support Python 3Simon Glass
The reload() function is in a different place in Python 3. Update the code to handle this. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Convert to use bytes typeSimon Glass
With Python 3 we want to use the 'bytes' type instead of 'str'. Adjust the code accordingly so that it works on both Python 2 and Python 3. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Avoid changing a dict during iterationSimon Glass
This code works OK in Python 2 but Python 3 complains. Adjust it to avoid deleting elements from a dict while iterating through it. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Handle repeated bytes for Python 3Simon Glass
The method of multiplying a character by a number works well for creating a repeated string in Python 2. But in Python 3 we need to use bytes() instead, to avoid unicode problems, since 'bytes' is no-longer just an alias of 'str'. Create a function to handle this detail and call it from the relevant places in binman. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Drop an unused input fileSimon Glass
Drop this line which is not used or needed. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Use binary mode when compressing dataSimon Glass
The lz4 utility inserts binary data in its output which cannot always be converted to unicode (nor should it be). Fix this by using the new binary mode for program output. Signed-off-by: Simon Glass <[email protected]>
2019-07-10tools: binman: Open all binary files in binary modeSimon Glass
At present some files are opened in text mode despite containing binary data. This works on Python 2 but not always on Python 3, due to unicode problems. BC&D are not my favourite people. Adjust the affected open() statements to use binary mode. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Use items() instead of iteritems()Simon Glass
Python 3 requires this, and Python 2 allows it. Convert the code over to ensure compatibility with Python 3. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Remove use of Set()Simon Glass
A new built-in set() is used in both Python 2 and 3 now. Move it to use that instead of Set(). Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Don't show errors for failed testsSimon Glass
An unfortunate new feature in Python 3.5 causes binman to print errors for non-existent tests, when the test filter is used. Work around this by detecting the unwanted tests and removing them from the result. Signed-off-by: Simon Glass <[email protected]>
2019-07-10binman: Convert print statements to Python 3Simon Glass
Update all print statements to be functions, as required by Python 3. Signed-off-by: Simon Glass <[email protected]>
2019-05-08binman: Allow sections to have an offsetSimon Glass
At present sections are always placed automatically. Even if an 'offset' property is provided it is ignored. Update the logic to support an offset for sections. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2019-05-08binman: Add a missing comment in Entry_vblockSimon Glass
An important property is missing. Update the entry comment to include this. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2019-05-08binman: Don't show image-skip message by defaultSimon Glass
This message is not very important since it is simply indicating that the user's instructions are being followed. Only show it when the verbosity level is above the default. Also drop the unnecessary extra newline on this message, which causes two line breaks. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2019-05-08binman: Don't generate an error in 'text' entry constructorSimon Glass
It is not good practice to raise an exception in a constructor. In this case the 'text' entry may not actually be used, if -i is used to filter out the images that get built. Move the exception to where the data is actually used. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2018-11-20binman: Set the pathname correctly for ELF filesSimon Glass
At present, stripped files don't have the right pathname which means that blob compression cannot be used. Fix this. Signed-off-by: Simon Glass <[email protected]>
2018-11-20binman: Drop an unnecessary comma in blob handlingSimon Glass
This comma is not needed. Drop it. Signed-off-by: Simon Glass <[email protected]>
2018-11-20binman: Add a way to enable debugging from the buildSimon Glass
When the build fails due to something wrong in binman it is sometimes useful to get a full backtrace showing the location of the failure. Add a BINMAN_DEBUG environment variable to support this along with some documentation. Signed-off-by: Simon Glass <[email protected]>
2018-10-22binman: Add a test for Intel reference codeSimon Glass
Unfortunately the test was not included in the original implementation. Add one. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Simon Glass <[email protected]>