[PATCH v2 00/13] event: Provide support for events to connect subsystems
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue Mar 8 14:11:02 CET 2022
On 3/4/22 16:42, Simon Glass wrote:
> It is a common need in U-Boot to have one subsystem notify another
> when something happens. An example is reading a partition table when a
> new block device is set up.
>
> It is also common to add weak functions and 'hook' functions to modify
> how U-Boot works. See for example ft_board_setup() and the like.
>
> U-Boot would benefit from a generic mechanism to handle these cases,
> with the ability to hook into various 'events' in a
> subsystem-independent and transparent way.
>
> This series provides a way to create and dispatch events, with a way of
> registering a 'spy' which watches for events of different types. This
> allows 'hook' functions to be created in a generic way.
>
> It also includes a script to list the hooks in an image, which is a bit
> easier to debug than weak functions, as well as an 'event' command to
> do the same from within U-Boot.
>
> These 'static' events can be used to replace hooks like misc_init_f(),
> for example. Also included is basic support for 'dynamic' events, where
> a spy can be registered at runtime. The need for this is still being
> figured out.
@Simon, Tom:
What is the status of this series? Takahiro's UEFI integration series
builds on it. Is it going to be pushed to origin/next soon?
Best regards
Heinrich
>
> Changes in v2:
> - Add a 'used' attribute to avoid LTO dropping the code
> - Update keymile pg-wcom boards also
> - Make the sandbox function static
> - Convert arch/arm/mach-imx/imx8/cpu.c also
> - Add DM_EVENT to ARCH_IMX8 too
> - Tidy up galileo defconfig and rename quark_init_dm()
> - Make a few more of the functions static
> - Add a weak function for spl
> - Update for patman snake-case change
> - Use a regular expression in the test to avoid dependency on build dir
>
> Simon Glass (12):
> Makefile: Allow LTO to be disabled for a build
> sandbox: start: Sort the header files
> binman: Expand elf support a little
> event: Add basic support for events
> event: Add a simple test
> event: Set up the event system on start-up
> event: Add events for device probe/remove
> event: Convert misc_init_f() to use events
> event: Convert arch_cpu_init_dm() to use events
> event: Add a command
> event: Add a script to decode the event-spy list
> event: Add documentation
>
> Tim Harvey (1):
> phy: nop-phy: Fix phy reset if no reset-gpio defined
>
> MAINTAINERS | 10 +
> Makefile | 18 +-
> arch/Kconfig | 3 +
> arch/arm/Kconfig | 4 +
> arch/arm/config.mk | 4 +-
> arch/arm/include/asm/global_data.h | 2 +-
> arch/arm/mach-imx/imx8/cpu.c | 4 +-
> arch/arm/mach-imx/imx8m/soc.c | 4 +-
> arch/arm/mach-imx/imx8ulp/soc.c | 4 +-
> arch/arm/mach-omap2/am33xx/board.c | 4 +-
> arch/arm/mach-omap2/hwinit-common.c | 5 +-
> arch/mips/Kconfig | 1 +
> arch/mips/mach-pic32/cpu.c | 4 +-
> arch/nios2/cpu/cpu.c | 4 +-
> arch/riscv/cpu/cpu.c | 5 +-
> arch/riscv/include/asm/system.h | 5 +
> arch/riscv/lib/spl.c | 3 +-
> arch/sandbox/cpu/start.c | 8 +-
> arch/x86/cpu/baytrail/cpu.c | 4 +-
> arch/x86/cpu/broadwell/cpu.c | 4 +-
> arch/x86/cpu/ivybridge/cpu.c | 4 +-
> arch/x86/cpu/quark/quark.c | 4 +-
> arch/x86/include/asm/fsp2/fsp_api.h | 8 +
> arch/x86/lib/fsp2/fsp_init.c | 4 +-
> arch/x86/lib/spl.c | 5 +-
> arch/x86/lib/tpl.c | 10 -
> board/google/chromebook_coral/coral.c | 7 +-
> board/keymile/kmcent2/kmcent2.c | 4 +-
> .../keymile/pg-wcom-ls102xa/pg-wcom-ls102xa.c | 5 +-
> cmd/Kconfig | 8 +
> cmd/Makefile | 1 +
> cmd/event.c | 27 +++
> common/Kconfig | 37 ++-
> common/Makefile | 2 +
> common/board_f.c | 13 +-
> common/board_r.c | 1 +
> common/event.c | 196 ++++++++++++++++
> common/log.c | 1 +
> configs/chromebook_coral_defconfig | 1 +
> configs/kmcent2_defconfig | 2 +-
> configs/pg_wcom_expu1_defconfig | 1 +
> configs/pg_wcom_expu1_update_defconfig | 1 +
> configs/pg_wcom_seli8_defconfig | 1 +
> configs/pg_wcom_seli8_update_defconfig | 1 +
> configs/sandbox64_defconfig | 1 -
> configs/sandbox_defconfig | 1 -
> configs/sandbox_flattree_defconfig | 1 -
> configs/sandbox_spl_defconfig | 1 -
> configs/tools-only_defconfig | 1 -
> doc/build/gcc.rst | 17 ++
> doc/develop/event.rst | 66 ++++++
> doc/develop/index.rst | 1 +
> doc/usage/event.rst | 49 ++++
> doc/usage/index.rst | 1 +
> drivers/core/Kconfig | 10 +
> drivers/core/device-remove.c | 8 +
> drivers/core/device.c | 9 +
> drivers/core/root.c | 5 +
> drivers/phy/nop-phy.c | 12 +-
> include/asm-generic/global_data.h | 13 ++
> include/configs/km/pg-wcom-ls102xa.h | 2 -
> include/dm/device-internal.h | 10 +
> include/event.h | 210 ++++++++++++++++++
> include/event_internal.h | 35 +++
> include/init.h | 12 -
> include/log.h | 2 +
> scripts/event_dump.py | 115 ++++++++++
> test/common/Makefile | 1 +
> test/common/event.c | 85 +++++++
> test/py/tests/test_event_dump.py | 20 ++
> test/test-main.c | 4 +
> tools/binman/elf.py | 58 ++++-
> 72 files changed, 1108 insertions(+), 86 deletions(-)
> create mode 100644 cmd/event.c
> create mode 100644 common/event.c
> create mode 100644 doc/develop/event.rst
> create mode 100644 doc/usage/event.rst
> create mode 100644 include/event.h
> create mode 100644 include/event_internal.h
> create mode 100755 scripts/event_dump.py
> create mode 100644 test/common/event.c
> create mode 100644 test/py/tests/test_event_dump.py
>
More information about the U-Boot
mailing list