[PATCH v2 06/39] bootstd: Create a function to reset USB
Heinrich Schuchardt
xypron.glpk at gmx.de
Wed Aug 7 03:56:31 CEST 2024
On 06.08.24 14:58, Simon Glass wrote:
> Set up a function for this, since it needs to be used from multiple test
> files.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
> test/boot/bootdev.c | 19 ++++++-------------
> test/boot/bootstd_common.c | 12 ++++++++++++
> test/boot/bootstd_common.h | 8 ++++++++
> 3 files changed, 26 insertions(+), 13 deletions(-)
>
> diff --git a/test/boot/bootdev.c b/test/boot/bootdev.c
> index 1bf5929c396..de16a51956d 100644
> --- a/test/boot/bootdev.c
> +++ b/test/boot/bootdev.c
> @@ -16,13 +16,6 @@
> #include <test/ut.h>
> #include "bootstd_common.h"
>
> -/* Allow reseting the USB-started flag */
> -#if defined(CONFIG_USB_HOST) || defined(CONFIG_USB_GADGET)
> -extern bool usb_started;
> -#else
> -#include <usb.h>
> -#endif
> -
> /* Check 'bootdev list' command */
> static int bootdev_test_cmd_list(struct unit_test_state *uts)
> {
> @@ -201,7 +194,7 @@ static int bootdev_test_order(struct unit_test_state *uts)
> test_set_skip_delays(true);
>
> /* Start up USB which gives us three additional bootdevs */
> - usb_started = false;
> + bootstd_reset_usb();
> ut_assertok(run_command("usb start", 0));
>
> /*
> @@ -317,7 +310,7 @@ static int bootdev_test_prio(struct unit_test_state *uts)
> test_set_eth_enable(false);
>
> /* Start up USB which gives us three additional bootdevs */
> - usb_started = false;
> + bootstd_reset_usb();
> ut_assertok(run_command("usb start", 0));
>
> ut_assertok(bootstd_test_drop_bootdev_order(uts));
> @@ -357,7 +350,7 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
> {
> struct bootstd_priv *std;
>
> - usb_started = false;
> + bootstd_reset_usb();
> test_set_skip_delays(true);
>
> /* get access to the used hunters */
> @@ -398,7 +391,7 @@ static int bootdev_test_cmd_hunt(struct unit_test_state *uts)
> struct bootstd_priv *std;
>
> test_set_skip_delays(true);
> - usb_started = false;
> + bootstd_reset_usb();
>
> /* get access to the used hunters */
> ut_assertok(bootstd_get_priv(&std));
> @@ -527,7 +520,7 @@ BOOTSTD_TEST(bootdev_test_bootable, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
> /* Check hunting for bootdev of a particular priority */
> static int bootdev_test_hunt_prio(struct unit_test_state *uts)
> {
> - usb_started = false;
> + bootstd_reset_usb();
> test_set_skip_delays(true);
>
> console_record_reset_enable();
> @@ -556,7 +549,7 @@ static int bootdev_test_hunt_label(struct unit_test_state *uts)
> struct bootstd_priv *std;
> int mflags;
>
> - usb_started = false;
> + bootstd_reset_usb();
>
> /* get access to the used hunters */
> ut_assertok(bootstd_get_priv(&std));
> diff --git a/test/boot/bootstd_common.c b/test/boot/bootstd_common.c
> index e50539500a0..ff0aff4bbe7 100644
> --- a/test/boot/bootstd_common.c
> +++ b/test/boot/bootstd_common.c
> @@ -20,6 +20,13 @@
> /* tracks whether bootstd_setup_for_tests() has been run yet */
> bool vbe_setup_done;
>
> +/* Allow resetting the USB-started flag */
> +#if defined(CONFIG_USB_HOST) || defined(CONFIG_USB_GADGET)
> +extern bool usb_started;
> +#else
> +#include <usb.h>
> +#endif
Why can't you always include usb.h which defines usb_started?
Is there a bug in usb.h?
Best regards
Heinrich
> +
> /* set up MMC for VBE tests */
> int bootstd_setup_for_tests(void)
> {
> @@ -88,6 +95,11 @@ int bootstd_test_check_mmc_hunter(struct unit_test_state *uts)
> return 0;
> }
>
> +void bootstd_reset_usb(void)
> +{
> + usb_started = false;
> +}
> +
> int do_ut_bootstd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
> {
> struct unit_test *tests = UNIT_TEST_SUITE_START(bootstd_test);
> diff --git a/test/boot/bootstd_common.h b/test/boot/bootstd_common.h
> index 4a126e43ff4..e29036c897c 100644
> --- a/test/boot/bootstd_common.h
> +++ b/test/boot/bootstd_common.h
> @@ -53,4 +53,12 @@ int bootstd_setup_for_tests(void);
> */
> int bootstd_test_check_mmc_hunter(struct unit_test_state *uts);
>
> +/**
> + * bootstd_reset_usb() - Reset the USB subsystem
> + *
> + * Resets USB so that it can be started (and scanning) again. This is useful in
> + * tests which need to use USB.
> + */
> +void bootstd_reset_usb(void);
> +
> #endif
More information about the U-Boot
mailing list