From 448e2b6327d0498d58506d6f4e4b2a325ab7cca0 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Mon, 16 Jan 2023 15:46:49 -0500 Subject: event: Correct dependencies on the EVENT framework The event framework is just that, a framework. Enabling it by itself does nothing, so we shouldn't ask the user about it. Reword (and correct typos) around this the option and help text. This also applies to DM_EVENT and EVENT_DYNAMIC. Only EVENT_DEBUG and CMD_EVENT should be visible to the user to select, when EVENT is selected. With this, it's time to address the larger problems. When functionality uses events, typically via EVENT_SPY, the appropriate framework then must be select'd and NOT imply'd. As the functionality will cease to work (and so, platforms will fail to boot) this is non-optional and where select is appropriate. Audit the current users of EVENT_SPY to have a more fine-grained approach to select'ing the framework where used. Also ensure the current users of event_register and also select EVENT_DYNAMIC. Cc: AKASHI Takahiro Cc: Heinrich Schuchardt Reported-by: Oliver Graute Reported-by: Francesco Dolcini Fixes: 7fe32b3442f0 ("event: Convert arch_cpu_init_dm() to use events") Fixes: 42fdcebf859f ("event: Convert misc_init_f() to use events") Fixes: c5ef2025579e ("dm: fix DM_EVENT dependencies") Signed-off-by: Tom Rini Tested-by: Simon Glass Reviewed-by: Simon Glass Reviewed-by: Fabio Estevam --- boot/Kconfig | 3 +++ 1 file changed, 3 insertions(+) (limited to 'boot') 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 -- cgit v1.3.1 From 635bb31dad88f852b90376dfa38250b842cc5ba4 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 12 Jan 2023 16:48:54 -0700 Subject: vbe: Allow probing the VBE bootmeth to fail in OS fixup This device is created when there are no bootmeths defined in the device tree. But it cannot be probed without a device tree node. For now, ignore a probe failure. Signed-off-by: Simon Glass Reported-by: Karsten Merker Suggested-by: Heinrich Schuchardt Fixes: a56f663f0707 ("vbe: Add info about the VBE device to the fwupd node") Tested-by: Vagrant Cascadian Tested-by: Karsten Merker --- boot/vbe_simple_os.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'boot') 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); -- cgit v1.3.1