Message ID | 20230116191207.151545-1-trini@konsulko.com |
---|---|
State | Changes Requested |
Delegated to: | Heinrich Schuchardt |
Headers | show |
Series | event: Correct dependencies on the EVENT framework | expand |
On 1/16/23 20:12, Tom Rini wrote: > 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. Audit 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> > --- > 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 | 6 +++--- > 18 files changed, 39 insertions(+), 26 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..c5c045e59349 100644 > --- a/lib/efi_loader/Kconfig > +++ b/lib/efi_loader/Kconfig > @@ -14,9 +14,9 @@ config EFI_LOADER > depends on !EFI_APP > default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 > select CHARSET > - select DM_EVENT > - select EVENT > - select EVENT_DYNAMIC > + # We need to send DM events, dynamically, in the EFI block driver > + select DM_EVENT if PARTITIONS > + select EVENT_DYNAMIC if PARTITIONS lib/efi_driver/efi_block_device.o is not related to partitions but to block devices. These 'if's don't make sense. Best regards Heinrich > select LIB_UUID > imply PARTITION_UUIDS > select REGEX
On Mon, Jan 16, 2023 at 09:21:51PM +0100, Heinrich Schuchardt wrote: > On 1/16/23 20:12, Tom Rini wrote: > > 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. Audit 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> > > --- > > 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 | 6 +++--- > > 18 files changed, 39 insertions(+), 26 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..c5c045e59349 100644 > > --- a/lib/efi_loader/Kconfig > > +++ b/lib/efi_loader/Kconfig > > @@ -14,9 +14,9 @@ config EFI_LOADER > > depends on !EFI_APP > > default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 > > select CHARSET > > - select DM_EVENT > > - select EVENT > > - select EVENT_DYNAMIC > > + # We need to send DM events, dynamically, in the EFI block driver > > + select DM_EVENT if PARTITIONS > > + select EVENT_DYNAMIC if PARTITIONS > > lib/efi_driver/efi_block_device.o is not related to partitions but to > block devices. > > These 'if's don't make sense. Yes, it's based on function. From lib/efi_driver/Makefile: ifeq ($(CONFIG_PARTITIONS),y) obj-y += efi_block_device.o endif
On 1/16/23 21:23, Tom Rini wrote: > On Mon, Jan 16, 2023 at 09:21:51PM +0100, Heinrich Schuchardt wrote: >> On 1/16/23 20:12, Tom Rini wrote: >>> 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. Audit 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> >>> --- >>> 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 | 6 +++--- >>> 18 files changed, 39 insertions(+), 26 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..c5c045e59349 100644 >>> --- a/lib/efi_loader/Kconfig >>> +++ b/lib/efi_loader/Kconfig >>> @@ -14,9 +14,9 @@ config EFI_LOADER >>> depends on !EFI_APP >>> default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 >>> select CHARSET >>> - select DM_EVENT >>> - select EVENT >>> - select EVENT_DYNAMIC >>> + # We need to send DM events, dynamically, in the EFI block driver >>> + select DM_EVENT if PARTITIONS >>> + select EVENT_DYNAMIC if PARTITIONS >> >> lib/efi_driver/efi_block_device.o is not related to partitions but to >> block devices. >> >> These 'if's don't make sense. > > Yes, it's based on function. From lib/efi_driver/Makefile: > ifeq ($(CONFIG_PARTITIONS),y) > obj-y += efi_block_device.o > endif The code in efi_block_device.c does not contain any reference to partitions. Codewise it depends only CONFIG_BLK which is required for CONFIG_EFI_LOADER. It is code in lib/efi_loader/efi_disk.c which does not compile without CONFIG_PARTITIONS due to missing '#if's. Please, remove "if PARTITIONS" because it only makes clean-up more complicated. Best regards Heinrich
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..c5c045e59349 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -14,9 +14,9 @@ config EFI_LOADER depends on !EFI_APP default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 select CHARSET - select DM_EVENT - select EVENT - select EVENT_DYNAMIC + # We need to send DM events, dynamically, in the EFI block driver + select DM_EVENT if PARTITIONS + select EVENT_DYNAMIC if PARTITIONS select LIB_UUID imply PARTITION_UUIDS select REGEX