arm/stm32h757i-eval-m4 build failure

2023-02-11 Thread Joel Sherrill
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.

2023-02-11 Thread Karel Gardas
---
 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).

2023-02-11 Thread Karel Gardas
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

2023-02-11 Thread Karel Gardas
---
 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

2023-02-11 Thread Martin Erik Werner
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

2023-02-11 Thread Martin Erik Werner
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

2023-02-11 Thread Martin Erik Werner
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

2023-02-11 Thread Martin Erik Werner
---
 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