]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
event: Correct dependencies on the EVENT framework
authorTom Rini <trini@konsulko.com>
Mon, 16 Jan 2023 20:46:49 +0000 (15:46 -0500)
committerTom Rini <trini@konsulko.com>
Wed, 18 Jan 2023 17:46:13 +0000 (12:46 -0500)
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@linaro.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reported-by: Oliver Graute <Oliver.Graute@kococonnector.com>
Reported-by: Francesco Dolcini <francesco.dolcini@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@konsulko.com>
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Fabio Estevam <festevam@denx.de>
18 files changed:
arch/Kconfig
arch/arm/Kconfig
arch/arm/mach-omap2/Kconfig
arch/mips/Kconfig
arch/powerpc/cpu/mpc85xx/Kconfig
arch/x86/Kconfig
arch/x86/cpu/baytrail/Kconfig
arch/x86/cpu/broadwell/Kconfig
arch/x86/cpu/ivybridge/Kconfig
arch/x86/cpu/quark/Kconfig
board/google/Kconfig
board/keymile/Kconfig
boot/Kconfig
cmd/Kconfig
common/Kconfig
drivers/core/Kconfig
drivers/cpu/Kconfig
lib/efi_loader/Kconfig

index 8fb87b7d857c8579b7a4b85e5e538b23d07178a0..d30676ae817bb753ba10d452119950120c27da72 100644 (file)
@@ -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
index bbf1d5227b3f2f1b3157c8ef1525aa639f362d04..c9a44ebc221364f794b2aeb54124baab36ffc7cf 100644 (file)
@@ -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"
index 1db71df272124448b537cb2247483122ed806ab0..309b967b0dd5936c52f8e535e5c7aaf8f5ae8bdc 100644 (file)
@@ -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
index 23142bd2700d5b5c997eda9287bdeb210cae7786..569f5f48bc6cce95f50d5b8d373f6bd1245ce853 100644 (file)
@@ -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
index 1b180481a483f19da42410c60d90b8611bdf9587..2c54a9e2120fd85d9e02c9a6dec56f2d09c52e0e 100644 (file)
@@ -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
index 93f1c77be3f37e79587c3d85da73369bb9ae0ebf..07be5cd05ec0f105d062da0ded2f1fa76b59bbbe 100644 (file)
@@ -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
index d2c3473d6abffab4c38ef0ded99ea514e9280465..a8efea8a3413a205fa74b9d9f22eb7bfc2bf2ed1 100644 (file)
@@ -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
index 5b015c89d950951651a4cd5ff6b290b58c5c60ba..39deda3644792906baf78943aff099366cd2638f 100644 (file)
@@ -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
index be3ef5e5d8f8a8d5d9c439decc0d14c63e6261fa..704f145adf8815b887fb713d1fe6d634930602e0 100644 (file)
@@ -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
index 61bb5792c86868c9ea096cc87bd76a0516d59419..0d4008a31f4c89d390ab21e2b5f84e67321e0548 100644 (file)
@@ -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
index 0474b4e69384eaa86f3ce1322831a19d52c5d759..a0f1a6097641e28520564a975ebdcdc879345f44 100644 (file)
@@ -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
index e5d7c80a869dff2f5a860d048123cae14fc2a632..bf899d005c4662221b40a640c5583f8027456622 100644 (file)
@@ -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.
index 36ccbf6b5428b1d74bad3ddbb824d87d591654d2..48fa15e56453de5ffc176124b3160003e70d1fa9 100644 (file)
@@ -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
index b2aefae9cb708f01a94d176b3372169132792e2d..4fe2c75de256fa6d59a715c29810be716175d55b 100644 (file)
@@ -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
index 439b2198f6056f7ac5beb2812651ffedd4786539..1c9f4774ba7a6c540a1cb8194260d478e5161c22 100644 (file)
@@ -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
index 8fde77c23ee03e2306a01322ffa32b1855036372..6fc8854b574babcfaa9add86798a61a0aafc62d8 100644 (file)
@@ -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"
index 21874335c873d89d3f23502f27ede39de07171cd..3bf04105e5e957e4aa43a69c80b0653c606ad981 100644 (file)
@@ -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
index b498c72206fd6bb77282b767c2c895325aade393..b630d88ef9e263787ebcbf881a645e3553101db0 100644 (file)
@@ -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