e62a24ce | 18-Sep-2018 |
Simon Glass <sjg@chromium.org> |
buildman: Avoid hanging when the config changes
Something has changed in the last several month such that when buildman builds U-Boot incrementally and a new CONFIG option has been added to the Kcon
buildman: Avoid hanging when the config changes
Something has changed in the last several month such that when buildman builds U-Boot incrementally and a new CONFIG option has been added to the Kconfig, the build hanges waiting for input:
Test new config (NEW_CONFIG) [N/y/?] (NEW)
Since binamn does not connect the build's stdin to anything this waits on stdin to the build thread, which never comes. Eventually I suspect all the threads end up in this state and the build does not progress.
Fix this by passing /dev/null as input to the build. That way, if there is a new CONFIG, the build will stop (and fail):
Test new config (NEW_CONFIG) [N/y/?] (NEW)
Error in reading or end of file.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
163ed6c3 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Allow writing a map file when something goes wrong
When we get a problem like overlapping regions it is sometimes hard to figure what what is going on. At present we don't write the map file
binman: Allow writing a map file when something goes wrong
When we get a problem like overlapping regions it is sometimes hard to figure what what is going on. At present we don't write the map file in this case. However the file does provide useful information.
Catch any packing errors and write a map file (if enabled with -m) to aid debugging.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
fe1ae3ec | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Support ELF files for U-Boot and SPL
For sandbox we want to put ELF files in the image since that is what we need to execute. Add support for this.
Signed-off-by: Simon Glass <sjg@chromium.
binman: Support ELF files for U-Boot and SPL
For sandbox we want to put ELF files in the image since that is what we need to execute. Add support for this.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
f8f8df6e | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Correct fmap output on x86
Normally x86 platforms use the end-at-4gb option. This currently produces an FMAP with positions which have a large offset. The use of end-at-4gb is a useful conve
binman: Correct fmap output on x86
Normally x86 platforms use the end-at-4gb option. This currently produces an FMAP with positions which have a large offset. The use of end-at-4gb is a useful convenience within binman, but we don't really want to export a map with these offsets.
Fix this by subtracting the 'skip at start' parameter.
Also put the code which convers names to fmap format, for clarity.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
08723a7a | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Record the parent section of each section
At present sections have no record of their parent so it is not possible to traverse up the tree to the root and figure out the position of a sectio
binman: Record the parent section of each section
At present sections have no record of their parent so it is not possible to traverse up the tree to the root and figure out the position of a section within the image.
Change the constructor to record this information.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
f0253635 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Support x86 microcode in TPL
When TPL is used on x86 we may want to program the microcode (at least for the first CPU) early in boot. Add support for this by refactoring the existing code to
binman: Support x86 microcode in TPL
When TPL is used on x86 we may want to program the microcode (at least for the first CPU) early in boot. Add support for this by refactoring the existing code to be more generic.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
e0e5df93 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Support hashing entries
Sometimesi it us useful to be able to verify the content of entries with a hash. Add an easy way to do this in binman. The hash information can be retrieved from the
binman: Support hashing entries
Sometimesi it us useful to be able to verify the content of entries with a hash. Add an easy way to do this in binman. The hash information can be retrieved from the device tree at run time.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
9c888cca | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Mention section attributes in docs
Images and sections have the same attributes, since an image is mostly just a top-level section. Update the docs to explain this.
Signed-off-by: Simon Gla
binman: Mention section attributes in docs
Images and sections have the same attributes, since an image is mostly just a top-level section. Update the docs to explain this.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
ba64a0bb | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Support expanding entries
It is useful to have entries which can grow automatically to fill available space. Add support for this.
Signed-off-by: Simon Glass <sjg@chromium.org> |
0a98b28b | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Support adding files
In some cases it is useful to add a group of files to the image and be able to access them at run-time. Of course it is possible to generate the binman config file with
binman: Support adding files
In some cases it is useful to add a group of files to the image and be able to access them at run-time. Of course it is possible to generate the binman config file with a set of blobs each with a filename. But for convenience, add an entry type which can do this.
Add required support (for adding nodes and string properties) into the state module.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
b4e1a38c | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Allow zero-size sections
At present if there is only a zero-size entry in a section this is reported as an error, e.g.:
Offset 0x0 (0) is outside the section starting at 0x0 (0)
Adjust
binman: Allow zero-size sections
At present if there is only a zero-size entry in a section this is reported as an error, e.g.:
Offset 0x0 (0) is outside the section starting at 0x0 (0)
Adjust the logic in CheckEntries() to avoid this.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
83d73c2f | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Support compressed entries
Add support for compressing blob entries. This can help reduce image sizes for many types of data. It requires that the firmware be able to decompress the data at
binman: Support compressed entries
Add support for compressing blob entries. This can help reduce image sizes for many types of data. It requires that the firmware be able to decompress the data at run-time.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
04187a84 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
patman: Detect missing tools and report them
When tools are needed but not present, at present we just get an error which can be confusing for the user. Try to be helpful by reporting the tool as mi
patman: Detect missing tools and report them
When tools are needed but not present, at present we just get an error which can be confusing for the user. Try to be helpful by reporting the tool as missing and suggesting a possible remedy.
Also update the Run() method to support this.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
6ed45ba0 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Support updating all device tree files
Binman currently supports updating the main device tree with things like the position of each entry. Extend this support to SPL and TPL as well, since
binman: Support updating all device tree files
Binman currently supports updating the main device tree with things like the position of each entry. Extend this support to SPL and TPL as well, since they may need (a subset of) this information.
Also adjust DTB output files to have a .out extension since this seems clearer than having a .dtb extension with 'out' in the name somwhere.
Also add a few missing comments and update the DT setup code to use ReadFile and WriteFile().
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
93d17413 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Allow control of whether a fake DT is used
We use a fake device tree in tests most of the time since tests don't normally care about the actual data. For example, for U-Boot proper we use U_
binman: Allow control of whether a fake DT is used
We use a fake device tree in tests most of the time since tests don't normally care about the actual data. For example, for U-Boot proper we use U_BOOT_DTB_DATA which is just a four-character string. This makes testing the image output against an expected value very easy.
However in some cases, such as when the test wants to check that the DT output containing particular nodes, we do actually need the real DT. Add support for this, along with a command-line option to select 'test mode'.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
539aece5 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Obtain the list of device trees from the config
We always have a device tree for U-Boot proper. But we may also have one for SPL and TPL. Add a new Entry method to find out what DTs an entry
binman: Obtain the list of device trees from the config
We always have a device tree for U-Boot proper. But we may also have one for SPL and TPL. Add a new Entry method to find out what DTs an entry has, and use that list when updating DTs.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
f46621d2 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Centralise device-tree updates within binman
At present we have a few calls to device-tree functions in binman and plan to add more as we add new entry types which need to report their resul
binman: Centralise device-tree updates within binman
At present we have a few calls to device-tree functions in binman and plan to add more as we add new entry types which need to report their results.
It makes sense to put this code in a central place so that we can make sure all device trees are updated. At present we only have U-Boot proper, but plan to add SPL and TPL too.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
2a72cc72 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Move state logic into the state module
Rather than reaching into this module from control, move the code that needs this info into state.
Signed-off-by: Simon Glass <sjg@chromium.org> |
c55a50f5 | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Move state information into a new module
At present the control module has state information in it, since it is the primary user of this. But it is a bit odd to have entries and other module
binman: Move state information into a new module
At present the control module has state information in it, since it is the primary user of this. But it is a bit odd to have entries and other modules importing control to obtain this information.
It seems better to have a dedicated state module, which control can use as well. Create a new module using code from control and update other modules to use it.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
6c234bfb | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
binman: Add an entry method for getting the default filename
Various entry implementations provide a way to obtain the default filename for an entry. But at present there is no base-class implementa
binman: Add an entry method for getting the default filename
Various entry implementations provide a way to obtain the default filename for an entry. But at present there is no base-class implementation for this function. Add one so that the API is defined.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
746aee3f | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
dtoc: Add a way to create an Fdt object from a data block
Support creating an Fdt object without having to write the data to a file first.
Signed-off-by: Simon Glass <sjg@chromium.org> |
6434961b | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
dtoc: Add methods for adding and updating properties
Add a few more functions which allow creating and modifying property values. If only we could do this so easily in the real world.
Signed-off-by
dtoc: Add methods for adding and updating properties
Add a few more functions which allow creating and modifying property values. If only we could do this so easily in the real world.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
e21c27af | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
dtoc: Support adding new nodes
Add a way to add new nodes and sync them back to the blob.
Signed-off-by: Simon Glass <sjg@chromium.org> |
af53f5aa | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
dtoc: Fixed endianness in Prop.GetEmpty()
This should be big endian, since that is what device tree uses. Fix it.
Signed-off-by: Simon Glass <sjg@chromium.org> |
fa80c25c | 14-Sep-2018 |
Simon Glass <sjg@chromium.org> |
dtoc: Allow syncing of the device tree back to a file
At present we require the caller to manually update the device tree using individual calls to libfdt functions. This is not ideal. It would be b
dtoc: Allow syncing of the device tree back to a file
At present we require the caller to manually update the device tree using individual calls to libfdt functions. This is not ideal. It would be better if we could make changes using the Python structure and then call a Sync() function to write them back.
Add this feature to the Fdt class. Update binman and the tests to match.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|