]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
cyclic: Add a symbol for SPL
authorSimon Glass <sjg@chromium.org>
Wed, 31 Jul 2024 14:44:08 +0000 (08:44 -0600)
committerAnatolij Gustschin <agust@denx.de>
Wed, 31 Jul 2024 14:51:54 +0000 (16:51 +0200)
The cyclic subsystem is currently enabled either in all build phases
or none. For tools this should not be enabled, but since lib/shc256.c
and other files include watchdog.h in the host build, we must make
sure that it is not enabled there.

Add an SPL symbol so that there is more control of this.

Add an include into cyclic.h so that tools can include this file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
Reviewed-by: Stefan Roese <sr@denx.de>
common/Kconfig
common/Makefile
drivers/watchdog/Kconfig
include/asm-generic/global_data.h
include/cyclic.h

index 4bb9f08977aafa69aa165071f1da5a4060c957a2..87b0ec3ea8f6a70ed047dd786947a8867ef7ee9f 100644 (file)
@@ -626,6 +626,14 @@ config CYCLIC
 
 if CYCLIC
 
+config SPL_CYCLIC
+       bool "General-purpose cyclic execution mechanism (SPL)"
+       help
+         This enables a general-purpose cyclic execution infrastructure in SPL,
+         to allow "small" (run-time wise) functions to be executed at
+         a specified frequency. Things like LED blinking or watchdog
+         triggering are examples for such tasks.
+
 config CYCLIC_MAX_CPU_TIME_US
        int "Sets the max allowed time for a cyclic function in us"
        default 5000
index e9835473420668e5f77a8ef185942cc348d57c51..d871113cbb97654ba980b9ca8dd710b33b598f10 100644 (file)
@@ -79,7 +79,7 @@ obj-$(CONFIG_CROS_EC) += cros_ec.o
 obj-y += dlmalloc.o
 obj-$(CONFIG_$(SPL_TPL_)SYS_MALLOC_F) += malloc_simple.o
 
-obj-$(CONFIG_CYCLIC) += cyclic.o
+obj-$(CONFIG_$(SPL_TPL_)CYCLIC) += cyclic.o
 obj-$(CONFIG_$(SPL_TPL_)EVENT) += event.o
 
 obj-$(CONFIG_$(SPL_TPL_)HASH) += hash.o
index 8318fd77a32a1b037c6b084b26a2c1aafd4d5aaa..0c3e991331867bb90148a7349625f6887795c0a9 100644 (file)
@@ -4,6 +4,7 @@ config WATCHDOG
        bool "Enable U-Boot watchdog reset"
        depends on !HW_WATCHDOG
        select CYCLIC
+       imply SPL_CYCLIC if SPL
        help
          This option enables U-Boot watchdog support where U-Boot is using
          watchdog_reset function to service watchdog device in U-Boot. Enable
@@ -408,6 +409,7 @@ config WDT_ARM_SMC
 config SPL_WDT
        bool "Enable driver model for watchdog timer drivers in SPL"
        depends on SPL_DM
+       select SPL_CYCLIC if CYCLIC
        help
          Enable driver model for watchdog timer in SPL.
          This is similar to CONFIG_WDT in U-Boot.
index aa336d63e3af39e5b79bdd0e0abfa0f9d5e8a954..27aa75e703696a6c1baa88b1000a370d9fdcd4f7 100644 (file)
@@ -481,7 +481,7 @@ struct global_data {
         */
        struct event_state event_state;
 #endif
-#ifdef CONFIG_CYCLIC
+#if CONFIG_IS_ENABLED(CYCLIC)
        /**
         * @cyclic_list: list of registered cyclic functions
         */
index 2c3d383c5ef4af678e83097cff2e7091e238cf74..cd95b691d485ef218c4868bc2c89c64ce30df73d 100644 (file)
@@ -46,7 +46,8 @@ struct cyclic_info {
 /** Function type for cyclic functions */
 typedef void (*cyclic_func_t)(struct cyclic_info *c);
 
-#if defined(CONFIG_CYCLIC)
+#if CONFIG_IS_ENABLED(CYCLIC)
+
 /**
  * cyclic_register - Register a new cyclic function
  *
@@ -123,6 +124,6 @@ static inline int cyclic_unregister_all(void)
 {
        return 0;
 }
-#endif
+#endif /* CYCLIC */
 
 #endif