Rework of Initialization Chapter in BSP Howto

2020-02-04 Thread Sebastian Huber
Hello,

I reworked the heavily out dated system initialization chapter in the RTEMS BSP 
and Driver Guide:

https://docs.rtems.org/branches/master/bsp-howto/initilization_code.html

I would be happy if some want to review it.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 00/21] Support statically allocated threads

2020-02-04 Thread Sebastian Huber
Hello,

any objects to push this patch set with the additional 
_Objects_Allocate_with_extend()?

https://lists.rtems.org/pipermail/devel/2020-January/056724.html

I will work on a documentation update afterwards.

- Am 16. Dez 2019 um 15:28 schrieb Sebastian Huber 
sebastian.hu...@embedded-brains.de:

> This change set makes it possible to statically allocate threads.  This means
> the thread control block is provided by a statically allocated thread
> information and the thread stack is provided by the user.  Currently, no API
> function exists for this.  Adding this API is a follow up change set.  Only 
> the
> internal threads use statically allocated thread stacks in this change set.
> 
> Sebastian Huber (21):
>  score: Remove superfluous FP types/defines
>  score: Simplify thread stack allocation
>  score: Simplify thread stack free
>  score: Remove _Stack_Ensure_minimum() call
>  score: Simplify FP context allocation
>  score: Simplify TLS area allocation
>  score: Split stack allocator configuration
>  score: Add Thread_Configuration
>  score: Add _Stack_Extend_size()
>  score: Move thread stack allocation
>  score: Statically allocate idle/MPCI stacks
>  score: Add _Objects_Free_objects_block()
>  score: Split up objects allocation
>  score: Split up objects free
>  score: Inline _Objects_Namespace_remove_u32()
>  score: _Objects_Extend_information()
>  score: Add _Freechain_Is_empty()
>  score: Add _Freechain_Pop()
>  score: Add _Freechain_Extend()
>  score: Add _Objects_Activate_unlimited()
>  score: Simplify _Thread_Initialize()
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] config: Remove BSP_ZERO_WORKSPACE_AUTOMATICALLY

2020-02-04 Thread Sebastian Huber
Update #3863.
---
 cpukit/include/rtems/confdefs.h | 8 +---
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index ffb13fd262..0a63dcc461 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -59,7 +59,6 @@
   #undef BSP_INITIAL_EXTENSION
   #undef BSP_INTERRUPT_STACK_SIZE
   #undef BSP_MAXIMUM_DEVICES
-  #undef BSP_ZERO_WORKSPACE_AUTOMATICALLY
   #undef CONFIGURE_BSP_PREREQUISITE_DRIVERS
   #undef CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
 #else
@@ -1240,12 +1239,7 @@ extern rtems_initialization_tasks_table 
Initialization_tasks[];
  * at system start up?
  */
 #ifndef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
-  #ifdef BSP_ZERO_WORKSPACE_AUTOMATICALLY
-#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY \
-BSP_ZERO_WORKSPACE_AUTOMATICALLY
-  #else
-#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY FALSE
-  #endif
+  #define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY FALSE
 #endif
 /**@}*/ /* end of add to group Configuration */
 
-- 
2.16.4

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] Remove BSP_ZERO_WORKSPACE_AUTOMATICALLY

2020-02-04 Thread Sebastian Huber
Close #3863.
---
 bsp-howto/miscellanous_support.rst |  7 ---
 c-user/configuring_a_system.rst| 28 
 2 files changed, 35 deletions(-)

diff --git a/bsp-howto/miscellanous_support.rst 
b/bsp-howto/miscellanous_support.rst
index efb4454..015adb4 100644
--- a/bsp-howto/miscellanous_support.rst
+++ b/bsp-howto/miscellanous_support.rst
@@ -206,13 +206,6 @@ macros:
   stack size as recommended when using this BSP.  This is sometimes required
   when the BSP developer has knowledge of stack intensive interrupt handlers.
 
-.. index:: BSP_ZERO_WORKSPACE_AUTOMATICALLY
-
-- ``BSP_ZERO_WORKSPACE_AUTOMATICALLY`` is defined when the BSP requires that
-  RTEMS zero out the RTEMS C Program Heap at initialization.  If the memory is
-  already zeroed out by a test sequence or boot ROM, then the boot time can be
-  reduced by not zeroing memory twice.
-
 .. index:: BSP_DEFAULT_UNIFIED_WORK_AREAS
 
 - ``BSP_DEFAULT_UNIFIED_WORK_AREAS`` is defined when the BSP recommends that
diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst
index 36c7f15..967cb74 100644
--- a/c-user/configuring_a_system.rst
+++ b/c-user/configuring_a_system.rst
@@ -3187,34 +3187,6 @@ NOTES:
 only impacts the devFS and thus is only used by  when
 ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM`` is specified.
 
-.. index:: BSP_ZERO_WORKSPACE_AUTOMATICALLY
-
-.. _BSP_ZERO_WORKSPACE_AUTOMATICALLY:
-
-BSP_ZERO_WORKSPACE_AUTOMATICALLY
-
-
-CONSTANT:
-``BSP_ZERO_WORKSPACE_AUTOMATICALLY``
-
-DATA TYPE:
-Boolean feature macro.
-
-RANGE:
-Defined or undefined.
-
-DEFAULT VALUE:
-This option is BSP specific.
-
-DESCRIPTION:
-If ``BSP_ZERO_WORKSPACE_AUTOMATICALLY`` is defined by the BSP and
-``CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY`` is not defined by the
-application, then the workspace will be zeroed automatically.
-
-NOTES:
-Zeroing memory can add significantly to system boot time. It is not
-necessary for RTEMS but is often assumed by support libraries.
-
 .. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS
 
 .. _CONFIGURE_BSP_PREREQUISITE_DRIVERS:
-- 
2.16.4

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 1/2] samples/iostream: Simplify configuration

2020-02-04 Thread Sebastian Huber
Remove CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY since it is not needed and
just increases the boot time.
---
 testsuites/samples/iostream/system.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/testsuites/samples/iostream/system.h 
b/testsuites/samples/iostream/system.h
index 0ae1d8f94f..fbcc56e063 100644
--- a/testsuites/samples/iostream/system.h
+++ b/testsuites/samples/iostream/system.h
@@ -21,7 +21,6 @@
 /* NOTICE: the clock driver is explicitly disabled */
 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
-#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY TRUE
 
 #define CONFIGURE_MAXIMUM_TASKS1
 
-- 
2.16.4

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 2/2] config: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY

2020-02-04 Thread Sebastian Huber
Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use
defined/undefined instead of TRUE/FALSE.

Close #3862.
---
 cpukit/include/rtems/confdefs.h | 15 +--
 testsuites/sptests/sp54/init.c  |  5 ++---
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index 0a63dcc461..7d0d3fbeab 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -1234,15 +1234,6 @@ extern rtems_initialization_tasks_table 
Initialization_tasks[];
  */
 /**@{*/
 
-/**
- * Should the RTEMS Workspace and C Program Heap be cleared automatically
- * at system start up?
- */
-#ifndef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
-  #define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY FALSE
-#endif
-/**@}*/ /* end of add to group Configuration */
-
 /**
  * @defgroup ConfigurationMalloc RTEMS Malloc configuration
  *
@@ -2787,7 +2778,11 @@ struct _reent *__getreent(void)
 CONFIGURE_TASK_STACK_ALLOCATOR_INIT,  /* stack allocator init */
 CONFIGURE_TASK_STACK_ALLOCATOR,   /* stack allocator */
 CONFIGURE_TASK_STACK_DEALLOCATOR, /* stack deallocator */
-CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY,   /* true to clear memory */
+#ifdef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY /* true to clear memory */
+  true,
+#else
+  false,
+#endif
 #ifdef CONFIGURE_UNIFIED_WORK_AREAS   /* true for unified work areas */
   true,
 #else
diff --git a/testsuites/sptests/sp54/init.c b/testsuites/sptests/sp54/init.c
index cf7f4dbda4..7bedb46497 100644
--- a/testsuites/sptests/sp54/init.c
+++ b/testsuites/sptests/sp54/init.c
@@ -82,10 +82,9 @@ rtems_initialization_tasks_table Initialization_tasks[1] =
 #define CONFIGURE_INIT_TASK_STACK_SIZE 0
 
 /*
- *  Ensure we test the case where memory is zero.  Not
- *  all BSPs will set this to TRUE by default.
+ *  Ensure we test the case where memory is zero.
  */
-#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY TRUE
+#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
 
 #define CONFIGURE_INIT
 #include 
-- 
2.16.4

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


GCC Git Conversion Done

2020-02-04 Thread Sebastian Huber

Hello,

it seems GCC finished the Git conversion:

https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;a=summary

This means our GCC Git mirror refers to a deprecated Git repository.

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] sysinit: Add RTEMS_SYSINIT_ZERO_MEMORY

2020-02-04 Thread Sebastian Huber
Use a dedicate system initialization step to zero the memory used for
the workspace and C program heap.

This avoids dead code in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is
not configured.
---
 cpukit/Makefile.am |  2 ++
 cpukit/include/rtems/confdefs.h| 15 +-
 cpukit/include/rtems/config.h  | 11 ++
 cpukit/include/rtems/score/memory.h| 13 
 cpukit/include/rtems/sysinit.h |  3 ++-
 cpukit/sapi/src/sysinitverbose.c   | 10 -
 cpukit/score/src/memoryzerobeforeuse.c | 34 +++
 cpukit/score/src/memoryzerofreeareas.c | 37 ++
 cpukit/score/src/wkspace.c |  6 --
 testsuites/sptests/sp54/init.c |  2 ++
 10 files changed, 111 insertions(+), 22 deletions(-)
 create mode 100644 cpukit/score/src/memoryzerobeforeuse.c
 create mode 100644 cpukit/score/src/memoryzerofreeareas.c

diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
index 2bfa2ddabd..b9ab123b49 100644
--- a/cpukit/Makefile.am
+++ b/cpukit/Makefile.am
@@ -854,6 +854,8 @@ librtemscpu_a_SOURCES += score/src/heapgreedy.c
 librtemscpu_a_SOURCES += score/src/heapnoextend.c
 librtemscpu_a_SOURCES += score/src/memoryallocate.c
 librtemscpu_a_SOURCES += score/src/memoryfill.c
+librtemscpu_a_SOURCES += score/src/memoryzerobeforeuse.c
+librtemscpu_a_SOURCES += score/src/memoryzerofreeareas.c
 librtemscpu_a_SOURCES += score/src/objectallocate.c
 librtemscpu_a_SOURCES += score/src/objectclose.c
 librtemscpu_a_SOURCES += score/src/objectextendinformation.c
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index 7d0d3fbeab..982e3ddb56 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -2778,11 +2778,6 @@ struct _reent *__getreent(void)
 CONFIGURE_TASK_STACK_ALLOCATOR_INIT,  /* stack allocator init */
 CONFIGURE_TASK_STACK_ALLOCATOR,   /* stack allocator */
 CONFIGURE_TASK_STACK_DEALLOCATOR, /* stack deallocator */
-#ifdef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY /* true to clear memory */
-  true,
-#else
-  false,
-#endif
 #ifdef CONFIGURE_UNIFIED_WORK_AREAS   /* true for unified work areas */
   true,
 #else
@@ -2807,6 +2802,16 @@ struct _reent *__getreent(void)
 #endif
   };
 
+  #ifdef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
+const bool _Memory_Zero_before_use = true;
+
+RTEMS_SYSINIT_ITEM(
+  _Memory_Zero_free_areas,
+  RTEMS_SYSINIT_ZERO_MEMORY,
+  RTEMS_SYSINIT_ORDER_MIDDLE
+);
+  #endif
+
   #if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS > 0
 #if (CONFIGURE_RECORD_PER_PROCESSOR_ITEMS & 
(CONFIGURE_RECORD_PER_PROCESSOR_ITEMS - 1)) != 0
   #error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be a power of two"
diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
index 15e944dd2f..fac5c6e009 100644
--- a/cpukit/include/rtems/config.h
+++ b/cpukit/include/rtems/config.h
@@ -29,6 +29,7 @@
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -148,14 +149,6 @@ typedef struct {
*/
   rtems_stack_free_hook  stack_free_hook;
 
-  /** 
-   * If this element is TRUE, then RTEMS will zero the Executive Workspace.
-   * When this element is FALSE, it is assumed that the BSP or invoking
-   * environment has ensured that memory was cleared before RTEMS was
-   * invoked.
-   */
-  bool   do_zero_of_workspace;
-
   /**
* @brief Specifies if a unified work area is used or not.
*
@@ -241,7 +234,7 @@ uint32_t rtems_configuration_get_maximum_extensions( void );
   * RTEMS is responsible for zeroing the Executive Workspace.
   */
 #define rtems_configuration_get_do_zero_of_workspace() \
-   (Configuration.do_zero_of_workspace)
+  _Memory_Zero_before_use
 
 #define rtems_configuration_get_number_of_initial_extensions() \
   ((uint32_t) _User_extensions_Initial_count)
diff --git a/cpukit/include/rtems/score/memory.h 
b/cpukit/include/rtems/score/memory.h
index f26c7f4031..ffc4897ed5 100644
--- a/cpukit/include/rtems/score/memory.h
+++ b/cpukit/include/rtems/score/memory.h
@@ -331,6 +331,19 @@ void *_Memory_Allocate(
  */
 void _Memory_Fill( const Memory_Information *information, int c );
 
+/**
+ * @brief Indicates if the memory is zeroed during system initialization.
+ *
+ * This value is provided via  in case
+ * CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is defined.
+ */
+extern const bool _Memory_Zero_before_use;
+
+/**
+ * @brief Zeros all free memory areas of the system.
+ */
+void _Memory_Zero_free_areas( void );
+
 /** @} */
 
 #ifdef __cplusplus
diff --git a/cpukit/include/rtems/sysinit.h b/cpukit/include/rtems/sysinit.h
index 58f35542b7..d181c42780 100644
--- a/cpukit/include/rtems/sysinit.h
+++ b/cpukit/include/rtems/sysinit.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018 embedded brains GmbH.  All rights reserved.
+ * Copyright (c) 2015, 2020 embedded brains GmbH.  

Re: [PATCH] config: Remove BSP_ZERO_WORKSPACE_AUTOMATICALLY

2020-02-04 Thread Joel Sherrill
Why is this being removed?

--joel

On Tue, Feb 4, 2020 at 6:14 AM Sebastian Huber <
sebastian.hu...@embedded-brains.de> wrote:

> Update #3863.
> ---
>  cpukit/include/rtems/confdefs.h | 8 +---
>  1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/cpukit/include/rtems/confdefs.h
> b/cpukit/include/rtems/confdefs.h
> index ffb13fd262..0a63dcc461 100644
> --- a/cpukit/include/rtems/confdefs.h
> +++ b/cpukit/include/rtems/confdefs.h
> @@ -59,7 +59,6 @@
>#undef BSP_INITIAL_EXTENSION
>#undef BSP_INTERRUPT_STACK_SIZE
>#undef BSP_MAXIMUM_DEVICES
> -  #undef BSP_ZERO_WORKSPACE_AUTOMATICALLY
>#undef CONFIGURE_BSP_PREREQUISITE_DRIVERS
>#undef CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
>  #else
> @@ -1240,12 +1239,7 @@ extern rtems_initialization_tasks_table
> Initialization_tasks[];
>   * at system start up?
>   */
>  #ifndef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
> -  #ifdef BSP_ZERO_WORKSPACE_AUTOMATICALLY
> -#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY \
> -BSP_ZERO_WORKSPACE_AUTOMATICALLY
> -  #else
> -#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY FALSE
> -  #endif
> +  #define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY FALSE
>  #endif
>  /**@}*/ /* end of add to group Configuration */
>
> --
> 2.16.4
>
> ___
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH] config: Remove BSP_ZERO_WORKSPACE_AUTOMATICALLY

2020-02-04 Thread Sebastian Huber

On 04/02/2020 14:45, Joel Sherrill wrote:


Why is this being removed?


Please have a look at the ticket:

https://devel.rtems.org/ticket/3863

"BSPs had the option to enable the 
CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY via the 
BSP_ZERO_WORKSPACE_AUTOMATICALLY BSP option. There is no BSP which 
defines this option. In addition, it makes no sense that a BSP can 
influence this high level system configuration."


___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] config: Add CONFIGURE_DIRTY_MEMORY

2020-02-04 Thread Sebastian Huber
Replace the BSP_DIRTY_MEMORY BSP option with a CONFIGURE_DIRTY_MEMORY
configuration option.

Update #3843.
---
 bsps/shared/start/bootcard.c| 13 
 c/src/aclocal/bsp-bootcard-options.m4   | 12 ++-
 cpukit/Makefile.am  |  1 +
 cpukit/include/rtems/confdefs.h |  8 +++
 cpukit/include/rtems/score/memory.h |  5 +
 cpukit/score/src/memorydirtyfreeareas.c | 37 +
 testsuites/sptests/sp54/init.c  |  2 ++
 7 files changed, 55 insertions(+), 23 deletions(-)
 create mode 100644 cpukit/score/src/memorydirtyfreeareas.c

diff --git a/bsps/shared/start/bootcard.c b/bsps/shared/start/bootcard.c
index 2eef1ea710..8f053012ec 100644
--- a/bsps/shared/start/bootcard.c
+++ b/bsps/shared/start/bootcard.c
@@ -24,19 +24,6 @@
  */
 const char *bsp_boot_cmdline;
 
-#if BSP_DIRTY_MEMORY == 1
-static void bsp_dirty_memory(void)
-{
-  _Memory_Fill( _Memory_Get(), 0xcf );
-}
-
-RTEMS_SYSINIT_ITEM(
-  bsp_dirty_memory,
-  RTEMS_SYSINIT_DIRTY_MEMORY,
-  RTEMS_SYSINIT_ORDER_MIDDLE
-);
-#endif
-
 RTEMS_SYSINIT_ITEM(
   bsp_start,
   RTEMS_SYSINIT_BSP_START,
diff --git a/c/src/aclocal/bsp-bootcard-options.m4 
b/c/src/aclocal/bsp-bootcard-options.m4
index 2454ec5094..b0d25f383c 100644
--- a/c/src/aclocal/bsp-bootcard-options.m4
+++ b/c/src/aclocal/bsp-bootcard-options.m4
@@ -1,17 +1,9 @@
 dnl
 dnl BSP_BOOTCARD_OPTIONS - some autoconf voodoo to provide each BSPs'
 dnl configure script with the standard options supported by boot_card()
-dnl and other required parts of the BSP Framework.  Currently, this is
-dnl
-dnl   - Can optionally dirty memory at boot time.
+dnl and other required parts of the BSP Framework.
 dnl
 
 dnl To be used in bsp-configure scripts
 
-AC_DEFUN([RTEMS_BSP_BOOTCARD_OPTIONS],[
-RTEMS_BSPOPTS_SET([BSP_DIRTY_MEMORY],[*],[0])
-RTEMS_BSPOPTS_HELP([BSP_DIRTY_MEMORY],
-[If defined, then the BSP Framework will put a non-zero pattern into
- the RTEMS Workspace and C program heap.  This should assist in finding
- code that assumes memory starts set to zero.])
-])
+AC_DEFUN([RTEMS_BSP_BOOTCARD_OPTIONS],[])
diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
index b9ab123b49..9182919558 100644
--- a/cpukit/Makefile.am
+++ b/cpukit/Makefile.am
@@ -853,6 +853,7 @@ librtemscpu_a_SOURCES += score/src/heapiterate.c
 librtemscpu_a_SOURCES += score/src/heapgreedy.c
 librtemscpu_a_SOURCES += score/src/heapnoextend.c
 librtemscpu_a_SOURCES += score/src/memoryallocate.c
+librtemscpu_a_SOURCES += score/src/memorydirtyfreeareas.c
 librtemscpu_a_SOURCES += score/src/memoryfill.c
 librtemscpu_a_SOURCES += score/src/memoryzerobeforeuse.c
 librtemscpu_a_SOURCES += score/src/memoryzerofreeareas.c
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index 982e3ddb56..659fee936f 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -2802,6 +2802,14 @@ struct _reent *__getreent(void)
 #endif
   };
 
+  #ifdef CONFIGURE_DIRTY_MEMORY
+RTEMS_SYSINIT_ITEM(
+  _Memory_Dirty_free_areas,
+  RTEMS_SYSINIT_DIRTY_MEMORY,
+  RTEMS_SYSINIT_ORDER_MIDDLE
+);
+  #endif
+
   #ifdef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
 const bool _Memory_Zero_before_use = true;
 
diff --git a/cpukit/include/rtems/score/memory.h 
b/cpukit/include/rtems/score/memory.h
index ffc4897ed5..440a59c793 100644
--- a/cpukit/include/rtems/score/memory.h
+++ b/cpukit/include/rtems/score/memory.h
@@ -344,6 +344,11 @@ extern const bool _Memory_Zero_before_use;
  */
 void _Memory_Zero_free_areas( void );
 
+/**
+ * @brief Dirty all free memory areas of the system.
+ */
+void _Memory_Dirty_free_areas( void );
+
 /** @} */
 
 #ifdef __cplusplus
diff --git a/cpukit/score/src/memorydirtyfreeareas.c 
b/cpukit/score/src/memorydirtyfreeareas.c
new file mode 100644
index 00..537dff2697
--- /dev/null
+++ b/cpukit/score/src/memorydirtyfreeareas.c
@@ -0,0 +1,37 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (C) 2020 embedded brains GmbH
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED

Re: Build FreeBSD: FAILED 6/rtems-arm on x86_64-freebsd12.1 (arm-rtems6-gcc-5bc9d2f5ed4-newlib-ac1ccc29e-x86_64-freebsd12.1-1)

2020-02-04 Thread Sebastian Huber

On 04/02/2020 13:19, sebastian.hu...@embedded-brains.de wrote:


RTEMS Source Builder - Set Builder, 5 (f81b0a519f36)

Host: FreeBSD-12.1-RELEASE-amd64-64bit-ELF
FreeBSD Build_FreeBSD12 12.1-RELEASE FreeBSD 12.1-RELEASE r354233 
GENERIC
amd64 amd64

Build Time: 0:05:29.244192


For reference, this build error is due to:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93543

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 3/3] i386: Port to RTEMS

2020-02-04 Thread Sebastian Huber

On 31/01/2020 18:26, Jan Sommer wrote:


diff --git a/freebsd/sys/sys/mbuf.h b/freebsd/sys/sys/mbuf.h
index ba2e1873..95058e36 100644
--- a/freebsd/sys/sys/mbuf.h
+++ b/freebsd/sys/sys/mbuf.h
@@ -348,6 +348,7 @@ struct mbuf_ext_pgs {
vm_paddr_t  pa[MBUF_PEXT_MAX_PGS];  /* phys addrs of pages */
charhdr[MBUF_PEXT_HDR_LEN]; /* TLS header */
struct ktls_session *tls;   /* TLS session */
+#ifndef __rtems__
  #if defined(__i386__) || \
  (defined(__powerpc__) && !defined(__powerpc64__) && defined(BOOKE))
/*
@@ -356,6 +357,7 @@ struct mbuf_ext_pgs {
 */
uint32_tpad;
  #endif
+#endif /* __rtems__ */


This change also affects other targets. Why is it necessary?

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] Tester: Added pc386 bsp support

2020-02-04 Thread Lou Woods
Added pc386 BSP support to rtems-tester.
---
 tester/rtems/testing/bsps/pc386.ini | 37 +
 1 file changed, 37 insertions(+)
 create mode 100644 tester/rtems/testing/bsps/pc386.ini

diff --git a/tester/rtems/testing/bsps/pc386.ini 
b/tester/rtems/testing/bsps/pc386.ini
new file mode 100644
index 000..c137342
--- /dev/null
+++ b/tester/rtems/testing/bsps/pc386.ini
@@ -0,0 +1,37 @@
+#
+# RTEMS Tools Project (http://www.rtems.org/)
+# Copyright 2010-2017 Chris Johns (chr...@rtems.org)
+# All rights reserved.
+#
+# This file is part of the RTEMS Tools package in 'rtems-tools'.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+[pc386]
+bsp   = pc386
+arch  = i386
+jobs  = 1
+tester= %{_rtscripts}/tftp.cfg
+test_restarts = 3
+requires  = bsp_tty_dev, target_on_command, target_off_command, 
target_reset_command
-- 
1.8.3.1

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


sysinit test failure to link psim

2020-02-04 Thread Joel Sherrill
Hi

Posting this rather than just fixing since it seems that this test
is one we would like to keep building.

=
$ make -k >/dev/null
/home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.5.0/../../../../powerpc-rtems5/bin/ld:
./../../cpukit/librtemscpu.a(sysinitverbose.o): the target
(_Linker_set__Sysinit__Sysinit_Verbose) of a R_PPC_SDAREL16 relocation is
in the wrong output section (.rtemsroset)
./../../cpukit/librtemscpu.a(sysinitverbose.o): in function
`_Sysinit_Verbose_is_adjacent':
/home/joel/rtems-work/b-psim/powerpc-rtems5/c/psim/cpukit/../../../../../rtems/c/src/../../cpukit/sapi/src/sysinitverbose.c:108:(.text._Sysinit_Verbose_BSP_EARLY+0x2):
relocation truncated to fit: R_PPC_SDAREL16 against symbol
`_Linker_set__Sysinit__Sysinit_Verbose' defined in
.rtemsroset._Sysinit.content.0.0x000100ff section in
spsysinit01/spsysinit01-init.o
collect2: error: ld returned 1 exit status

=

--joel
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: sysinit test failure to link psim

2020-02-04 Thread Amar Takhar
Found by Buildbot here!

  https://buildbot.rtems.org/#/builders/19/builds/47

FYI if anyone does want to make a quick check to see if the error is 
reproducible Buildbot creates a snapshot with bootstrap already run on every 
build for example for this build:

  https://buildbot.rtems.org/#/builders/4/builds/814

It's always the 'snapshot-test' and if all the current builds work we get a 
'snapshot-stable' which is stable for all builds that have been done.


Amar.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Buildbot emails.

2020-02-04 Thread Amar Takhar
If anyone wants an email when Buildbot fails for a commit you have made please 
let me know.

You will get an email when the status changes from Working -> Broken or Broken 
-> Working.

Buildbot should be stable enough now that it doesn't have many of its own 
errors 
and we recently caught breakage from a commit made.

Currently only Joel, Chris and myself are on this list.  If you wish to be 
added 
please send me your full email that you use to commit with in the format of:

  Amar Takhar 

Otherwise realtime status is available at

  https://buildbot.rtems.org/


Amar.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: sysinit test failure to link psim

2020-02-04 Thread Sebastian Huber
Hello Joel,

the lovely small-data area. I will try to fix this. I probably needs an API 
change in .
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Linker sets alignment change

2020-02-04 Thread Jeff Kubascik
Hey Sebastian,

On 2/1/2020 9:23 AM, Sebastian Huber wrote:
> Hello Jeff,
> 
> - Am 14. Jan 2020 um 17:37 schrieb Jeff Kubascik 
> jeff.kubas...@dornerworks.com:
> 
>> Hello,
>>
>> I have noticed a change in the linker section ".rtemsrwset" alignment which 
>> has
>> affected the zImage header that was added with the arm/xen BSP. The zImage
>> header uses the bsp_section_data_end symbol to determine the end of the 
>> image. I
>> was able to track this change to the commit 234d155e linkersets: Revert to
>> zero-length arrays.
>>
>> Here is the readelf output of the ticker.exe application just prior before
>> commit
>>
>> Section Headers:
>>  [Nr] Name  TypeAddr OffSize   ES Flg Lk Inf 
>> Al
>>  [15] .rtemsstack   NOBITS  4010 01358c 001000 00  WA  0   0 
>> 64
>>  [16] .data PROGBITS40101000 101000 0004e0 00  WA  0   0 
>>  8
>>  [17] .rtemsrwset   PROGBITS401014e0 1014e0 00 00  0   0 
>>  1
>>
>> Here is the output with the commit
>>
>> Section Headers:
>>  [Nr] Name  TypeAddr OffSize   ES Flg Lk Inf 
>> Al
>>  [15] .rtemsstack   NOBITS  4010 01358c 001000 00  WA  0   0 
>> 64
>>  [16] .data PROGBITS40101000 101000 0004e0 00  WA  0   0 
>>  8
>>  [17] .rtemsrwset   PROGBITS40101500 101500 00 00  WA  0   0 
>> 64
>>
>> This shows that the alignment of the ".rtemsrwset" section changed from 1 
>> byte
>> to 64 bytes. This changes the start address of the section to be aligned, 
>> even
>> though the section is empty.
>>
>> The bsp_section_data_end symbol is located at the end of the ".rtemsrwset"
>> section. If the section is empty, the bsp_section_data_end symbol will 
>> contain
>> the start address of the section.
>>
>> .data : ALIGN_WITH_INPUT {
>>   bsp_section_data_begin = .;
>>   *(.data .data.* .gnu.linkonce.d.*)
>>   SORT(CONSTRUCTORS)
>> } > REGION_DATA AT > REGION_DATA_LOAD
>> .data1 : ALIGN_WITH_INPUT {
>>   *(.data1)
>> } > REGION_DATA AT > REGION_DATA_LOAD
>> .rtemsrwset : ALIGN_WITH_INPUT {
>>   KEEP (*(SORT(.rtemsrwset.*)))
>>   bsp_section_data_end = .;
>> } > REGION_DATA AT > REGION_DATA_LOAD
>>
>> When I convert the ticker.exe elf to a binary with objcopy, the binary 
>> doesn't
>> include the ".rtemsrwset" section, since it's empty. As a result, the length 
>> of
>> the binary doesn't match the bsp_section_data_end symbol. This is a problem 
>> for
>> some zImage loaders that verify the image length.
>>
>> I'm not certain what would be the best way to fix the zImage header. Is 
>> there a
>> different symbol that I should be using to get the end of the image? Maybe 
>> this
>> is a bug with the linker script?
> 
> there is no bug in the linker script. In wkspace.c there is this linker set 
> declared:
> 
> RTEMS_LINKER_RWSET(
>   _Per_CPU_Data,
>   RTEMS_ALIGNED( CPU_CACHE_LINE_BYTES ) char
> );
> 
> So, the .rtemsrwset contains an empty _Per_CPU_Data set which is properly 
> aligned.
> 
> In uniprocessor configuration, the cache alignment is superfluous. I will fix 
> this.

If I understand correctly, the plan is to negate/undo the cache alignment change
that was introduced in commit 234d155e for uni-processor configuration? If that
is correct, it should fix the issue.

> Why don't you use the file size of your binary created by objcopy to set the 
> image size?
> 

This would require that I modify the binary/elf contents manually after linking,
as the size field is stored in the zImage header near the start of the 
application.

For development, I was padding the binary blob up to cache alignment match the
expected size in the zImage header. While this worked, it was clunky and 
tedious.

Sincerely,
Jeff Kubascik
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Linker sets alignment change

2020-02-04 Thread Sebastian Huber
- Am 4. Feb 2020 um 21:02 schrieb Jeff Kubascik 
jeff.kubas...@dornerworks.com:

> Hey Sebastian,
> 
> On 2/1/2020 9:23 AM, Sebastian Huber wrote:
>> Hello Jeff,
>> 
>> - Am 14. Jan 2020 um 17:37 schrieb Jeff Kubascik
>> jeff.kubas...@dornerworks.com:
>> 
>>> Hello,
>>>
>>> I have noticed a change in the linker section ".rtemsrwset" alignment which 
>>> has
>>> affected the zImage header that was added with the arm/xen BSP. The zImage
>>> header uses the bsp_section_data_end symbol to determine the end of the 
>>> image. I
>>> was able to track this change to the commit 234d155e linkersets: Revert to
>>> zero-length arrays.
>>>
>>> Here is the readelf output of the ticker.exe application just prior before
>>> commit
>>>
>>> Section Headers:
>>>  [Nr] Name  TypeAddr OffSize   ES Flg Lk 
>>> Inf Al
>>>  [15] .rtemsstack   NOBITS  4010 01358c 001000 00  WA  0   
>>> 0 64
>>>  [16] .data PROGBITS40101000 101000 0004e0 00  WA  0   
>>> 0  8
>>>  [17] .rtemsrwset   PROGBITS401014e0 1014e0 00 00  0   
>>> 0  1
>>>
>>> Here is the output with the commit
>>>
>>> Section Headers:
>>>  [Nr] Name  TypeAddr OffSize   ES Flg Lk 
>>> Inf Al
>>>  [15] .rtemsstack   NOBITS  4010 01358c 001000 00  WA  0   
>>> 0 64
>>>  [16] .data PROGBITS40101000 101000 0004e0 00  WA  0   
>>> 0  8
>>>  [17] .rtemsrwset   PROGBITS40101500 101500 00 00  WA  0   
>>> 0 64
>>>
>>> This shows that the alignment of the ".rtemsrwset" section changed from 1 
>>> byte
>>> to 64 bytes. This changes the start address of the section to be aligned, 
>>> even
>>> though the section is empty.
>>>
>>> The bsp_section_data_end symbol is located at the end of the ".rtemsrwset"
>>> section. If the section is empty, the bsp_section_data_end symbol will 
>>> contain
>>> the start address of the section.
>>>
>>> .data : ALIGN_WITH_INPUT {
>>>   bsp_section_data_begin = .;
>>>   *(.data .data.* .gnu.linkonce.d.*)
>>>   SORT(CONSTRUCTORS)
>>> } > REGION_DATA AT > REGION_DATA_LOAD
>>> .data1 : ALIGN_WITH_INPUT {
>>>   *(.data1)
>>> } > REGION_DATA AT > REGION_DATA_LOAD
>>> .rtemsrwset : ALIGN_WITH_INPUT {
>>>   KEEP (*(SORT(.rtemsrwset.*)))
>>>   bsp_section_data_end = .;
>>> } > REGION_DATA AT > REGION_DATA_LOAD
>>>
>>> When I convert the ticker.exe elf to a binary with objcopy, the binary 
>>> doesn't
>>> include the ".rtemsrwset" section, since it's empty. As a result, the 
>>> length of
>>> the binary doesn't match the bsp_section_data_end symbol. This is a problem 
>>> for
>>> some zImage loaders that verify the image length.
>>>
>>> I'm not certain what would be the best way to fix the zImage header. Is 
>>> there a
>>> different symbol that I should be using to get the end of the image? Maybe 
>>> this
>>> is a bug with the linker script?
>> 
>> there is no bug in the linker script. In wkspace.c there is this linker set
>> declared:
>> 
>> RTEMS_LINKER_RWSET(
>>   _Per_CPU_Data,
>>   RTEMS_ALIGNED( CPU_CACHE_LINE_BYTES ) char
>> );
>> 
>> So, the .rtemsrwset contains an empty _Per_CPU_Data set which is properly
>> aligned.
>> 
>> In uniprocessor configuration, the cache alignment is superfluous. I will fix
>> this.
> 
> If I understand correctly, the plan is to negate/undo the cache alignment 
> change
> that was introduced in commit 234d155e for uni-processor configuration? If 
> that
> is correct, it should fix the issue.

I already fixed this:

https://git.rtems.org/rtems/commit/?id=9e4f21b927e8a81df8044806e88128388911e123

It fixes your problem only in certain cases.

> 
>> Why don't you use the file size of your binary created by objcopy to set the
>> image size?
>> 
> 
> This would require that I modify the binary/elf contents manually after 
> linking,
> as the size field is stored in the zImage header near the start of the
> application.

In the ELF file, there is no problem. Why can't you use the file size of the 
objcopy output and write this in your zImage header?

> 
> For development, I was padding the binary blob up to cache alignment match the
> expected size in the zImage header. While this worked, it was clunky and
> tedious.

Yes.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Buildbot emails.

2020-02-04 Thread Chris Johns
On 5/2/20 6:05 am, Amar Takhar wrote:
> Buildbot should be stable enough now that it doesn't have many of its own 
> errors 
> and we recently caught breakage from a commit made.

Many thanks for the buildbot effort and all you do. It is an important part of
RTEMS's development.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Buildbot emails.

2020-02-04 Thread Chris Johns
On 5/2/20 6:05 am, Amar Takhar wrote:
> If anyone wants an email when Buildbot fails for a commit you have made 
> please 
> let me know.
> 
> You will get an email when the status changes from Working -> Broken or 
> Broken 
> -> Working.

Should fails be posted to devel?

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: GCC Git Conversion Done

2020-02-04 Thread Chris Johns
On 5/2/20 12:13 am, Sebastian Huber wrote:
> Hello,
> 
> it seems GCC finished the Git conversion:
> 
> https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;a=summary
> 
> This means our GCC Git mirror refers to a deprecated Git repository.

Is this the mirror on github?

Does this mean any RSB reference in it's history breaks with the new repo?

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH] Tester: Added pc386 bsp support

2020-02-04 Thread Chris Johns
On 5/2/20 3:34 am, Lou Woods wrote:
> Added pc386 BSP support to rtems-tester.

How does this differ from pc.ini? Why is a copy needed?

https://git.rtems.org/rtems-tools/tree/tester/rtems/testing/bsps/pc.ini

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Buildbot emails.

2020-02-04 Thread Amar Takhar
On 2020-02-05 10:15 +1100, Chris Johns wrote:
> 
> Many thanks for the buildbot effort and all you do. It is an important part of
> RTEMS's development.

Thank you.


Amar.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Buildbot emails.

2020-02-04 Thread Amar Takhar
On 2020-02-05 10:16 +1100, Chris Johns wrote:
> 
> Should fails be posted to devel?

I don't think that's a good idea since it's possible that a commit could break 
every BSP and then we'll get 1 email per BSP as they each fail.

I think it's okay if the developer breaking the build gets those emails.

One option is to simply turn the email filtering off and everyone gets an email 
if their name is in the 'responsible users' list for that commit.  Usually the 
author(s) and committer.


Amar.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Rework of Initialization Chapter in BSP Howto

2020-02-04 Thread Chris Johns
On 4/2/20 8:20 pm, Sebastian Huber wrote:
> Hello,
> 
> I reworked the heavily out dated system initialization chapter in the RTEMS 
> BSP and Driver Guide:
> 
> https://docs.rtems.org/branches/master/bsp-howto/initilization_code.html
> 
> I would be happy if some want to review it.

Looks good. I couple of comments ...

1. There is no discuss about boot loaders and the various role they play ...

 Do all BSPs need a boot loader?
 Can some BSP run directly from reset?
 What set up is needed by a bootloader?

Should there be some context here to guide a user in the area of boot loaders?

2. Minor edit?

 and change into normal system mode with multi-threading enabled.

to

 and change into the normal system mode with multi-threading enabled.

3. 5.4 Should we highlight the handling of init errors are a system issue. I
think it is important explain RTEMS does not manage system level issues for you
and handling init errors is part of the system design. How does a user override
a BSP default?

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Buildbot emails.

2020-02-04 Thread Chris Johns
On 5/2/20 11:41 am, Amar Takhar wrote:
> On 2020-02-05 10:16 +1100, Chris Johns wrote:
>>
>> Should fails be posted to devel?
> 
> I don't think that's a good idea since it's possible that a commit could 
> break 
> every BSP and then we'll get 1 email per BSP as they each fail.
> 
> I think it's okay if the developer breaking the build gets those emails.

Ah OK. I also see the build list gets the emails which is nice.

> One option is to simply turn the email filtering off and everyone gets an 
> email 
> if their name is in the 'responsible users' list for that commit.  Usually 
> the 
> author(s) and committer.

I am OK with that. What do others think?

Chris

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Buildbot emails.

2020-02-04 Thread Amar Takhar
On 2020-02-05 13:12 +1100, Chris Johns wrote:
> I am OK with that. What do others think?

For example in the last breakage you can see who was responsible by going here 
and clicking 'Responsible Users':

  https://buildbot.rtems.org/#/builders/19/builds/47


These two would have received direct emails about it.


Amar.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: GCC Git Conversion Done

2020-02-04 Thread Sebastian Huber

On 05/02/2020 00:18, Chris Johns wrote:


On 5/2/20 12:13 am, Sebastian Huber wrote:

Hello,

it seems GCC finished the Git conversion:

https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;a=summary

This means our GCC Git mirror refers to a deprecated Git repository.

Is this the mirror on github?


GCC use Subversion up to recently. There was an official SVN to Git 
mirror from GCC and we mirrored this SVN to Git mirror on github. This 
repository is still there, but it is now deprecated:


https://gcc.gnu.org/wiki/GitMirror

After long discussions and a complicated conversion from SVN to GIT, GCC 
uses now Git for further development. They use an entirely new Git 
repository for this:


thttps://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;a=summary



Does this mean any RSB reference in it's history breaks with the new repo?


Yes, in the new GCC repository is a completely new history.

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: GCC Git Conversion Done

2020-02-04 Thread Chris Johns
On 5/2/20 5:12 pm, Sebastian Huber wrote:
> On 05/02/2020 00:18, Chris Johns wrote:
>>
>> Does this mean any RSB reference in it's history breaks with the new repo?
> 
> Yes, in the new GCC repository is a completely new history.
> 

Does this mean we can directly reference the new repo and the mirror we have be
labelled old and not updated and for RSB history only?

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: GCC Git Conversion Done

2020-02-04 Thread Sebastian Huber

On 05/02/2020 07:20, Chris Johns wrote:


On 5/2/20 5:12 pm, Sebastian Huber wrote:

On 05/02/2020 00:18, Chris Johns wrote:

Does this mean any RSB reference in it's history breaks with the new repo?

Yes, in the new GCC repository is a completely new history.


Does this mean we can directly reference the new repo and the mirror we have be
labelled old and not updated and for RSB history only?


Yes, we probably have to set up also a new mirror for the new GCC Git 
repository.


___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: GCC Git Conversion Done

2020-02-04 Thread Chris Johns
On 5/2/20 5:17 pm, Sebastian Huber wrote:
> On 05/02/2020 07:20, Chris Johns wrote:
> 
>> On 5/2/20 5:12 pm, Sebastian Huber wrote:
>>> On 05/02/2020 00:18, Chris Johns wrote:
 Does this mean any RSB reference in it's history breaks with the new repo?
>>> Yes, in the new GCC repository is a completely new history.
>>>
>> Does this mean we can directly reference the new repo and the mirror we have 
>> be
>> labelled old and not updated and for RSB history only?
> 
> Yes, we probably have to set up also a new mirror for the new GCC Git 
> repository.
> 

I have changed the label for the repo on github.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Rework of Initialization Chapter in BSP Howto

2020-02-04 Thread Sebastian Huber

On 05/02/2020 03:09, Chris Johns wrote:


On 4/2/20 8:20 pm, Sebastian Huber wrote:

Hello,

I reworked the heavily out dated system initialization chapter in the RTEMS BSP 
and Driver Guide:

https://docs.rtems.org/branches/master/bsp-howto/initilization_code.html

I would be happy if some want to review it.

Looks good. I couple of comments ...

1. There is no discuss about boot loaders and the various role they play ...

  Do all BSPs need a boot loader?
  Can some BSP run directly from reset?
  What set up is needed by a bootloader?

Should there be some context here to guide a user in the area of boot loaders?


I am not sure, this guide is for BSP writers. They should know if there 
is a boot loader or not and what it does. I just mentioned a boot loader 
in one sentence:


"The low-level system initialization may depend on a platform initialization
carried out by a boot loader."

How a particular BSP boots should be documented in the user manual.



2. Minor edit?

  and change into normal system mode with multi-threading enabled.

to

  and change into the normal system mode with multi-threading enabled.

I changed it.


3. 5.4 Should we highlight the handling of init errors are a system issue. I
think it is important explain RTEMS does not manage system level issues for you
and handling init errors is part of the system design. How does a user override
a BSP default?


I think these questions should be answered by the Classic API Guide. A 
BSP writer just needs to know that initialization errors are fatal and 
the BSP should provide a fatal extension and a reset function.


The Classic API Guide could be improved to give an answer to "How does a 
user override a BSP default?":


https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Fwd: Buildbot failure in RTEMS on CHECK sparc/erc32 FreeBSD 10.1-STABLE GCC 7.3.0 POSIX

2020-02-04 Thread Sebastian Huber

Hello,

this looks like Buildbot is using out of date tools. How are tool 
updates (via RSB) triggered for the Buildbot machines?


 Forwarded Message 
Subject: 	Buildbot failure in RTEMS on CHECK sparc/erc32 FreeBSD 
10.1-STABLE GCC 7.3.0 POSIX

Date:   Tue, 04 Feb 2020 06:08:54 +
From:   build...@rtems.org
To: bu...@rtems.org



The Buildbot has detected a failed build on builder CHECK sparc/erc32 
FreeBSD 10.1-STABLE GCC 7.3.0 POSIX while building rtems.

Full details are available at:
https://buildbot.rtems.org/#builders/20/builds/54

Buildbot URL: https://buildbot.rtems.org/

Worker for this Build: build-1

Build Reason: 
Blamelist: Martin Erik Werner , Sebastian 
Huber 


BUILD FAILED: make (failure)

Sincerely,
-The Buildbot

___
build mailing list
bu...@rtems.org
http://lists.rtems.org/mailman/listinfo/build
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: Buildbot emails.

2020-02-04 Thread Sebastian Huber

Hello Amar,

thanks for setting up the Buildbot. I will probably receive most of the 
Working -> Broken emails.


If you are subscribed to the bu...@rtems.org mailing list, do you 
already get all the information? So an extra subscription to the 
Buildbot emails is not necessary?


___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Rework of Initialization Chapter in BSP Howto

2020-02-04 Thread Chris Johns


On 5/2/20 5:31 pm, Sebastian Huber wrote:
> On 05/02/2020 03:09, Chris Johns wrote:
> 
>> On 4/2/20 8:20 pm, Sebastian Huber wrote:
>>> Hello,
>>>
>>> I reworked the heavily out dated system initialization chapter in the RTEMS
>>> BSP and Driver Guide:
>>>
>>> https://docs.rtems.org/branches/master/bsp-howto/initilization_code.html
>>>
>>> I would be happy if some want to review it.
>> Looks good. I couple of comments ...
>>
>> 1. There is no discuss about boot loaders and the various role they play ...
>>
>>   Do all BSPs need a boot loader?
>>   Can some BSP run directly from reset?
>>   What set up is needed by a bootloader?
>>
>> Should there be some context here to guide a user in the area of boot 
>> loaders?
> 
> I am not sure, this guide is for BSP writers. They should know if there is a
> boot loader or not and what it does. I just mentioned a boot loader in one
> sentence:
> 
> "The low-level system initialization may depend on a platform initialization
> carried out by a boot loader."
> 
> How a particular BSP boots should be documented in the user manual.

Yes and is once the BSP writer has it working. The RTEMS's start entry point
cannot accept any state. The state of the MMU, cache, hypervisor mode need to be
considered and accounted for. I am not asking the detail is listed and resolved
just a note the BSP start up and the bootloader need to agree on a suitable
state and hand over.

> 
>>
>> 2. Minor edit?
>>
>>   and change into normal system mode with multi-threading enabled.
>>
>> to
>>
>>   and change into the normal system mode with multi-threading enabled.
> I changed it.
>>
>> 3. 5.4 Should we highlight the handling of init errors are a system issue. I
>> think it is important explain RTEMS does not manage system level issues for 
>> you
>> and handling init errors is part of the system design. How does a user 
>> override
>> a BSP default?
> 
> I think these questions should be answered by the Classic API Guide. A BSP
> writer just needs to know that initialization errors are fatal and the BSP
> should provide a fatal extension and a reset function.
> 
> The Classic API Guide could be improved to give an answer to "How does a user
> override a BSP default?":
> 
> https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error
> 

OK. Maybe I am looking this section the wrong way.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

#1977 mq_open lacks support of "mode" argument

2020-02-04 Thread Bran S
Trying to solve ticket https://devel.rtems.org/ticket/1977

The mode parameter sets access permissions for the created message queue.
Examples:
S_IRUSR  00400 user has read permission
S_IWUSR  00200 user has write permission
S_IXUSR  00100 user has execute permission
Complete list is at: http://man7.org/linux/man-pages/man2/open.2.html

https://github.com/RTEMS/rtems/blob/master/cpukit/posix/src/mqueueopen.c#L176
Is this is the place where we need to take care of the mode argument ?

I am thinking we would need to store the mode bits in
POSIX_Message_queue_Control structure.(Ref:
https://github.com/RTEMS/rtems/blob/master/cpukit/include/rtems/posix/mqueue.h#L57)

Then every time the created queue is accessed we would use the mode
bits to check if the accessor is allowed to access the queue.

Please share your thoughts on solving this.
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] score: Fix linker sets on small data area targets

2020-02-04 Thread Sebastian Huber
Update #3865.
---
 cpukit/include/rtems/linkersets.h   | 16 +---
 cpukit/include/rtems/score/percpudata.h |  3 +--
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/cpukit/include/rtems/linkersets.h 
b/cpukit/include/rtems/linkersets.h
index 614670338c..844130f0d4 100644
--- a/cpukit/include/rtems/linkersets.h
+++ b/cpukit/include/rtems/linkersets.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016 embedded brains GmbH.  All rights reserved.
+ * Copyright (c) 2015, 2020 embedded brains GmbH.  All rights reserved.
  *
  *  embedded brains GmbH
  *  Dornierstr. 4
@@ -37,8 +37,13 @@ extern "C" {
   type const RTEMS_LINKER_SET_END( set )[ 0 ] \
   RTEMS_SECTION( ".rtemsroset." #set ".end" ) RTEMS_USED
 
+#define RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE( set, type, item, order ) \
+  type const _Linker_set_##set##_##item \
+  RTEMS_SECTION( ".rtemsroset." #set ".content.0." RTEMS_XSTRING( order ) )
+
 #define RTEMS_LINKER_ROSET_ITEM_DECLARE( set, type, item ) \
-  extern type const _Linker_set_##set##_##item
+  extern type const _Linker_set_##set##_##item \
+  RTEMS_SECTION( ".rtemsroset." #set ".content.1" )
 
 #define RTEMS_LINKER_ROSET_ITEM_REFERENCE( set, type, item ) \
   static type const * const _Set_reference_##set##_##item \
@@ -68,8 +73,13 @@ extern "C" {
   type RTEMS_LINKER_SET_END( set )[ 0 ] \
   RTEMS_SECTION( ".rtemsrwset." #set ".end" ) RTEMS_USED
 
+#define RTEMS_LINKER_RWSET_ITEM_ORDERED_DECLARE( set, type, item, order ) \
+  extern type _Linker_set_##set##_##item \
+  RTEMS_SECTION( ".rtemsrwset." #set ".content.0." RTEMS_XSTRING( order ) )
+
 #define RTEMS_LINKER_RWSET_ITEM_DECLARE( set, type, item ) \
-  extern type _Linker_set_##set##_##item
+  extern type _Linker_set_##set##_##item \
+  RTEMS_SECTION( ".rtemsrwset." #set ".content.1" )
 
 /*
  * The .rtemsroset is here not a typo.  We must ensure that the references are
diff --git a/cpukit/include/rtems/score/percpudata.h 
b/cpukit/include/rtems/score/percpudata.h
index 1961c323d4..ff6e517d0a 100644
--- a/cpukit/include/rtems/score/percpudata.h
+++ b/cpukit/include/rtems/score/percpudata.h
@@ -57,8 +57,7 @@ RTEMS_LINKER_RWSET_DECLARE( _Per_CPU_Data, char );
  * @param item The designator of the item.
  */
 #define PER_CPU_DATA_ITEM_DECLARE( type, item ) \
-  RTEMS_LINKER_RWSET_ITEM_DECLARE( _Per_CPU_Data, type, item ) \
-  RTEMS_SECTION( ".rtemsrwset._Per_CPU_Data.content.1" )
+  RTEMS_LINKER_RWSET_ITEM_DECLARE( _Per_CPU_Data, type, item )
 
 /**
  * @brief Defines a per-CPU item of the specified type.
-- 
2.16.4

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel