summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-29vbe: Allow test to run with live/flat treeSimon Glass
This test can operate in all conditions now. Update the test and comments. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Expand ofnode testsSimon Glass
The current tests do not cover all functions, nor do they cover the new multi-tree functionality. Add and update the tests accordingly and update the 'future work' notes in the documentation. There is a still more testing needed for the failure cases, since at present some ofnode functions return a libfdt error code instead of converting it to an errno. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Create a function to get a live tree in a testSimon Glass
Move this logic out of the test into separate functions, so we can use it in other tests. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Update comments for default-FDT ofnode functionsSimon Glass
Some ofnode functions can only operate on the default device tree, i.e. U-Boot's control FDT. Add comments to that effect. Fix up the reference to device tree bindings while we are here. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Complete phandle implementation using the other FDTSimon Glass
We need to be able to look up phandles in any FDT, not just the control FDT. Use the 'other' FDT to test this, with a helper function which gets this as an oftree that can then we used as needed. Add a few more tests and some comments at the top of the file, to explain what is going on. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Add the ofnode multi-tree implementationSimon Glass
Add the logic to redirect requests for the device tree through a function which can look up the tree ID. This works by using the top bits of ofnode.of_offset to encode a tree. It is assumed that there will only be a few device trees used at runtime, typically the control FDT (always tree ID 0) and possibly a separate FDT to be passed the OS. The maximum number of device trees supported at runtime is 8, with this implementation. That would use bits 30:28 of the node-offset value, meaning that the positive offset range is limited to bits 27:0, versus 30:1 with this feature disabled. That still allows a device tree of up to 256MB, which should be enough for most FITs. Larger ones can be supported by using external data with the FIT, or by enabling OF_LIVE. Update the documentation a little and fix up the comment for ofnode_valid(). Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Add definitions for multiple ofnode treesSimon Glass
At present, unless OF_LIVE is enabled, ofnode only supports access to one device tree, the control FDT. This is because only the node offset is encoded in ofnode, with the tree being implicit. This makes ofnode (without OF_LIVE) unsuitable for device tree fixups, as implemented by ft_board_setup() and other such functions. To solve this, we can use the top bits of the node offset to hold a tree ID. Add the definitions for this. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Split ofnode_path_root() into two functionsSimon Glass
This function turns out to be a little confusing since it looks up a path and also registers the tree. Split it into two, one that gets the root node and one that looks up a path, so the purpose is clear. Registering the tree will happen in a function to be added in a later patch, called oftree_from_fdt(). Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Allow obtaining a node offset in the same treeSimon Glass
In some cases we want to obtain an ofnode in the same tree as a different ofnode, such as when looking up a subnode. At present this is trivial, since there is only one tree. When there are multiple trees, this implementation will change. Also move the ofnode_to_offset() function up higher in the header file, since we will need to provide a different implementation with multiple trees. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Add a way to look up a phandle in an oftreeSimon Glass
When we have multiple trees, the ofnode logic needs to be told which one to use. Create a new function which takes an oftree argument, along with a helper to obtain the FDT pointer from an oftree. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Add ofnode functions to obtain an oftreeSimon Glass
At present dm_test_ofnode_root() does this manually. Add some inline functions to handle it, so this code can be centralised. Add oftree functions to produce a null tree and to check whether a tree is valid or not. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Add an ofnode function to obtain the flat treeSimon Glass
The flat device tree is assumed to be the control FDT but this is not always the case. Update the ofnode implementation to obtain the node via an function call so we can eventually add support for selecting different trees. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Provide a way to reset the device treeSimon Glass
At present there is only one device tree used by the ofnode functions, except for some esoteric use of live tree. In preparation for supporting more than one, add a way to reset the list of device trees. For now this does nothing. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Expand integer-reading testsSimon Glass
The current tests do not cover all the behaviour. Add some more. Tidy up a few inconsistencies between livetree and flattree which come to light with these tests. Also drop the -ENODATA error since it is never actually returned. Signed-off-by: Simon Glass <[email protected]>
2022-09-30efi_loader: fix efi_initrd_deregister()Heinrich Schuchardt
Don't try to delete a non-existent handle. Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-09-30efi_selftest: prefix test functions with efi_st_Heinrich Schuchardt
An upcoming patch set creates a global function flush(). To make debugging easier we should not use the same name for a static function. Rename static functions in the LoadImage() unit test adding an efi_st_ prefix. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2022-09-30doc: improve description of autostartHeinrich Schuchardt
Complete the list of commands influenced by the autostart environment variable. Make it clearer what values qualifies at 'yes'. Eventually the list of environment variables is to be alphabetically sorted. Move autostart up. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-09-29dm: core: Drop ofnode_is_available()Simon Glass
This function is also available as ofnode_is_enabled(), so use that instead. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Add a macro to iterate through propertiesSimon Glass
Add a 'for_each' macro like we have for nodes. Fix the comment for struct ofprop while we are here. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Avoid creating a name property when unflatteningSimon Glass
The current implementation creates a 'name' value for every node. This is not needed for the latest device tree format, which includes a name in the node header. Adjust the code to point the name at the node header instead. Also simplify ofnode_get_name(), now that we can rely on it to set the name correctly. Update the comment to make it clear what name the root node has. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Rename ofnode_get_property_by_prop()Simon Glass
The current name is quite unwieldy. Change it to use an ofprop_ prefix and shorten it. Fix the return-value comment while we are here. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Rename ofnode_get_first/next_property()Simon Glass
Drop the 'get' in these names since it does not fit with the rest of the API. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Reduce code size with dev_of_offset()Simon Glass
Update the function to mark it with the const attribute. Also avoid calling it multiple times in the devfdt_get_addr_index() function. Signed-off-by: Simon Glass <[email protected]>
2022-09-29sandbox: test: Provide an easy way to use the other FDTSimon Glass
Add a test flag which indicates that the 'other' FDT should be set up ready for use. Handle this by copying in the FDT, unflattening it for livetree tests. Free the structures when the tests have run. We cannot use the other FDT unless we are using live tree or OFNODE_MULTI_TREE is enabled, since only one tree is supported by the ofnode interface in that case. Add this condition into ut_run_test_live_flat() and update the comments. Signed-off-by: Simon Glass <[email protected]>
2022-09-29sandbox: Support setting up the other FDT for testingSimon Glass
Provide a way to copy over the 'other' FDT when running tests. This loads it and allocates memory for the copy, if not done already, then does the copy. Avoid using U-Boot's malloc() pool for these copies, at least for now, since they are part of the test system. Tidy up the cpu.c header files while here. Signed-off-by: Simon Glass <[email protected]>
2022-09-29sandbox: Support loading the other FDTSimon Glass
We need an 'other' FDT which is different from the control FDT, so we can check that the ofnode tests correctly handle them both. Add this to the build along with a way to read it into the sandbox state. Signed-off-by: Simon Glass <[email protected]>
2022-09-29sandbox: Add a function to load a relative file pathSimon Glass
At present this implementation is specific to loading the test FDT. We plan to load others, so create a generic function to handle this. The path is now limited to 256 characters, to simplify the code. When there is an empty argv[0] (which should not happen), the function now just uses the path as is, with no prefix. Signed-off-by: Simon Glass <[email protected]>
2022-09-29test: Drop the UT_TESTF_LIVE_OR_FLAT flagSimon Glass
This was a workaround for a rare situation. Now that it will be more common and we have a proper fix, drop the flag. We can run both types of tests in the same sandbox executable, even if the flat device tree is modified. Signed-off-by: Simon Glass <[email protected]>
2022-09-29test: Detect a change in the device treeSimon Glass
If the device tree changes during a test and we cannot restore it, mark it as such so that future tests which need the live tree are skipped. Signed-off-by: Simon Glass <[email protected]>
2022-09-29test: Make a copy of the device tree before running a testSimon Glass
When the flat device tree changes it can mess up the live tree since that uses the flat tree for its strings. This affects only a few sandbox tests which modify the device tree, but the number will grow as ofnode support for writing improves. While the control FDT is not intended to change while U-Boot is running, some tests do so. For example, the ofnode interface only supports modifying properties in the control FDT, so tests must use that. To solve this problem, keep a copy of the FDT and restore it as needed when the test is finished. The copy only happens on sandbox (except SPL builds), to reduce memory usage and because these tests are not useful on other boards. For other boards, a checksum is taken to ensure that nothing changes. It would be possible to always checksum the FDT on sandbox and only restore it if needed, but this is slightly slower than restoring it every time, at least with crc8. Move the code which checks for success to the very end, for clarity. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Drop the const from ofnodeSimon Glass
Now that we support writing to ofnodes, the const is not accurate. Drop it to avoid undesirable casting. Also drop the ofnode_to_npw() which is now the same as ofnode_to_np(). Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Support writing a property to an empty nodeSimon Glass
At present this does not work with livetree. Fix it and add a test. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Allow adding ofnode subnodesSimon Glass
Add this feature to the ofnode interface, supporting both livetree and flattree. If the node exists it is returned, along with a -EEXIST error. Update the functions it calls to handle this too. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Document the livetree structures properlySimon Glass
Clarify the data structure so it is easier for people to understand, particularly the corner cases. Signed-off-by: Simon Glass <[email protected]>
2022-09-29test: Support testing malloc() failuresSimon Glass
It is helpful to test that out-of-memory checks work correctly in code that calls malloc(). Add a simple way to force failure after a given number of malloc() calls. Fix a header guard to avoid a build error on sandbox_vpl. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Sean Anderson <[email protected]>
2022-09-29test: Fix missing livetree test runsSimon Glass
At present the live tree tests are not run on sandbox. This bug is in two parts, with a duplicate flag value and incorrect logic in the test runner. This was not noticed because the bug was fixed in a later commit and does not cause test failures. Fix this. Fixes: 7b1dfc9fd7e ("dm: core: Prepare for updating the device tree with ofnode") Signed-off-by: Simon Glass <[email protected]>
2022-09-29event: Pass the images to EVT_FT_FIXUPSimon Glass
Pass the boot images along as well, in case the fixups need to look at them. Signed-off-by: Simon Glass <[email protected]>
2022-09-29dm: core: Pass a root node to of_find_node_by_phandle()Simon Glass
This function currently assumes that the control FDT is used. Update it to allow a root node to be passed, so it can work with any tree. Also add a comment to ofnode_get_by_phandle() so that its purpose is clear. Signed-off-by: Simon Glass <[email protected]>
2022-09-29event: Allow multiple spy declarations for each eventSimon Glass
At present only one spy is allowed per event. Update the naming to allow more than one, since some need this flexibility, e.g. the EVT_FT_FIXUP event. Signed-off-by: Simon Glass <[email protected]>
2022-09-29event: Fix a typo in the EVENT helpSimon Glass
Fix the help message. Signed-off-by: Simon Glass <[email protected]>
2022-09-29sandbox: power: Update PMIC driver to use logSimon Glass
Use the log functions instead of pr_...() so we can avoid using __func__. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Jaehoon Chung <[email protected]>
2022-09-29log: update the comment for log_msg_ret()Simon Glass
Add some advice on string size here. Signed-off-by: Simon Glass <[email protected]>
2022-09-29treewide: Drop image_header_t typedefSimon Glass
This is not needed and we should avoid typedefs. Use the struct instead and rename it to indicate that it really is a legacy struct. Signed-off-by: Simon Glass <[email protected]>
2022-09-29treewide: Drop image_info_t typedefSimon Glass
This is not needed and we should avoid typedefs. Use the struct instead. Signed-off-by: Simon Glass <[email protected]>
2022-09-29treewide: Drop bootm_headers_t typedefSimon Glass
This is not needed and we should avoid typedefs. Use the struct instead. Signed-off-by: Simon Glass <[email protected]>
2022-09-29image: Fix BOOTM_STATE valuesSimon Glass
Tidy up the code style for these. Signed-off-by: Simon Glass <[email protected]>
2022-09-29Merge branch '2022-09-29-assorted-fixes'Tom Rini
- Assorted fixes we want to include before the release.
2022-09-29board_r: Relocate OF_EMBED if NEEDS_MANUAL_RELOC onlyPierre-Clément Tosi
When the embedded device tree is pointed to by the __dtb_dt_*begin symbols, it seems to be covered by the early relocation code and doesn't need to be manually patched. Cc: Simon Glass <[email protected]> Signed-off-by: Pierre-Clément Tosi <[email protected]>
2022-09-29pci: Remove duplicate PCI_REGION_IO / "io" linePali Rohár
Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Bin Meng <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-09-29tools: env: Fix missing closedir in ubi_get_volnum_by_nameMiaoqian Lin
The function calls opendir() but missing the corresponding closedir() before exit the function. Add missing closedir() to fix it. Signed-off-by: Miaoqian Lin <[email protected]>