Message ID | 20220816102816.2938010-7-sr@denx.de |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
Series | Add support for cyclic function execution infrastruture | expand |
Hi Stefan, On Tue, 16 Aug 2022 at 04:28, Stefan Roese <sr@denx.de> wrote: > > This patch enables the cyclic infrastructure on sandbox and also adds > one simple example/demo functions using this cyclic functionality. > > Signed-off-by: Stefan Roese <sr@denx.de> > --- > v4: > - Rename cyclic_struct to cyclic_info > > v3: > - No change > > v2: > - Extend CONFIG_CYCLIC_MAX_CPU_TIME_US to 10000ms as running this > in CI might take a bit longer > > board/sandbox/sandbox.c | 15 +++++++++++++++ > configs/sandbox_defconfig | 3 +++ > 2 files changed, 18 insertions(+) Now that we have the test, do we need this? Or perhaps it should be a 'cyclic demo' command? > > diff --git a/board/sandbox/sandbox.c b/board/sandbox/sandbox.c > index ca9a2ca5b17c..f633b8e63768 100644 > --- a/board/sandbox/sandbox.c > +++ b/board/sandbox/sandbox.c > @@ -7,6 +7,7 @@ > #include <addr_map.h> > #include <cpu_func.h> > #include <cros_ec.h> > +#include <cyclic.h> > #include <dm.h> > #include <efi.h> > #include <efi_loader.h> > @@ -17,6 +18,7 @@ > #include <asm/global_data.h> > #include <asm/test.h> > #include <asm/u-boot-sandbox.h> > +#include <linux/delay.h> > #include <linux/kernel.h> > #include <malloc.h> > > @@ -106,8 +108,21 @@ int dram_init(void) > return 0; > } > > +static void cyclic_demo(void *ctx) > +{ > + /* Just a small dummy delay here */ > + udelay(10); > +} > + > int board_init(void) > { > + struct cyclic_info *cyclic; > + > + /* Register demo cyclic function */ > + cyclic = cyclic_register(cyclic_demo, 10 * 1000, "cyclic_demo", NULL); > + if (!cyclic) > + printf("Registering of cyclic_demo failed\n"); > + > return 0; > } > > diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig > index eba7bcbb483b..8b6c003760f2 100644 > --- a/configs/sandbox_defconfig > +++ b/configs/sandbox_defconfig > @@ -34,6 +34,8 @@ CONFIG_LOG=y > CONFIG_LOG_MAX_LEVEL=9 > CONFIG_LOG_DEFAULT_LEVEL=6 > CONFIG_DISPLAY_BOARDINFO_LATE=y > +CONFIG_CYCLIC=y > +CONFIG_CYCLIC_MAX_CPU_TIME_US=10000 > CONFIG_STACKPROTECTOR=y > CONFIG_ANDROID_AB=y > CONFIG_CMD_CPU=y > @@ -114,6 +116,7 @@ CONFIG_CMD_EROFS=y > CONFIG_CMD_EXT4_WRITE=y > CONFIG_CMD_SQUASHFS=y > CONFIG_CMD_MTDPARTS=y > +CONFIG_CMD_CYCLIC=y > CONFIG_CMD_STACKPROTECTOR_TEST=y > CONFIG_MAC_PARTITION=y > CONFIG_AMIGA_PARTITION=y > -- > 2.37.2 > Regards, Simon
Hi Simon, On 16.08.22 13:48, Simon Glass wrote: > Hi Stefan, > > On Tue, 16 Aug 2022 at 04:28, Stefan Roese <sr@denx.de> wrote: >> >> This patch enables the cyclic infrastructure on sandbox and also adds >> one simple example/demo functions using this cyclic functionality. >> >> Signed-off-by: Stefan Roese <sr@denx.de> >> --- >> v4: >> - Rename cyclic_struct to cyclic_info >> >> v3: >> - No change >> >> v2: >> - Extend CONFIG_CYCLIC_MAX_CPU_TIME_US to 10000ms as running this >> in CI might take a bit longer >> >> board/sandbox/sandbox.c | 15 +++++++++++++++ >> configs/sandbox_defconfig | 3 +++ >> 2 files changed, 18 insertions(+) > > Now that we have the test, do we need this? Frankly, I did not think about this before. > Or perhaps it should be a > 'cyclic demo' command? Yes, this could make sense, if we drop this sandbox implementation. Let me think a bit about it... Thanks, Stefan >> >> diff --git a/board/sandbox/sandbox.c b/board/sandbox/sandbox.c >> index ca9a2ca5b17c..f633b8e63768 100644 >> --- a/board/sandbox/sandbox.c >> +++ b/board/sandbox/sandbox.c >> @@ -7,6 +7,7 @@ >> #include <addr_map.h> >> #include <cpu_func.h> >> #include <cros_ec.h> >> +#include <cyclic.h> >> #include <dm.h> >> #include <efi.h> >> #include <efi_loader.h> >> @@ -17,6 +18,7 @@ >> #include <asm/global_data.h> >> #include <asm/test.h> >> #include <asm/u-boot-sandbox.h> >> +#include <linux/delay.h> >> #include <linux/kernel.h> >> #include <malloc.h> >> >> @@ -106,8 +108,21 @@ int dram_init(void) >> return 0; >> } >> >> +static void cyclic_demo(void *ctx) >> +{ >> + /* Just a small dummy delay here */ >> + udelay(10); >> +} >> + >> int board_init(void) >> { >> + struct cyclic_info *cyclic; >> + >> + /* Register demo cyclic function */ >> + cyclic = cyclic_register(cyclic_demo, 10 * 1000, "cyclic_demo", NULL); >> + if (!cyclic) >> + printf("Registering of cyclic_demo failed\n"); >> + >> return 0; >> } >> >> diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig >> index eba7bcbb483b..8b6c003760f2 100644 >> --- a/configs/sandbox_defconfig >> +++ b/configs/sandbox_defconfig >> @@ -34,6 +34,8 @@ CONFIG_LOG=y >> CONFIG_LOG_MAX_LEVEL=9 >> CONFIG_LOG_DEFAULT_LEVEL=6 >> CONFIG_DISPLAY_BOARDINFO_LATE=y >> +CONFIG_CYCLIC=y >> +CONFIG_CYCLIC_MAX_CPU_TIME_US=10000 >> CONFIG_STACKPROTECTOR=y >> CONFIG_ANDROID_AB=y >> CONFIG_CMD_CPU=y >> @@ -114,6 +116,7 @@ CONFIG_CMD_EROFS=y >> CONFIG_CMD_EXT4_WRITE=y >> CONFIG_CMD_SQUASHFS=y >> CONFIG_CMD_MTDPARTS=y >> +CONFIG_CMD_CYCLIC=y >> CONFIG_CMD_STACKPROTECTOR_TEST=y >> CONFIG_MAC_PARTITION=y >> CONFIG_AMIGA_PARTITION=y >> -- >> 2.37.2 >> > > Regards, > Simon Viele Grüße, Stefan Roese
diff --git a/board/sandbox/sandbox.c b/board/sandbox/sandbox.c index ca9a2ca5b17c..f633b8e63768 100644 --- a/board/sandbox/sandbox.c +++ b/board/sandbox/sandbox.c @@ -7,6 +7,7 @@ #include <addr_map.h> #include <cpu_func.h> #include <cros_ec.h> +#include <cyclic.h> #include <dm.h> #include <efi.h> #include <efi_loader.h> @@ -17,6 +18,7 @@ #include <asm/global_data.h> #include <asm/test.h> #include <asm/u-boot-sandbox.h> +#include <linux/delay.h> #include <linux/kernel.h> #include <malloc.h> @@ -106,8 +108,21 @@ int dram_init(void) return 0; } +static void cyclic_demo(void *ctx) +{ + /* Just a small dummy delay here */ + udelay(10); +} + int board_init(void) { + struct cyclic_info *cyclic; + + /* Register demo cyclic function */ + cyclic = cyclic_register(cyclic_demo, 10 * 1000, "cyclic_demo", NULL); + if (!cyclic) + printf("Registering of cyclic_demo failed\n"); + return 0; } diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index eba7bcbb483b..8b6c003760f2 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -34,6 +34,8 @@ CONFIG_LOG=y CONFIG_LOG_MAX_LEVEL=9 CONFIG_LOG_DEFAULT_LEVEL=6 CONFIG_DISPLAY_BOARDINFO_LATE=y +CONFIG_CYCLIC=y +CONFIG_CYCLIC_MAX_CPU_TIME_US=10000 CONFIG_STACKPROTECTOR=y CONFIG_ANDROID_AB=y CONFIG_CMD_CPU=y @@ -114,6 +116,7 @@ CONFIG_CMD_EROFS=y CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_SQUASHFS=y CONFIG_CMD_MTDPARTS=y +CONFIG_CMD_CYCLIC=y CONFIG_CMD_STACKPROTECTOR_TEST=y CONFIG_MAC_PARTITION=y CONFIG_AMIGA_PARTITION=y
This patch enables the cyclic infrastructure on sandbox and also adds one simple example/demo functions using this cyclic functionality. Signed-off-by: Stefan Roese <sr@denx.de> --- v4: - Rename cyclic_struct to cyclic_info v3: - No change v2: - Extend CONFIG_CYCLIC_MAX_CPU_TIME_US to 10000ms as running this in CI might take a bit longer board/sandbox/sandbox.c | 15 +++++++++++++++ configs/sandbox_defconfig | 3 +++ 2 files changed, 18 insertions(+)