summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/sandbox/cpu/state.c30
-rw-r--r--arch/sandbox/dts/sandbox.dtsi13
-rw-r--r--arch/sandbox/dts/test.dts6
-rw-r--r--arch/sandbox/include/asm/state.h2
-rw-r--r--arch/sandbox/include/asm/test.h30
5 files changed, 68 insertions, 13 deletions
diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c
index dd7978cfced..69da378ab59 100644
--- a/arch/sandbox/cpu/state.c
+++ b/arch/sandbox/cpu/state.c
@@ -12,6 +12,7 @@
#include <os.h>
#include <asm/malloc.h>
#include <asm/state.h>
+#include <asm/test.h>
/* Main state record for the sandbox */
static struct sandbox_state main_state;
@@ -366,6 +367,7 @@ void state_reset_for_test(struct sandbox_state *state)
state->sysreset_allowed[SYSRESET_POWER_OFF] = true;
state->sysreset_allowed[SYSRESET_COLD] = true;
state->allow_memio = false;
+ sandbox_set_eth_enable(true);
memset(&state->wdt, '\0', sizeof(state->wdt));
memset(state->spi, '\0', sizeof(state->spi));
@@ -444,6 +446,34 @@ int state_load_other_fdt(const char **bufp, int *sizep)
return 0;
}
+void sandbox_set_eth_enable(bool enable)
+{
+ struct sandbox_state *state = state_get_current();
+
+ state->disable_eth = !enable;
+}
+
+bool sandbox_eth_enabled(void)
+{
+ struct sandbox_state *state = state_get_current();
+
+ 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;
diff --git a/arch/sandbox/dts/sandbox.dtsi b/arch/sandbox/dts/sandbox.dtsi
index afe598a4f56..18bf1cb5b69 100644
--- a/arch/sandbox/dts/sandbox.dtsi
+++ b/arch/sandbox/dts/sandbox.dtsi
@@ -12,19 +12,6 @@
chosen {
stdout-path = "/serial";
-
- fwupd {
- compatible = "simple-bus";
- firmware {
- compatible = "fwupd,vbe-simple";
- cur-version = "1.2.3";
- bootloader-version = "2022.01";
- storage = "mmc1";
- area-start = <0x0>;
- area-size = <0x1000000>;
- skip-offset = <0x8000>;
- };
- };
};
alarm_wdt: alarm-wdt {
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 2e580f980fc..9d96e479ca8 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -1527,12 +1527,18 @@
sandbox_virtio1 {
compatible = "sandbox,virtio1";
+ virtio-type = <4>; /* rng */
};
sandbox_virtio2 {
compatible = "sandbox,virtio2";
};
+ sandbox-virtio-blk {
+ compatible = "sandbox,virtio1";
+ virtio-type = <2>; /* block */
+ };
+
sandbox_scmi {
compatible = "sandbox,scmi-devices";
clocks = <&clk_scmi 2>, <&clk_scmi 0>;
diff --git a/arch/sandbox/include/asm/state.h b/arch/sandbox/include/asm/state.h
index 49ea483d332..59a20595f51 100644
--- a/arch/sandbox/include/asm/state.h
+++ b/arch/sandbox/include/asm/state.h
@@ -96,6 +96,8 @@ struct sandbox_state {
const char *select_unittests; /* Unit test to run */
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]
diff --git a/arch/sandbox/include/asm/test.h b/arch/sandbox/include/asm/test.h
index 568738c16d5..4853dc948f3 100644
--- a/arch/sandbox/include/asm/test.h
+++ b/arch/sandbox/include/asm/test.h
@@ -344,4 +344,34 @@ void sandbox_set_fake_efi_mgr_dev(struct udevice *dev, bool fake_dev);
*/
int sandbox_load_other_fdt(void **fdtp, int *sizep);
+/**
+ * sandbox_set_eth_enable() - Enable / disable Ethernet
+ *
+ * Allows control of whether Ethernet packets are actually send/received
+ *
+ * @enable: true to enable Ethernet, false to disable
+ */
+void sandbox_set_eth_enable(bool enable);
+
+/**
+ * sandbox_eth_enabled() - Check if Ethernet is enabled
+ *
+ * Returns: true if Ethernet is enabled on sandbox, False if not
+ */
+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