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 <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: 7fe32b3442 ("event: Convert arch_cpu_init_dm() to use events")
Fixes: 42fdcebf85 ("event: Convert misc_init_f() to use events")
Fixes: c5ef202557 ("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>
This commit is contained in:
Tom Rini 2023-01-16 15:46:49 -05:00
parent e8272cbd59
commit 448e2b6327
18 changed files with 37 additions and 24 deletions

View 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

View 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"

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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.

View 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

View 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

View 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

View 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"

View 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

View 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