diff --git a/test/boot/Makefile b/test/boot/Makefile
index 9e9d5ae..5bb3f88 100644
--- a/test/boot/Makefile
+++ b/test/boot/Makefile
@@ -7,3 +7,4 @@
 ifdef CONFIG_OF_LIVE
 obj-$(CONFIG_BOOTMETH_VBE_SIMPLE) += vbe_simple.o
 endif
+obj-$(CONFIG_BOOTMETH_VBE) += vbe_fixup.o
diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c
index 8530523..1e8ea75 100644
--- a/test/boot/bootflow.c
+++ b/test/boot/bootflow.c
@@ -329,6 +329,8 @@
 {
 	struct udevice *dev;
 
+	if (!IS_ENABLED(CONFIG_CMD_BOOTEFI_BOOTMGR))
+		return 0;
 	ut_assertok(uclass_get_device_by_name(UCLASS_BOOTMETH, "efi_mgr",
 					      &dev));
 	sandbox_set_fake_efi_mgr_dev(dev, true);
diff --git a/test/boot/vbe_fixup.c b/test/boot/vbe_fixup.c
new file mode 100644
index 0000000..1b488e2
--- /dev/null
+++ b/test/boot/vbe_fixup.c
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Test for VBE device tree fix-ups
+ *
+ * Copyright 2022 Google LLC
+ * Written by Simon Glass <sjg@chromium.org>
+ */
+
+#include <common.h>
+#include <dm/ofnode.h>
+#include <linux/libfdt.h>
+#include <test/test.h>
+#include <test/ut.h>
+#include "bootstd_common.h"
+
+/* Basic test of reading nvdata and updating a fwupd node in the device tree */
+static int vbe_test_fixup(struct unit_test_state *uts)
+{
+	ofnode chosen, node;
+	const char *data;
+	oftree tree;
+	int size;
+
+	/*
+	 * This test works when called from test_vbe.py and it must use the
+	 * flat tree, since device tree fix-ups do not yet support live tree.
+	 */
+	if (!working_fdt)
+		return 0;
+
+	tree = oftree_from_fdt(working_fdt);
+	ut_assert(oftree_valid(tree));
+
+	chosen = oftree_path(tree, "/chosen");
+	ut_assert(ofnode_valid(chosen));
+
+	/* check the things set up for the FIT in test_vbe.py */
+	node = ofnode_find_subnode(chosen, "random");
+
+	/* ignore if this test is run on its own */
+	if (!ofnode_valid(node))
+		return 0;
+	data = ofnode_read_prop(node, "data", &size);
+	ut_asserteq(0x40, size);
+
+	node = ofnode_find_subnode(chosen, "aslr2");
+	ut_assert(ofnode_valid(node));
+	data = ofnode_read_prop(node, "data", &size);
+	ut_asserteq(4, size);
+
+	node = ofnode_find_subnode(chosen, "efi-runtime");
+	ut_assert(ofnode_valid(node));
+	data = ofnode_read_prop(node, "data", &size);
+	ut_asserteq(4, size);
+
+	return 0;
+}
+BOOTSTD_TEST(vbe_test_fixup,
+	     UT_TESTF_DM | UT_TESTF_SCAN_FDT | UT_TESTF_FLAT_TREE);
