]> git.baikalelectronics.ru Git - uboot.git/commitdiff
sandbox: Allow SPI flash bootdevs to be disabled for tests
authorSimon Glass <sjg@chromium.org>
Tue, 17 Jan 2023 17:48:02 +0000 (10:48 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 23 Jan 2023 23:11:41 +0000 (18:11 -0500)
Most tests don't want these and they can create a lot of noise. Add a way
to disable them. Use that in tests, with a flag provided to enable them
for tests that need this feature.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/state.c
arch/sandbox/include/asm/state.h
arch/sandbox/include/asm/test.h
include/test/test.h
test/test-main.c

index 267f280df14f6d80b8d5832172fb4ddad4343ef8..69da378ab59ba8dd9dc2aa67b83e5dc3918c9599 100644 (file)
@@ -460,6 +460,20 @@ bool sandbox_eth_enabled(void)
        return !state->disable_eth;
 }
 
+void sandbox_sf_set_enable_bootdevs(bool enable)
+{
+       struct sandbox_state *state = state_get_current();
+
+       state->disable_sf_bootdevs = !enable;
+}
+
+bool sandbox_sf_bootdev_enabled(void)
+{
+       struct sandbox_state *state = state_get_current();
+
+       return !state->disable_sf_bootdevs;
+}
+
 int state_init(void)
 {
        state = &main_state;
index f125fb87af71c8a802dac3779a21b214f1201755..59a20595f51d2e3ca2b87de79ecb5f3c95c0acc6 100644 (file)
@@ -97,6 +97,7 @@ struct sandbox_state {
        bool handle_signals;            /* Handle signals within sandbox */
        bool autoboot_keyed;            /* Use keyed-autoboot feature */
        bool disable_eth;               /* Disable Ethernet devices */
+       bool disable_sf_bootdevs;       /* Don't bind SPI flash bootdevs */
 
        /* Pointer to information for each SPI bus/cs */
        struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS]
index 1c522e38f3d66f6c1fe9fe276aef3f13beba47ba..4853dc948f3f12247e61e050256983300408b77d 100644 (file)
@@ -360,4 +360,18 @@ void sandbox_set_eth_enable(bool enable);
  */
 bool sandbox_eth_enabled(void);
 
+/**
+ * sandbox_sf_bootdev_enabled() - Check if SPI flash bootdevs should be bound
+ *
+ * Returns: true if sandbox should bind bootdevs for SPI flash, false if not
+ */
+bool sandbox_sf_bootdev_enabled(void);
+
+/**
+ * sandbox_sf_set_enable_bootdevs() - Enable / disable the SPI flash bootdevs
+ *
+ * @enable: true to bind the SPI flash bootdevs, false to skip
+ */
+void sandbox_sf_set_enable_bootdevs(bool enable);
+
 #endif
index 752897cf06fbaf02a7d64e8b597d6dbc37e9d41a..838e3ce8a8f394493bb0b8843ed8aa0ec0c35086 100644 (file)
@@ -72,6 +72,7 @@ enum {
         */
        UT_TESTF_MANUAL         = BIT(8),
        UT_TESTF_ETH_BOOTDEV    = BIT(9),       /* enable Ethernet bootdevs */
+       UT_TESTF_SF_BOOTDEV     = BIT(10),      /* enable SPI flash bootdevs */
 };
 
 /**
@@ -222,4 +223,22 @@ static inline bool test_eth_bootdev_enabled(void)
        return enabled;
 }
 
+/* Allow SPI flash bootdev to be ignored for testing purposes */
+static inline bool test_sf_bootdev_enabled(void)
+{
+       bool enabled = true;
+
+#ifdef CONFIG_SANDBOX
+       enabled = sandbox_sf_bootdev_enabled();
+#endif
+       return enabled;
+}
+
+static inline void test_sf_set_enable_bootdevs(bool enable)
+{
+#ifdef CONFIG_SANDBOX
+       sandbox_sf_set_enable_bootdevs(enable);
+#endif
+}
+
 #endif /* __TEST_TEST_H */
index 9d0f6643d5ea6debb328f5a279493a029affe651..ea959f4e85957760af15fbf022b85b85463a6ca3 100644 (file)
@@ -309,6 +309,7 @@ static int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
                 * only set this if we know the ethernet uclass will be created
                 */
                eth_set_enable_bootdevs(test->flags & UT_TESTF_ETH_BOOTDEV);
+               test_sf_set_enable_bootdevs(test->flags & UT_TESTF_SF_BOOTDEV);
                ut_assertok(dm_extended_scan(false));
        }