[v3 2/2] event: Correct dependencies on the EVENT framework
Tom Rini
trini at konsulko.com
Mon Jan 16 21:46:49 CET 2023
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 <takahiro.akashi at linaro.org>
Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
Reported-by: Oliver Graute <Oliver.Graute at kococonnector.com>
Reported-by: Francesco Dolcini <francesco.dolcini at toradex.com>
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 <trini at konsulko.com>
Tested-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Fabio Estevam <festevam at denx.de>
---
Changes in v3:
- Drop guards around when EFI_LOADER selects DM_EVENT / EVENT_DYNAMIC,
keep comment.
Changes in v2:
- Collect tags
- Reword the commit message a little, reword and comment on the
EFI_LOADER case.
- Add the rest of the VBE cases I had forgotten.
---
arch/Kconfig | 6 +++---
arch/arm/Kconfig | 9 ++++-----
arch/arm/mach-omap2/Kconfig | 3 +++
arch/mips/Kconfig | 2 +-
arch/powerpc/cpu/mpc85xx/Kconfig | 1 +
arch/x86/Kconfig | 1 +
arch/x86/cpu/baytrail/Kconfig | 1 +
arch/x86/cpu/broadwell/Kconfig | 1 +
arch/x86/cpu/ivybridge/Kconfig | 1 +
arch/x86/cpu/quark/Kconfig | 1 +
board/google/Kconfig | 1 +
board/keymile/Kconfig | 1 +
boot/Kconfig | 3 +++
cmd/Kconfig | 1 +
common/Kconfig | 17 ++++++++---------
drivers/core/Kconfig | 9 +++++----
drivers/cpu/Kconfig | 1 -
lib/efi_loader/Kconfig | 2 +-
18 files changed, 37 insertions(+), 24 deletions(-)
diff --git a/arch/Kconfig b/arch/Kconfig
index 8fb87b7d857c..d30676ae817b 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -93,7 +93,7 @@ config NIOS2
bool "Nios II architecture"
select CPU
select DM
- imply DM_EVENT
+ select DM_EVENT
select OF_CONTROL
select SUPPORT_OF_CONTROL
imply CMD_DM
@@ -111,9 +111,9 @@ config RISCV
select SUPPORT_OF_CONTROL
select OF_CONTROL
select DM
+ select DM_EVENT
imply SPL_SEPARATE_BSS if SPL
imply DM_SERIAL
- imply DM_EVENT
imply DM_MMC
imply DM_SPI
imply DM_SPI_FLASH
@@ -136,6 +136,7 @@ config SANDBOX
select BZIP2
select CMD_POWEROFF
select DM
+ select DM_EVENT
select DM_FUZZING_ENGINE
select DM_GPIO
select DM_I2C
@@ -240,7 +241,6 @@ config X86
imply CMD_SF
imply CMD_SF_TEST
imply CMD_ZBOOT
- imply DM_EVENT
imply DM_GPIO
imply DM_KEYBOARD
imply DM_MMC
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index bbf1d5227b3f..c9a44ebc2213 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -778,7 +778,6 @@ config ARCH_OMAP2PLUS
select SUPPORT_SPL
imply TI_SYSC if DM && OF_CONTROL
imply FIT
- imply DM_EVENT
imply SPL_SEPARATE_BSS
config ARCH_MESON
@@ -823,11 +822,11 @@ config ARCH_IMX8
select SYS_FSL_SEC_COMPAT_4
select SYS_FSL_SEC_LE
select DM
+ select DM_EVENT
select GPIO_EXTRA_HEADER
select MACH_IMX
select OF_CONTROL
select ENABLE_ARM_SOC_BOOT0_HOOK
- imply DM_EVENT
config ARCH_IMX8M
bool "NXP i.MX8M platform"
@@ -839,14 +838,15 @@ config ARCH_IMX8M
select SYS_FSL_SEC_LE
select SYS_I2C_MXC
select DM
+ select DM_EVENT if CLK
select SUPPORT_SPL
imply CMD_DM
- imply DM_EVENT
config ARCH_IMX8ULP
bool "NXP i.MX8ULP platform"
select ARM64
select DM
+ select DM_EVENT
select MACH_IMX
select OF_CONTROL
select SUPPORT_SPL
@@ -854,19 +854,18 @@ config ARCH_IMX8ULP
select MISC
select IMX_SENTINEL
imply CMD_DM
- imply DM_EVENT
config ARCH_IMX9
bool "NXP i.MX9 platform"
select ARM64
select DM
+ select DM_EVENT
select MACH_IMX
select SUPPORT_SPL
select GPIO_EXTRA_HEADER
select MISC
select IMX_SENTINEL
imply CMD_DM
- imply DM_EVENT
config ARCH_IMXRT
bool "NXP i.MXRT platform"
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 1db71df27212..309b967b0dd5 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -31,6 +31,7 @@ config OMAP34XX
config OMAP44XX
bool "OMAP44XX SoC"
+ select DM_EVENT
select SPL_USE_TINY_PRINTF
select SPL_SYS_NO_VECTOR_TABLE if SPL
imply NAND_OMAP_ELM
@@ -55,6 +56,7 @@ config OMAP54XX
bool "OMAP54XX SoC"
select ARM_CORTEX_A15_CVE_2017_5715
select ARM_ERRATA_798870
+ select DM_EVENT
select SYS_THUMB_BUILD
imply NAND_OMAP_ELM
imply NAND_OMAP_GPMC
@@ -111,6 +113,7 @@ config AM43XX
config AM33XX
bool "AM33XX SoC"
select ARM_CORTEX_A8_CVE_2017_5715
+ select DM_EVENT
select SPECIFY_CONSOLE_INDEX
imply NAND_OMAP_ELM
imply NAND_OMAP_GPMC
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 23142bd2700d..569f5f48bc6c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -121,6 +121,7 @@ config MACH_PIC32
bool "Support Microchip PIC32"
select HAS_FIXED_TIMER_FREQUENCY
select DM
+ select DM_EVENT
select OF_CONTROL
imply CMD_DM
@@ -128,7 +129,6 @@ config TARGET_BOSTON
bool "Support Boston"
select HAS_FIXED_TIMER_FREQUENCY
select DM
- imply DM_EVENT
select DM_SERIAL
select MIPS_CM
select SYS_CACHE_SHIFT_6
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index 1b180481a483..2c54a9e2120f 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -248,6 +248,7 @@ config TARGET_KMP204X
config TARGET_KMCENT2
bool "Support kmcent2"
select VENDOR_KM
+ select EVENT
select FSL_CORENET
select SYS_DPAA_FMAN
select SYS_DPAA_PME
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 93f1c77be3f3..07be5cd05ec0 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -395,6 +395,7 @@ config FSP_VERSION1
config FSP_VERSION2
bool "FSP version 2.x"
+ select DM_EVENT
help
This covers versions 2.0 and 2.1. See here for details:
https://github.com/IntelFsp/fsp/wiki
diff --git a/arch/x86/cpu/baytrail/Kconfig b/arch/x86/cpu/baytrail/Kconfig
index d2c3473d6abf..a8efea8a3413 100644
--- a/arch/x86/cpu/baytrail/Kconfig
+++ b/arch/x86/cpu/baytrail/Kconfig
@@ -7,6 +7,7 @@ config INTEL_BAYTRAIL
select HAVE_FSP
select ARCH_MISC_INIT
select CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED
+ select DM_EVENT
imply HAVE_INTEL_ME
imply ENABLE_MRC_CACHE
imply AHCI_PCI
diff --git a/arch/x86/cpu/broadwell/Kconfig b/arch/x86/cpu/broadwell/Kconfig
index 5b015c89d950..39deda364479 100644
--- a/arch/x86/cpu/broadwell/Kconfig
+++ b/arch/x86/cpu/broadwell/Kconfig
@@ -6,6 +6,7 @@
config INTEL_BROADWELL
bool
select CACHE_MRC_BIN
+ select DM_EVENT
select ARCH_EARLY_INIT_R
imply HAVE_INTEL_ME
imply ENABLE_MRC_CACHE
diff --git a/arch/x86/cpu/ivybridge/Kconfig b/arch/x86/cpu/ivybridge/Kconfig
index be3ef5e5d8f8..704f145adf88 100644
--- a/arch/x86/cpu/ivybridge/Kconfig
+++ b/arch/x86/cpu/ivybridge/Kconfig
@@ -8,6 +8,7 @@
config NORTHBRIDGE_INTEL_IVYBRIDGE
bool
select CACHE_MRC_BIN if HAVE_MRC
+ select DM_EVENT
imply HAVE_INTEL_ME
imply ENABLE_MRC_CACHE
imply AHCI_PCI
diff --git a/arch/x86/cpu/quark/Kconfig b/arch/x86/cpu/quark/Kconfig
index 61bb5792c868..0d4008a31f4c 100644
--- a/arch/x86/cpu/quark/Kconfig
+++ b/arch/x86/cpu/quark/Kconfig
@@ -7,6 +7,7 @@ config INTEL_QUARK
select HAVE_RMU
select ARCH_EARLY_INIT_R
select ARCH_MISC_INIT
+ select DM_EVENT
imply ENABLE_MRC_CACHE
imply ETH_DESIGNWARE
imply ICH_SPI
diff --git a/board/google/Kconfig b/board/google/Kconfig
index 0474b4e69384..a0f1a6097641 100644
--- a/board/google/Kconfig
+++ b/board/google/Kconfig
@@ -18,6 +18,7 @@ choice
config TARGET_CHROMEBOOK_CORAL
bool "Chromebook coral"
select BIOSEMU
+ select EVENT
help
This is a range of Intel-based laptops released in 2018. They use an
Intel Apollo Lake SoC. The design supports WiFi, 4GB to 16GB of
diff --git a/board/keymile/Kconfig b/board/keymile/Kconfig
index e5d7c80a869d..bf899d005c46 100644
--- a/board/keymile/Kconfig
+++ b/board/keymile/Kconfig
@@ -124,6 +124,7 @@ config SYS_IVM_EEPROM_PAGE_LEN
config PG_WCOM_UBOOT_UPDATE_SUPPORTED
bool "Enable U-boot Field Fail-Safe Update Functionality"
+ select EVENT
default n
help
Indicates that field fail-safe u-boot update is supported.
diff --git a/boot/Kconfig b/boot/Kconfig
index 30bc182fcd5c..daa01a10ebdc 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/cmd/Kconfig b/cmd/Kconfig
index b2aefae9cb70..4fe2c75de256 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -2622,6 +2622,7 @@ config CMD_DIAG
config CMD_EVENT
bool "event - Show information about events"
+ depends on EVENT
default y if EVENT_DEBUG
help
This enables the 'event' command which provides information about
diff --git a/common/Kconfig b/common/Kconfig
index 439b2198f605..1c9f4774ba7a 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -604,24 +604,23 @@ config CYCLIC_MAX_CPU_TIME_US
endif # CYCLIC
config EVENT
- bool "General-purpose event-handling mechanism"
- default y if SANDBOX
+ bool
help
- This enables sending and processing of events, to allow interested
- parties to be alerted when something happens. This is an attempt to
- stem the flow of weak functions, hooks, functions in board_f.c
- and board_r.c and the Kconfig options below.
+ This adds a framework for general purpose sending and processing of
+ events, to allow interested parties to be alerted when something
+ happens. This is an attempt to stem the flow of weak functions,
+ hooks, functions in board_f.c and board_r.c and the Kconfig options
+ below.
See doc/develop/event.rst for more information.
if EVENT
config EVENT_DYNAMIC
- bool "Support event registration at runtime"
- default y if SANDBOX
+ bool
help
Enable this to support adding an event spy at runtime, without adding
- it to the EVENT_SPy() linker list. This increases code size slightly
+ it to the EVENT_SPY() linker list. This increases code size slightly
but provides more flexibility for boards and subsystems that need it.
config EVENT_DEBUG
diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig
index 8fde77c23ee0..6fc8854b574b 100644
--- a/drivers/core/Kconfig
+++ b/drivers/core/Kconfig
@@ -109,13 +109,14 @@ config DM_DEVICE_REMOVE
causes USB host controllers to not be stopped when booting the OS.
config DM_EVENT
- bool "Support events with driver model"
- depends on DM && EVENT
- default y if SANDBOX
+ bool
+ depends on DM
+ select EVENT
help
This enables support for generating events related to driver model
operations, such as prbing or removing a device. Subsystems can
- register a 'spy' function that is called when the event occurs.
+ register a 'spy' function that is called when the event occurs. Such
+ subsystems must select this option.
config SPL_DM_DEVICE_REMOVE
bool "Support device removal in SPL"
diff --git a/drivers/cpu/Kconfig b/drivers/cpu/Kconfig
index 21874335c873..3bf04105e5e9 100644
--- a/drivers/cpu/Kconfig
+++ b/drivers/cpu/Kconfig
@@ -23,7 +23,6 @@ config CPU_RISCV
config CPU_MICROBLAZE
bool "Enable Microblaze CPU driver"
depends on CPU && MICROBLAZE
- select EVENT
select DM_EVENT
select XILINX_MICROBLAZE0_PVR
help
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index b498c72206fd..b630d88ef9e2 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -14,8 +14,8 @@ config EFI_LOADER
depends on !EFI_APP
default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8
select CHARSET
+ # We need to send DM events, dynamically, in the EFI block driver
select DM_EVENT
- select EVENT
select EVENT_DYNAMIC
select LIB_UUID
imply PARTITION_UUIDS
--
2.25.1
More information about the U-Boot
mailing list