* [PATCH v3] event: Add fpga load event @ 2023-07-12 11:39 christian.taedcke-oss 2023-07-12 14:00 ` Simon Glass 2023-07-17 10:36 ` Michal Simek 0 siblings, 2 replies; 5+ messages in thread From: christian.taedcke-oss @ 2023-07-12 11:39 UTC (permalink / raw) To: u-boot; +Cc: Christian Taedcke, Michal Simek, Simon Glass From: Christian Taedcke <christian.taedcke@weidmueller.com> This enables implementing custom logic after a bitstream was loaded into the fpga. Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com> --- Changes in v3: - replace #if with if - remove previously added printf - return notification error from fpga_load() - fix static_assert checking event name list Changes in v2: - replace __weak function with a new event common/event.c | 3 +++ drivers/fpga/fpga.c | 20 ++++++++++++++++++++ include/event.h | 16 ++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/common/event.c b/common/event.c index 164c95f8f5..20720c5283 100644 --- a/common/event.c +++ b/common/event.c @@ -36,6 +36,9 @@ const char *const type_name[] = { /* init hooks */ "misc_init_f", + /* Fpga load hook */ + "fpga_load", + /* fdt hooks */ "ft_fixup", diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c index 7f6b6bc73a..81e6d8ffc0 100644 --- a/drivers/fpga/fpga.c +++ b/drivers/fpga/fpga.c @@ -244,6 +244,21 @@ int fpga_loads(int devnum, const void *buf, size_t size, } #endif +static int fpga_load_event_notify(const void *buf, size_t bsize, int result) +{ + if (CONFIG_IS_ENABLED(EVENT)) { + struct event_fpga_load load = { + .buf = buf, + .bsize = bsize, + .result = result + }; + + return event_notify(EVT_FPGA_LOAD, &load, sizeof(load)); + } + + return 0; +} + /* * Generic multiplexing code */ @@ -251,6 +266,7 @@ int fpga_load(int devnum, const void *buf, size_t bsize, bitstream_type bstype, int flags) { int ret_val = FPGA_FAIL; /* assume failure */ + int ret_notify; const fpga_desc *desc = fpga_validate(devnum, buf, bsize, (char *)__func__); @@ -284,6 +300,10 @@ int fpga_load(int devnum, const void *buf, size_t bsize, bitstream_type bstype, } } + ret_notify = fpga_load_event_notify(buf, bsize, ret_val); + if (ret_notify) + return ret_notify; + return ret_val; } diff --git a/include/event.h b/include/event.h index fe41080fa6..77124c2e73 100644 --- a/include/event.h +++ b/include/event.h @@ -31,6 +31,9 @@ enum event_t { /* Init hooks */ EVT_MISC_INIT_F, + /* Fpga load hook */ + EVT_FPGA_LOAD, + /* Device tree fixups before booting */ EVT_FT_FIXUP, @@ -59,6 +62,19 @@ union event_data { struct udevice *dev; } dm; + /** + * struct event_fpga_load - fpga load event + * + * @buf: The buffer that was loaded into the fpga + * @bsize: The size of the buffer that was loaded into the fpga + * @result: Result of the load operation + */ + struct event_fpga_load { + const void *buf; + size_t bsize; + int result; + } fpga_load; + /** * struct event_ft_fixup - FDT fixup before booting * -- 2.34.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3] event: Add fpga load event 2023-07-12 11:39 [PATCH v3] event: Add fpga load event christian.taedcke-oss @ 2023-07-12 14:00 ` Simon Glass 2023-07-17 10:36 ` Michal Simek 1 sibling, 0 replies; 5+ messages in thread From: Simon Glass @ 2023-07-12 14:00 UTC (permalink / raw) To: christian.taedcke-oss; +Cc: u-boot, Christian Taedcke, Michal Simek On Wed, 12 Jul 2023 at 05:39, <christian.taedcke-oss@weidmueller.com> wrote: > > From: Christian Taedcke <christian.taedcke@weidmueller.com> > > This enables implementing custom logic after a bitstream was loaded > into the fpga. > > Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com> > --- > > Changes in v3: > - replace #if with if > - remove previously added printf > - return notification error from fpga_load() > - fix static_assert checking event name list > > Changes in v2: > - replace __weak function with a new event > > common/event.c | 3 +++ > drivers/fpga/fpga.c | 20 ++++++++++++++++++++ > include/event.h | 16 ++++++++++++++++ > 3 files changed, 39 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] event: Add fpga load event 2023-07-12 11:39 [PATCH v3] event: Add fpga load event christian.taedcke-oss 2023-07-12 14:00 ` Simon Glass @ 2023-07-17 10:36 ` Michal Simek 2023-07-18 11:22 ` Taedcke, Christian 1 sibling, 1 reply; 5+ messages in thread From: Michal Simek @ 2023-07-17 10:36 UTC (permalink / raw) To: christian.taedcke-oss, u-boot Cc: Christian Taedcke, Michal Simek, Simon Glass On 7/12/23 13:39, christian.taedcke-oss@weidmueller.com wrote: > From: Christian Taedcke <christian.taedcke@weidmueller.com> > > This enables implementing custom logic after a bitstream was loaded > into the fpga. > > Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com> > --- > > Changes in v3: > - replace #if with if > - remove previously added printf > - return notification error from fpga_load() > - fix static_assert checking event name list > > Changes in v2: > - replace __weak function with a new event > > common/event.c | 3 +++ > drivers/fpga/fpga.c | 20 ++++++++++++++++++++ > include/event.h | 16 ++++++++++++++++ > 3 files changed, 39 insertions(+) > > diff --git a/common/event.c b/common/event.c > index 164c95f8f5..20720c5283 100644 > --- a/common/event.c > +++ b/common/event.c > @@ -36,6 +36,9 @@ const char *const type_name[] = { > /* init hooks */ > "misc_init_f", > > + /* Fpga load hook */ > + "fpga_load", > + > /* fdt hooks */ > "ft_fixup", > > diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c > index 7f6b6bc73a..81e6d8ffc0 100644 > --- a/drivers/fpga/fpga.c > +++ b/drivers/fpga/fpga.c > @@ -244,6 +244,21 @@ int fpga_loads(int devnum, const void *buf, size_t size, > } > #endif > > +static int fpga_load_event_notify(const void *buf, size_t bsize, int result) > +{ > + if (CONFIG_IS_ENABLED(EVENT)) { > + struct event_fpga_load load = { > + .buf = buf, > + .bsize = bsize, > + .result = result > + }; > + > + return event_notify(EVT_FPGA_LOAD, &load, sizeof(load)); > + } > + > + return 0; > +} > + > /* > * Generic multiplexing code > */ > @@ -251,6 +266,7 @@ int fpga_load(int devnum, const void *buf, size_t bsize, bitstream_type bstype, > int flags) > { > int ret_val = FPGA_FAIL; /* assume failure */ > + int ret_notify; > const fpga_desc *desc = fpga_validate(devnum, buf, bsize, > (char *)__func__); > > @@ -284,6 +300,10 @@ int fpga_load(int devnum, const void *buf, size_t bsize, bitstream_type bstype, > } > } > > + ret_notify = fpga_load_event_notify(buf, bsize, ret_val); > + if (ret_notify) > + return ret_notify; > + > return ret_val; > } > > diff --git a/include/event.h b/include/event.h > index fe41080fa6..77124c2e73 100644 > --- a/include/event.h > +++ b/include/event.h > @@ -31,6 +31,9 @@ enum event_t { > /* Init hooks */ > EVT_MISC_INIT_F, > > + /* Fpga load hook */ > + EVT_FPGA_LOAD, > + > /* Device tree fixups before booting */ > EVT_FT_FIXUP, > > @@ -59,6 +62,19 @@ union event_data { > struct udevice *dev; > } dm; > > + /** > + * struct event_fpga_load - fpga load event > + * > + * @buf: The buffer that was loaded into the fpga > + * @bsize: The size of the buffer that was loaded into the fpga > + * @result: Result of the load operation > + */ > + struct event_fpga_load { > + const void *buf; > + size_t bsize; > + int result; > + } fpga_load; > + > /** > * struct event_ft_fixup - FDT fixup before booting > * There is the error generated for kmcent2_defconfig. Please fix. For more information please take a look at https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/jobs/657127 +In file included from board/keymile/kmcent2/kmcent2.c:9: +include/event.h:74:17: error: unknown type name 'size_t' + 74 | size_t bsize; + | ^~~~~~ +make[2]: *** [scripts/Makefile.build:257: board/keymile/kmcent2/kmcent2.o] Error 1 Thanks, Michal -- Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91 w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Xilinx Microblaze Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] event: Add fpga load event 2023-07-17 10:36 ` Michal Simek @ 2023-07-18 11:22 ` Taedcke, Christian 2023-07-19 8:37 ` Michal Simek 0 siblings, 1 reply; 5+ messages in thread From: Taedcke, Christian @ 2023-07-18 11:22 UTC (permalink / raw) To: Michal Simek, u-boot; +Cc: Christian Taedcke, Michal Simek, Simon Glass Hello Michal, On 17.07.2023 12:36, Michal Simek wrote: > > > On 7/12/23 13:39, christian.taedcke-oss@weidmueller.com wrote: >> From: Christian Taedcke <christian.taedcke@weidmueller.com> >> >> This enables implementing custom logic after a bitstream was loaded >> into the fpga. >> >> Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com> >> --- >> >> Changes in v3: >> - replace #if with if >> - remove previously added printf >> - return notification error from fpga_load() >> - fix static_assert checking event name list >> >> Changes in v2: >> - replace __weak function with a new event >> >> common/event.c | 3 +++ >> drivers/fpga/fpga.c | 20 ++++++++++++++++++++ >> include/event.h | 16 ++++++++++++++++ >> 3 files changed, 39 insertions(+) >> >> diff --git a/common/event.c b/common/event.c >> index 164c95f8f5..20720c5283 100644 >> --- a/common/event.c >> +++ b/common/event.c >> @@ -36,6 +36,9 @@ const char *const type_name[] = { >> /* init hooks */ >> "misc_init_f", >> + /* Fpga load hook */ >> + "fpga_load", >> + >> /* fdt hooks */ >> "ft_fixup", >> diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c >> index 7f6b6bc73a..81e6d8ffc0 100644 >> --- a/drivers/fpga/fpga.c >> +++ b/drivers/fpga/fpga.c >> @@ -244,6 +244,21 @@ int fpga_loads(int devnum, const void *buf, >> size_t size, >> } >> #endif >> +static int fpga_load_event_notify(const void *buf, size_t bsize, int >> result) >> +{ >> + if (CONFIG_IS_ENABLED(EVENT)) { >> + struct event_fpga_load load = { >> + .buf = buf, >> + .bsize = bsize, >> + .result = result >> + }; >> + >> + return event_notify(EVT_FPGA_LOAD, &load, sizeof(load)); >> + } >> + >> + return 0; >> +} >> + >> /* >> * Generic multiplexing code >> */ >> @@ -251,6 +266,7 @@ int fpga_load(int devnum, const void *buf, size_t >> bsize, bitstream_type bstype, >> int flags) >> { >> int ret_val = FPGA_FAIL; /* assume failure */ >> + int ret_notify; >> const fpga_desc *desc = fpga_validate(devnum, buf, bsize, >> (char *)__func__); >> @@ -284,6 +300,10 @@ int fpga_load(int devnum, const void *buf, size_t >> bsize, bitstream_type bstype, >> } >> } >> + ret_notify = fpga_load_event_notify(buf, bsize, ret_val); >> + if (ret_notify) >> + return ret_notify; >> + >> return ret_val; >> } >> diff --git a/include/event.h b/include/event.h >> index fe41080fa6..77124c2e73 100644 >> --- a/include/event.h >> +++ b/include/event.h >> @@ -31,6 +31,9 @@ enum event_t { >> /* Init hooks */ >> EVT_MISC_INIT_F, >> + /* Fpga load hook */ >> + EVT_FPGA_LOAD, >> + >> /* Device tree fixups before booting */ >> EVT_FT_FIXUP, >> @@ -59,6 +62,19 @@ union event_data { >> struct udevice *dev; >> } dm; >> + /** >> + * struct event_fpga_load - fpga load event >> + * >> + * @buf: The buffer that was loaded into the fpga >> + * @bsize: The size of the buffer that was loaded into the fpga >> + * @result: Result of the load operation >> + */ >> + struct event_fpga_load { >> + const void *buf; >> + size_t bsize; >> + int result; >> + } fpga_load; >> + >> /** >> * struct event_ft_fixup - FDT fixup before booting >> * > > There is the error generated for kmcent2_defconfig. > > Please fix. > > For more information please take a look at > > https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/jobs/657127 > > +In file included from board/keymile/kmcent2/kmcent2.c:9: > +include/event.h:74:17: error: unknown type name 'size_t' > + 74 | size_t bsize; > + | ^~~~~~ > +make[2]: *** [scripts/Makefile.build:257: > board/keymile/kmcent2/kmcent2.o] Error 1 Thanks for pasting the error message here, since i cannot access your link. Which header should i inlucde before event.h in kmcent2.c (to fix the error)? 1. common.h seems to be used often, but i only need size_t, or 2. stddef.h seems to be used sometimes, but never in the board folder, or 3. linux/stddef.h seems to be used sometimes, but never in the board folder > > Thanks, > Michal Regards, Christian ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] event: Add fpga load event 2023-07-18 11:22 ` Taedcke, Christian @ 2023-07-19 8:37 ` Michal Simek 0 siblings, 0 replies; 5+ messages in thread From: Michal Simek @ 2023-07-19 8:37 UTC (permalink / raw) To: Taedcke, Christian, Michal Simek, u-boot; +Cc: Christian Taedcke, Simon Glass On 7/18/23 13:22, Taedcke, Christian wrote: > Hello Michal, > > On 17.07.2023 12:36, Michal Simek wrote: >> >> >> On 7/12/23 13:39, christian.taedcke-oss@weidmueller.com wrote: >>> From: Christian Taedcke <christian.taedcke@weidmueller.com> >>> >>> This enables implementing custom logic after a bitstream was loaded >>> into the fpga. >>> >>> Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com> >>> --- >>> >>> Changes in v3: >>> - replace #if with if >>> - remove previously added printf >>> - return notification error from fpga_load() >>> - fix static_assert checking event name list >>> >>> Changes in v2: >>> - replace __weak function with a new event >>> >>> common/event.c | 3 +++ >>> drivers/fpga/fpga.c | 20 ++++++++++++++++++++ >>> include/event.h | 16 ++++++++++++++++ >>> 3 files changed, 39 insertions(+) >>> >>> diff --git a/common/event.c b/common/event.c >>> index 164c95f8f5..20720c5283 100644 >>> --- a/common/event.c >>> +++ b/common/event.c >>> @@ -36,6 +36,9 @@ const char *const type_name[] = { >>> /* init hooks */ >>> "misc_init_f", >>> + /* Fpga load hook */ >>> + "fpga_load", >>> + >>> /* fdt hooks */ >>> "ft_fixup", >>> diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c >>> index 7f6b6bc73a..81e6d8ffc0 100644 >>> --- a/drivers/fpga/fpga.c >>> +++ b/drivers/fpga/fpga.c >>> @@ -244,6 +244,21 @@ int fpga_loads(int devnum, const void *buf, size_t size, >>> } >>> #endif >>> +static int fpga_load_event_notify(const void *buf, size_t bsize, int result) >>> +{ >>> + if (CONFIG_IS_ENABLED(EVENT)) { >>> + struct event_fpga_load load = { >>> + .buf = buf, >>> + .bsize = bsize, >>> + .result = result >>> + }; >>> + >>> + return event_notify(EVT_FPGA_LOAD, &load, sizeof(load)); >>> + } >>> + >>> + return 0; >>> +} >>> + >>> /* >>> * Generic multiplexing code >>> */ >>> @@ -251,6 +266,7 @@ int fpga_load(int devnum, const void *buf, size_t bsize, >>> bitstream_type bstype, >>> int flags) >>> { >>> int ret_val = FPGA_FAIL; /* assume failure */ >>> + int ret_notify; >>> const fpga_desc *desc = fpga_validate(devnum, buf, bsize, >>> (char *)__func__); >>> @@ -284,6 +300,10 @@ int fpga_load(int devnum, const void *buf, size_t bsize, >>> bitstream_type bstype, >>> } >>> } >>> + ret_notify = fpga_load_event_notify(buf, bsize, ret_val); >>> + if (ret_notify) >>> + return ret_notify; >>> + >>> return ret_val; >>> } >>> diff --git a/include/event.h b/include/event.h >>> index fe41080fa6..77124c2e73 100644 >>> --- a/include/event.h >>> +++ b/include/event.h >>> @@ -31,6 +31,9 @@ enum event_t { >>> /* Init hooks */ >>> EVT_MISC_INIT_F, >>> + /* Fpga load hook */ >>> + EVT_FPGA_LOAD, >>> + >>> /* Device tree fixups before booting */ >>> EVT_FT_FIXUP, >>> @@ -59,6 +62,19 @@ union event_data { >>> struct udevice *dev; >>> } dm; >>> + /** >>> + * struct event_fpga_load - fpga load event >>> + * >>> + * @buf: The buffer that was loaded into the fpga >>> + * @bsize: The size of the buffer that was loaded into the fpga >>> + * @result: Result of the load operation >>> + */ >>> + struct event_fpga_load { >>> + const void *buf; >>> + size_t bsize; >>> + int result; >>> + } fpga_load; >>> + >>> /** >>> * struct event_ft_fixup - FDT fixup before booting >>> * >> >> There is the error generated for kmcent2_defconfig. >> >> Please fix. >> >> For more information please take a look at >> >> https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/jobs/657127 >> >> +In file included from board/keymile/kmcent2/kmcent2.c:9: >> +include/event.h:74:17: error: unknown type name 'size_t' >> + 74 | size_t bsize; >> + | ^~~~~~ >> +make[2]: *** [scripts/Makefile.build:257: board/keymile/kmcent2/kmcent2.o] >> Error 1 > > Thanks for pasting the error message here, since i cannot access your link. > > Which header should i inlucde before event.h in kmcent2.c (to fix the error)? > 1. common.h seems to be used often, but i only need size_t, or > 2. stddef.h seems to be used sometimes, but never in the board folder, or > 3. linux/stddef.h seems to be used sometimes, but never in the board folder I think priority is from top to down. Just try to build that target to see that error first and then try to add missing header to fix it. Thanks, Michal ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-07-19 8:37 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-07-12 11:39 [PATCH v3] event: Add fpga load event christian.taedcke-oss 2023-07-12 14:00 ` Simon Glass 2023-07-17 10:36 ` Michal Simek 2023-07-18 11:22 ` Taedcke, Christian 2023-07-19 8:37 ` Michal Simek
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox