summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2023-01-19 09:41:54 -0500
committerTom Rini <[email protected]>2023-01-19 09:41:54 -0500
commit7aec35be4b5fa7aabc0ece03dc8825495d86a1be (patch)
tree483d9f85e8184cb91f00e3345391bff13eee580a /boot
parent5b958dea5c678dbdb2aeb6ac3c0c8cc8dfea065c (diff)
parentace75d642fa71034b248cde30709c79e06c52d61 (diff)
Merge branch '2022-01-18-assorted-updates'
- A few TI platform fixes, compression test cleanup and zstd update, npcm7xx update, add "part type" subcommand, VBE bugfix on some platforms, cleanup EVENT related Kconfig option logic (and fix some platforms), other minor cleanups.
Diffstat (limited to 'boot')
-rw-r--r--boot/Kconfig3
-rw-r--r--boot/vbe_simple_os.c16
2 files changed, 15 insertions, 4 deletions
diff --git a/boot/Kconfig b/boot/Kconfig
index 36ccbf6b542..48fa15e5645 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -474,6 +474,7 @@ config BOOTMETH_VBE
depends on FIT
default y
select BOOTMETH_GLOBAL
+ select EVENT
help
Enables support for VBE boot. This is a standard boot method which
supports selection of various firmware components, seleciton of an OS to
@@ -482,6 +483,7 @@ config BOOTMETH_VBE
config SPL_BOOTMETH_VBE
bool "Bootdev support for Verified Boot for Embedded (SPL)"
depends on SPL && FIT
+ select EVENT
default y if VPL
help
Enables support for VBE boot. This is a standard boot method which
@@ -491,6 +493,7 @@ config SPL_BOOTMETH_VBE
config VPL_BOOTMETH_VBE
bool "Bootdev support for Verified Boot for Embedded (VPL)"
depends on VPL && FIT
+ select EVENT
default y
help
Enables support for VBE boot. This is a standard boot method which
diff --git a/boot/vbe_simple_os.c b/boot/vbe_simple_os.c
index b2041a95a30..8c641ec07e2 100644
--- a/boot/vbe_simple_os.c
+++ b/boot/vbe_simple_os.c
@@ -72,6 +72,18 @@ static int bootmeth_vbe_simple_ft_fixup(void *ctx, struct event *event)
chosen = oftree_path(tree, "/chosen");
if (!ofnode_valid(chosen))
continue;
+
+ ret = device_probe(dev);
+ if (ret) {
+ /*
+ * This should become an error when VBE is updated to
+ * only bind this device when a node exists
+ */
+ log_debug("VBE device '%s' failed to probe (err=%d)",
+ dev->name, ret);
+ return 0;
+ }
+
ret = ofnode_add_subnode(chosen, "fwupd", &node);
if (ret && ret != -EEXIST)
return log_msg_ret("fwu", ret);
@@ -80,10 +92,6 @@ static int bootmeth_vbe_simple_ft_fixup(void *ctx, struct event *event)
if (ret && ret != -EEXIST)
return log_msg_ret("dev", ret);
- ret = device_probe(dev);
- if (ret)
- return log_msg_ret("probe", ret);
-
/* Copy over the vbe properties for fwupd */
log_debug("Fixing up: %s\n", dev->name);
ret = ofnode_copy_props(dev_ofnode(dev), subnode);