arm/stm32h757i-eval-m4 build failure
Hi Failure from the build sweep 1 debug arm/stm32h757i-eval-m4 build: configure: /home/tester/rtems-cron-6/rtems/waf configure\ --prefix=/home/tester/rtems-cron-6/tools/6/bsps --top=/home/tester\ /rtems-cron-6/rtems --rtems-config=config-arm-stm32h757i-\ eval-m4-debug.ini error: home/tester/bsps/arm/stm32h7/boards/stm/stm32h757i- eval/stm32h7-bspstarthooks.c:39:10: fatal error: stm32h747i_eval_qspi.h: No such file or directory ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH 3/3] bsps/beagle: fix warning on possibly uninitialized clock control in pwmss.
--- bsps/arm/beagle/pwmss/pwmss.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bsps/arm/beagle/pwmss/pwmss.c b/bsps/arm/beagle/pwmss/pwmss.c index 0fde3db5a9..f3aaf8fc3f 100644 --- a/bsps/arm/beagle/pwmss/pwmss.c +++ b/bsps/arm/beagle/pwmss/pwmss.c @@ -38,7 +38,7 @@ #include #include #include - +#include /** * @brief This function configures the L3 and L4_PER system clocks. @@ -56,7 +56,10 @@ */ rtems_status_code pwmss_module_clk_config(BBB_PWMSS pwmss_id) { -uint32_t clkctrl; +/* we initialize clkctrl here to nonsentical value as this is going + * to be assigned later anyway. Here assigning 0 is just to kill + * warning emitted by the C compiler. */ +uint32_t clkctrl = 0; /* calculate the address of the clock control register for the PWMSS * module we are configuring */ @@ -66,6 +69,9 @@ rtems_status_code pwmss_module_clk_config(BBB_PWMSS pwmss_id) clkctrl = AM335X_CM_PER_ADDR + AM335X_CM_PER_EPWMSS1_CLKCTRL; } else if(pwmss_id == BBB_PWMSS2) { clkctrl = AM335X_CM_PER_ADDR + AM335X_CM_PER_EPWMSS2_CLKCTRL; +} else { + /* wrong clock configuration, let's panic here. */ + rtems_error(RTEMS_ERROR_PANIC, "beagle: unsupported pwmss module clock configuration value!"); } /* when the module is functional the IDLEST bits (16 -17) of the -- 2.25.1 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH 1/3] bsps/beagle: do not set values already set by spec file(s).
The patch fixes few symbol already defined warnings here. --- bsps/arm/beagle/include/bsp.h | 10 -- 1 file changed, 10 deletions(-) diff --git a/bsps/arm/beagle/include/bsp.h b/bsps/arm/beagle/include/bsp.h index 58c7a8850a..a5c9bc0459 100644 --- a/bsps/arm/beagle/include/bsp.h +++ b/bsps/arm/beagle/include/bsp.h @@ -350,16 +350,6 @@ static inline void write_ttbr0(uint32_t bar) refresh_tlb(); } -/* Behaviour on fatal error; default: test-friendly. - * set breakpoint to bsp_fatal_extension. - */ -/* Enabling BSP_PRESS_KEY_FOR_RESET prevents noninteractive testing */ -/*#define BSP_PRESS_KEY_FOR_RESET 1 */ -#defineBSP_PRINT_EXCEPTION_CONTEXT 1 -/* human-readable exception info */ -#defineBSP_RESET_BOARD_AT_EXIT 1 -/* causes qemu to exit, signaling end of test */ - /** * @brief Beagleboard specific set up of the MMU. * -- 2.25.1 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH 2/3] bsps/beagle: fix warning on missing cast
--- bsps/arm/beagle/start/bspstart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bsps/arm/beagle/start/bspstart.c b/bsps/arm/beagle/start/bspstart.c index 83138f29dd..1a3593a6f8 100644 --- a/bsps/arm/beagle/start/bspstart.c +++ b/bsps/arm/beagle/start/bspstart.c @@ -121,7 +121,7 @@ int beagle_get_node_unit(phandle_t node) if (strstr(prop_val, name) != NULL) { for (i = strlen(prop) - 1; i >= 0; i--) { -if (!isdigit(prop[i])) +if (!isdigit((int)prop[i])) break; } -- 2.25.1 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH rtems-docs 2/2] c-user/message/directives.rst: Regen from spec
Regenerate message queue directives from the rtems-central spec in order to include the detailed note about non-atomicity of broadcast. This file is selectively added, other changes in generated files are omitted. Update #4804. --- c-user/message/directives.rst | 8 1 file changed, 8 insertions(+) diff --git a/c-user/message/directives.rst b/c- user/message/directives.rst index a13e4c7..ac53ec4 100644 --- a/c-user/message/directives.rst +++ b/c-user/message/directives.rst @@ -758,6 +758,14 @@ The execution time of this directive is directly related to the number of tasks waiting on the message queue, although it is more efficient than the equivalent number of invocations of :ref:`InterfaceRtemsMessageQueueSend`. +:ref:`InterfaceRtemsMessageQueueBroadcast` unblocks :term:`receivers +` in a non-atomic way. Meaning, it will not only :term:`unblock` +those :term:`receivers ` it finds waiting at the queue when +:ref:`InterfaceRtemsMessageQueueBroadcast` is invoked but also any new +:term:`receivers ` which start waiting for messages after +:ref:`InterfaceRtemsMessageQueueBroadcast` is invoked and before it returns. +This may lead to infinite unblocking loops. + .. rubric:: CONSTRAINTS: The following constraints apply to this directive: -- 2.30.2 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH rtems-docs 1/2] c-user/message/operations.rst: Don't claim atomic
rtems_message_queue_broadcast() is not atomic, since it unblocks each task after copying the message into their message buffer. So remove the wording indicating that it is atomic. Also reword the overall description slightly with "each" instead of "every", and add "until no more tasks remain", in order to further hint at the non-atomicity of the operation. Update #4804. --- c-user/message/operations.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/c-user/message/operations.rst b/c- user/message/operations.rst index 4d34661..46081a3 100644 --- a/c-user/message/operations.rst +++ b/c-user/message/operations.rst @@ -70,8 +70,8 @@ queue which has a full queue of pending messages. Broadcasting a Message -- -The ``rtems_message_queue_broadcast`` directive sends the same message to every -task waiting on the specified message queue as an atomic operation. The +The ``rtems_message_queue_broadcast`` directive sends the same message to each +task waiting on the specified message queue until no more tasks remain. The message is copied to each waiting task's message buffer and each task is unblocked. The number of tasks which were unblocked is returned to the caller. -- 2.30.2 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH rtems-central 2/2] spec: Add msg broadcast non-atomicity note to doc
rtems_message_queue_broadcast() may, under certain circumstances, copy the message to tasks which were not waiting on the message queue when the broadcast started, and may copy the message multiple times to the same task. This behaviour is, based on discussion in #4804, something that might be unlikely to change. Expose the note regarding this behaviour that already existed in the requirement spec in the main documentation as well. Removing the "Currently" wording. Update #4804. --- modules/rtems-docs | 2 +- spec/rtems/message/if/broadcast.yml | 8 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/rtems-docs b/modules/rtems-docs index cb375249..e4e70bc5 16 --- a/modules/rtems-docs +++ b/modules/rtems-docs @@ -1 +1 @@ -Subproject commit cb375249c59bf7542c4115668dcfbcd7d50d41de +Subproject commit e4e70bc54c581d01a988fde075c711f3c6acc9e5 diff --git a/spec/rtems/message/if/broadcast.yml b/spec/rtems/message/if/broadcast.yml index 0a2f77b3..61ba4106 100644 --- a/spec/rtems/message/if/broadcast.yml +++ b/spec/rtems/message/if/broadcast.yml @@ -44,6 +44,14 @@ notes: | The execution time of this directive is directly related to the number of tasks waiting on the message queue, although it is more efficient than the equivalent number of invocations of ${send:/name}. + + ${../if/broadcast:/name} unblocks ${../glossary/receiver:/plural} in a + non-atomic way. Meaning, it will not only ${../glossary/unblock:/term} those + ${../glossary/receiver:/plural} it finds waiting at the queue when + ${../if/broadcast:/name} is invoked but also any new + ${../glossary/receiver:/plural} which start waiting for messages after + ${../if/broadcast:/name} is invoked and before it returns. This may lead to + infinite unblocking loops. params: - description: | is the queue identifier. -- 2.30.2 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH rtems-central 1/2] spec: Fix none-atomic -> non-atomic typo
--- spec/rtems/message/req/broadcast.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/rtems/message/req/broadcast.yml b/spec/rtems/message/req/broadcast.yml index b0e1af12..4b2d0f41 100644 --- a/spec/rtems/message/req/broadcast.yml +++ b/spec/rtems/message/req/broadcast.yml @@ -88,7 +88,7 @@ post-conditions: waiting for a message at the ${/glossary/messagequeue:/term}. Note: Currently, ${../if/broadcast:/name} unblocks - ${../glossary/receiver:/plural} in a none-atomic way. Meaning, + ${../glossary/receiver:/plural} in a non-atomic way. Meaning, it will not only ${../glossary/unblock:/term} those ${../glossary/receiver:/plural} it finds waiting at the queue when ${../if/broadcast:/name} is invoked but also any new -- 2.30.2 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel