- Mar 12, 2021
-
-
In an effort to make use of a common test runner, use ut_run_test() directly to run driver model tests. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Instead of having a separate function for running driver model tests, use the common one. Make the pre/post-run functions private since we don't need these outside of test-main.c Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Add a function to handle the preparation for running a test and the post-test clean-up. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Move this function into the common test runner and rename it to dm_test_post_run() so that its purpose is clear. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Move this function into test-main so that all the init is in one place. Rename it so that its purpose is clearer. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Driver model is a core part of U-Boot. We don't really need to have a separate test structure for the driver model tests and it makes it harder to write a test if you have to think about which type of test it is. Subsume the fields from struct dm_test_state into struct unit_test_state and delete the former. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
For driver model tests we want to reinit the data structures so that everything is in a known state before the test runs. This avoids one test changing something that breaks a subsequent tests. Move the call for this into test_pre_run(). Signed-off-by:
Simon Glass <sjg@chromium.org>
-
This allows delays to be skipped in sandbox tests. Move it to the common pre-init function. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
We already have a function for silencing the console during tests. Use this from test_pre_run() and drop this code from the driver model tests. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
This is not needed now. Drop it. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Move this step over to the pre-run function. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Move this step over to the pre-run function. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Move this step over to the pre-run function. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Ultimately we want to get rid of the special driver model test init and use test_pre_run() and test_post_run() for all tests. As a first step, use those function to handle console recording. For now we need a special case for setting uts->start, but that wil go away once all init is in one place. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Split out the test preparation into a separation function before expanding it. Add a post-run function as well, currently empty. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Add a new test runner that will eventually be able to run any test. For now, have it run the 'command' unit tests, so that the functionality in cmd_ut_category() moves into it. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
This is the main test function for driver model but not for other tests. Rename the file and the function so this is clear. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Add a flag for driver model tests, so we can do special processing for them. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
This prefix should be for setexpr, not mem. This means that trying to select just these tests to run does not work. Fix it. For some reason this provokes an assertion failure due to memory not being freed. Move the env_set() in setexpr_test_str() to before the malloc() heap size size is recorded and disable the rest in setexpr_test_str_oper(). Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Add a few notes about the sandbox_spl tests, since they are special. Signed-off-by:
Simon Glass <sjg@chromium.org> Acked-by:
Pratyush Yadav <p.yadav@ti.com>
-
Add details about how to run a sandbox test directly, without using pytest. This is more convenient for rapid development, since it is faster and allows easier use of a debugger. Also mention sandbox_flattree as an example of the different sandbox builds available. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
This was inadvertently disabled after a recent change. Re-enable it. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
This message is annoying since it is only useful for testing. Drop it and update the test to cope. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Add a comment about this option in the documentation. Also mention the script that runs these combinations. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Heinrich Schuchardt <xypron.glpk@gmx.de>
-
Tweak this so the output looks a little better. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Heinrich Schuchardt <xypron.glpk@gmx.de>
-
With of-platdata we always have a dtv struct that holds the platform data provided by the driver_info record. However, this struct can be empty if there are no actual devicetree properties provided. The upshot of empty platform data is that it will end up as a zero-size member in the BSS section, which is fine. But if the driver specifies plat_auto then it expects the correct amount of space to be allocated. At present this does not happen, since device_bind() assumes that the platform-data size will always be >0. As a result we end up not allocating the space and just use the BSS region, overwriting whatever other contents are present. Fix this by removing the condition that platform data be non-empty, always allocating space if requested. This fixes a strange bug that has been lurking since of-platdata was implemented. It has likely never been noticed since devices normally have at least some devicetree properties, BSS is seldom used on SPL, the dtv structs are normally at the end of bss and the overwriting only happens if a driver changes its platform data. It was discovered using sandbox_spl, which exercises more features than a normal board might, and the critical global_data variable 'gd' happened to be at the end of BSS. Fixes: 9fa28190 ("dm: core: Expand platdata for of-platdata devices") Signed-off-by:
Simon Glass <sjg@chromium.org>
-
- Mar 04, 2021
-
-
https://gitlab.denx.de/u-boot/custodians/u-boot-videoTom Rini authored
- convert sunxi_display to DM_VIDEO
-
Tom Rini authored
- GPIO uclass improvements
-
- Mar 03, 2021
-
-
Using the internal vs. external pull resistors it is possible to get 27 different combinations from 3 strapping pins. Add an implementation of this. This involves updating the sandbox GPIO driver to model external and (weaker) internal pull resistors. The get_value() method now takes account of what is driving a pin: sandbox: GPIOD_EXT_DRIVEN - in which case GPIO_EXT_HIGH provides the value outside source - in which case GPIO_EXT_PULL_UP/DOWN indicates the external state and we work the final state using those flags and the internal GPIOD_PULL_UP/DOWN flags Of course the outside source does not really exist in sandbox. We are just modelling it for test purpose. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
This uses log_debug(), etc. but does not define the category. Fix this. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Add a new flag to keep track of whether sandbox is driving the pin, or whether it is expecting an input signal. If it is driving, then the value of the pin is the value being driven (0 or 1). If not driving, then we consider the value 0, since we don't currently handle things like pull-ups yet. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com>
-
We don't need to implement direction_input() and direction_output() anymore. Drop them and use update_flags() instead. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Update this driver to use the common method of putting the driver operations in an 'ops' variable install of calling gpio_get_ops() repeatedly. Make it const since operations do not change. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com>
-
The new update_flags() method is more flexible since it allows the driver to see the full flags all at once. Use that in preference to these two functions. Add comments to that effect. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com>
-
It is convenient to be able to adjust some of the flags for a GPIO while leaving others alone. Add a function for this. Update dm_gpio_set_dir_flags() to make use of this. Also update dm_gpio_set_value() to use this also, since this allows the open-drain / open-source features to be implemented directly in the driver, rather than using the uclass workaround. Update the sandbox tests accordingly. This involves a lot of changes to dm_test_gpio_opendrain_opensource() since we no-longer have the direciion being reported differently depending on the open drain/open source flags. Also update the STM32 drivers to let the uclass handle the active low/high logic. Drop the GPIOD_FLAGS_OUTPUT() macro which is no-longer used. Signed-off-by:
Simon Glass <sjg@chromium.org> Tested-by:
Kory Maincent <kory.maincent@bootlin.com> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com> Tested-by:
Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com> Tested-by:
Patrick Delaunay <patrick.delaunay@foss.st.com>
-
Allow this function to see all flags, including the internal sandbox ones. This allows the tests to fully control the behaviour of the driver. To make this work, move the setting of GPIOD_EXT_HIGH -to where the flags are updated via driver model, rather than the sandbox 'back door'. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com>
-
At present we have the concept of a pin's external value. This is what is used when getting the value of a pin. But we still set the GPIOD_IS_OUT_ACTIVE flag when changing the value. This is not actually correct, since if the pin changes from output to input, the external value need not change. Adjust the logic for this difference. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com>
-
At present with the sandbox GPIO driver it is not possible to change the value of GPIOD_IS_OUT_ACTIVE unless the GPIO is an output. This makes it hard to test changing the flags since we need to be aware of the internal workings of the driver. The feature is designed to aid testing. Split this feature out into a separate sandbox-specific flag, so that the flags can change unimpeded. This will make it easier to allow updating the flags in a future patch. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Adjust the terminology in this driver to reflect that fact that all flags are handled, not just direction flags. Create a new access function to get the full GPIO state, not just the direction flags. Drop the static invalid_dir_flags since we can rely on a segfault if something is wrong. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com>
-
This function can be used to get any flags, not just direction flags. Rename it to avoid confusion. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by:
Pratyush Yadav <p.yadav@ti.com>
-