From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D46F0C46467 for ; Mon, 16 Jan 2023 03:11:06 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0DF7A853B1; Mon, 16 Jan 2023 04:11:03 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="V2/E88lz"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 73DFD8532A; Mon, 16 Jan 2023 04:11:00 +0100 (CET) Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 133E48551E for ; Mon, 16 Jan 2023 04:10:56 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x631.google.com with SMTP id d9so28953592pll.9 for ; Sun, 15 Jan 2023 19:10:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=i+4rWnhKWi+qDkQ8LSZYriU1ehfF+Pn01nBBoq4JOE4=; b=V2/E88lz3Xui2jYq9UMjt3SQsRYdshBczkAjxq/nP521LyGHpLCDNm94sY0WEdWjyy qmS+m/JGgF8rw1+7U+OAvHj6EtgMVjWpPp930Yqr2+mRYyjuMv1AXe/75DGqiJYbyb47 Q+cbnzt9Sph3jHuQ1S6IuXuHYKieQRTG7k3OW+JDPuqpmwc+qRXyBZh6mRP4oA+gbaem pQhm3ug1JBGfk+2wWD0rlkR+Dnz2a5pfdcrDRyCkdSgCRIKz1O2VSS9LS4UvSjuKJppU 66+e2dWMOavafgfa1ERVfXfZZpnoOkAPl4XMILvMrdy9YYAP+Sldb83dtORb9ZCh6xrW SuOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=i+4rWnhKWi+qDkQ8LSZYriU1ehfF+Pn01nBBoq4JOE4=; b=ku184H12/w0eLh/R8Gd5wiJIjNVfS6UZApuTK46PMlbXs4heWVrrw/Z5kFMCzIjgOX Kl/8Tc1vZhvnyr/N/IS9PHzT5XUkpkuAQB90MkUGN1lv3mWMJd8W0w1cQzevuIYwz/UM OB/XlSMwFNKFMZ+NfeYG3RoklOXPYLU14TXZxSweDHZ35V2RmGNGn622OM9u8VxoK256 VEwJJHKY4c/9UEucFEaNqG2ISskV6uTbWwkp+adt3Dq0h7Ovnno0XCPNAQshQBhzGtda 138B+K+Xgmwm585+hVE0cEed4cFLV9q7S/l9yV9rfzJ6tHSYfogXFiMzMDPEVxu9dmS5 TV5A== X-Gm-Message-State: AFqh2koWeD8p55iOuNfCYgKwK3DsabprVDVME6VGtZ54IRBB//KZawwu g6Iuferm6FQqxHE9mJN4IwAl6Q== X-Google-Smtp-Source: AMrXdXuuNWV5HrSw82ujj+DkLeiHULWpgivKjqevbBvQmKjrtNcBnfbk7KY9NHHXdi/tHmIDFTvpxQ== X-Received: by 2002:a05:6a21:1509:b0:ad:9aaf:f7ae with SMTP id nq9-20020a056a21150900b000ad9aaff7aemr28020210pzb.3.1673838654174; Sun, 15 Jan 2023 19:10:54 -0800 (PST) Received: from laputa ([2400:4050:c3e1:100:579b:45b9:6b9:1ffd]) by smtp.gmail.com with ESMTPSA id 4-20020a620404000000b00576ee69c130sm17028578pfe.4.2023.01.15.19.10.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Jan 2023 19:10:53 -0800 (PST) Date: Mon, 16 Jan 2023 12:10:50 +0900 From: AKASHI Takahiro To: Tom Rini Cc: u-boot@lists.denx.de, Simon Glass , Oliver Graute , Francesco Dolcini Subject: Re: [PATCH 2/2] event: Correct dependencies on the EVENT framework Message-ID: <20230116031050.GA14839@laputa> Mail-Followup-To: AKASHI Takahiro , Tom Rini , u-boot@lists.denx.de, Simon Glass , Oliver Graute , Francesco Dolcini References: <20230114204936.3832739-1-trini@konsulko.com> <20230114204936.3832739-2-trini@konsulko.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230114204936.3832739-2-trini@konsulko.com> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean Hi Tom, On Sat, Jan 14, 2023 at 03:49:36PM -0500, 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, so reword as well. > > 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. > > Cc: Simon Glass > 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") > Signed-off-by: Tom Rini > --- > 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 | 1 + > cmd/Kconfig | 1 + > common/Kconfig | 17 ++++++++--------- > drivers/core/Kconfig | 9 +++++---- > drivers/cpu/Kconfig | 1 - > lib/efi_loader/Kconfig | 5 ++--- > 18 files changed, 36 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..725afd36a3b9 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 > 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 73e3fe36573d..6f5aa4e53aae 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..d04203cddab4 100644 > --- a/lib/efi_loader/Kconfig > +++ b/lib/efi_loader/Kconfig > @@ -14,9 +14,8 @@ 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 > + select DM_EVENT if PARTITIONS > + select EVENT_DYNAMIC if EVENT Since UEFI subsystem, in particular efi_disk, uses event_register() or EVENT_DYNAMIC directly, adding 'if EVENT' looks strange. Instead, I suggest that 'select EVENT' be added to CONFIG_EVENT_DYNAMIC and then we can safely select EVENT_DYNAMIC if PARTITIONS here. -Takahiro Akashi > select LIB_UUID > imply PARTITION_UUIDS > select REGEX > -- > 2.25.1 >