summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-09-29 09:25:28 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-10-11 08:02:57 +0200
commit97236fdc2e3392804a825fa95d7732c7b5802e67 (patch)
tree112e2eafbb5a5aea59604cb016ceba55f0af70cf
parentspec: Add INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILED (diff)
downloadrtems-central-97236fdc2e3392804a825fa95d7732c7b5802e67.tar.bz2
spec: Add CONFIGURE_IDLE_TASK_STORAGE_SIZE
-rwxr-xr-xgenerate_membench.py2
-rw-r--r--spec/acfg/constraint/idle-task-min-stack-size.yml12
-rw-r--r--spec/acfg/constraint/init-task-stack-allocator-for-idle.yml2
-rw-r--r--spec/acfg/constraint/task-stack-allocator-for-idle-do-or-die.yml13
-rw-r--r--spec/acfg/constraint/task-stack-allocator-for-idle-increase-size.yml12
-rw-r--r--spec/acfg/if/idle-task-storage-size.yml55
-rw-r--r--spec/acfg/if/task-stack-allocator-for-idle.yml29
-rw-r--r--spec/acfg/req/idle-task-storage-size.yml17
-rw-r--r--spec/acfg/val/default.yml8
-rw-r--r--spec/bsp/val/mem-clock.yml2
-rw-r--r--spec/rtems/barrier/val/mem-wait-rel-del.yml2
-rw-r--r--spec/rtems/barrier/val/mem-wait-rel.yml2
-rw-r--r--spec/rtems/clock/val/mem-get-uptime.yml2
-rw-r--r--spec/rtems/clock/val/mem-set-get-tod.yml2
-rw-r--r--spec/rtems/clock/val/mem-set.yml2
-rw-r--r--spec/rtems/event/val/mem-snd-rcv.yml2
-rw-r--r--spec/rtems/fatal/val/mem-fatal.yml2
-rw-r--r--spec/rtems/message/val/mem-bcst-rcv.yml2
-rw-r--r--spec/rtems/message/val/mem-snd-rcv-del.yml2
-rw-r--r--spec/rtems/message/val/mem-snd-rcv.yml2
-rw-r--r--spec/rtems/message/val/mem-ugt-rcv.yml2
-rw-r--r--spec/rtems/part/val/mem-get-ret-del.yml2
-rw-r--r--spec/rtems/part/val/mem-get-ret.yml2
-rw-r--r--spec/rtems/ratemon/val/mem-period-del.yml2
-rw-r--r--spec/rtems/ratemon/val/mem-period.yml2
-rw-r--r--spec/rtems/scheduler/val/mem-add-cpu.yml2
-rw-r--r--spec/rtems/scheduler/val/mem-rm-cpu.yml2
-rw-r--r--spec/rtems/sem/val/mem-obt-rel-del.yml2
-rw-r--r--spec/rtems/sem/val/mem-obt-rel.yml2
-rw-r--r--spec/rtems/signal/val/mem-catch-snd.yml2
-rw-r--r--spec/rtems/task/val/mem-delete.yml2
-rw-r--r--spec/rtems/task/val/mem-exit.yml2
-rw-r--r--spec/rtems/task/val/mem-get-affinity.yml2
-rw-r--r--spec/rtems/task/val/mem-get-priority.yml2
-rw-r--r--spec/rtems/task/val/mem-get-scheduler.yml2
-rw-r--r--spec/rtems/task/val/mem-mode.yml2
-rw-r--r--spec/rtems/task/val/mem-restart.yml2
-rw-r--r--spec/rtems/task/val/mem-set-affinity.yml2
-rw-r--r--spec/rtems/task/val/mem-set-priority.yml2
-rw-r--r--spec/rtems/task/val/mem-set-scheduler.yml2
-rw-r--r--spec/rtems/task/val/mem-sus-res.yml2
-rw-r--r--spec/rtems/task/val/mem-wake-after.yml2
-rw-r--r--spec/rtems/task/val/mem-wake-when.yml2
-rw-r--r--spec/rtems/timer/val/mem-after.yml2
-rw-r--r--spec/rtems/timer/val/mem-cancel.yml2
-rw-r--r--spec/rtems/timer/val/mem-delete.yml2
-rw-r--r--spec/rtems/timer/val/mem-reset.yml2
-rw-r--r--spec/rtems/timer/val/mem-srv-after.yml2
-rw-r--r--spec/rtems/timer/val/mem-srv-init.yml2
-rw-r--r--spec/rtems/timer/val/mem-srv-when.yml2
-rw-r--r--spec/rtems/timer/val/mem-when.yml2
-rw-r--r--spec/rtems/userext/val/mem-create.yml2
-rw-r--r--spec/rtems/userext/val/mem-delete.yml2
-rw-r--r--spec/rtems/val/mem-basic.yml2
-rw-r--r--spec/rtems/val/mem-smp-1.yml2
-rw-r--r--spec/rtems/val/mem-smp-global-2.yml2
-rw-r--r--spec/rtems/val/mem-smp-global-4.yml2
-rw-r--r--spec/rtems/val/mem-smp-part-2.yml2
-rw-r--r--spec/rtems/val/mem-smp-part-4.yml2
-rw-r--r--spec/score/interr/if/idle-thread-stack-too-small.yml17
-rw-r--r--spec/score/interr/if/no-memory-for-idle-task-stack.yml17
-rw-r--r--spec/score/thread/req/fatal-idle-thread-stack-too-small.yml19
-rw-r--r--spec/score/thread/val/fatal-idle-thread-stack-too-small.yml81
-rw-r--r--spec/testsuites/fatal-bsp-sparc-leon3-shutdown.yml2
-rw-r--r--spec/testsuites/fatal-idle-thread-stack-too-small.yml43
-rw-r--r--spec/testsuites/validation-acfg-0.yml2
-rw-r--r--spec/testsuites/validation-acfg-1.yml2
-rw-r--r--spec/testsuites/validation-io-kernel.yml2
-rw-r--r--spec/testsuites/validation-tls-1.yml3
69 files changed, 426 insertions, 12 deletions
diff --git a/generate_membench.py b/generate_membench.py
index 62573eaf..877c7d63 100755
--- a/generate_membench.py
+++ b/generate_membench.py
@@ -65,6 +65,8 @@ _CONFIG_DEFAULT = """#define TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+#define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/acfg/constraint/idle-task-min-stack-size.yml b/spec/acfg/constraint/idle-task-min-stack-size.yml
new file mode 100644
index 00000000..bf2ee7d9
--- /dev/null
+++ b/spec/acfg/constraint/idle-task-min-stack-size.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/usage-constraints
+rationale: null
+text: |
+ The value of the application configuration option shall be greater than or
+ equal to ${../if/idle-task-stack-size:/name}.
+type: constraint
diff --git a/spec/acfg/constraint/init-task-stack-allocator-for-idle.yml b/spec/acfg/constraint/init-task-stack-allocator-for-idle.yml
index 7f2586e9..2787fd7f 100644
--- a/spec/acfg/constraint/init-task-stack-allocator-for-idle.yml
+++ b/spec/acfg/constraint/init-task-stack-allocator-for-idle.yml
@@ -8,5 +8,5 @@ links:
rationale: null
text: |
The value of the application configuration option shall be defined to a valid
- function pointer of the type ``void *( *allocate )( uint32_t, size_t )``.
+ function pointer of the type ``void *( *allocate )( uint32_t, size_t * )``.
type: constraint
diff --git a/spec/acfg/constraint/task-stack-allocator-for-idle-do-or-die.yml b/spec/acfg/constraint/task-stack-allocator-for-idle-do-or-die.yml
new file mode 100644
index 00000000..c20cbdc7
--- /dev/null
+++ b/spec/acfg/constraint/task-stack-allocator-for-idle-do-or-die.yml
@@ -0,0 +1,13 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/usage-constraints
+rationale: null
+text: |
+ The IDLE task stack allocator shall return a pointer to the allocated memory
+ area or terminate the system with a fatal error if the allocation request
+ cannot be satisfied.
+type: constraint
diff --git a/spec/acfg/constraint/task-stack-allocator-for-idle-increase-size.yml b/spec/acfg/constraint/task-stack-allocator-for-idle-increase-size.yml
new file mode 100644
index 00000000..0face249
--- /dev/null
+++ b/spec/acfg/constraint/task-stack-allocator-for-idle-increase-size.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/usage-constraints
+rationale: null
+text: |
+ The IDLE task stack allocator may increase the size of the allocated memory
+ area.
+type: constraint
diff --git a/spec/acfg/if/idle-task-storage-size.yml b/spec/acfg/if/idle-task-storage-size.yml
new file mode 100644
index 00000000..66353a4a
--- /dev/null
+++ b/spec/acfg/if/idle-task-storage-size.yml
@@ -0,0 +1,55 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+appl-config-option-type: integer
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+default-value: |
+ This configuration option has no default value. If it is not specified, then
+ the task storage area for each ${/glossary/idletask:/term} will allocated
+ from the RTEMS Workspace or through a custom IDLE task stack allocator.
+description: |
+ If this configuration option is specified, then the task storage areas for
+ the ${/glossary/idletask:/plural} are statically allocated by
+ <rtems/confdefs.h>. The value of this configuration option defines the size
+ in bytes of the task storage area of each IDLE task in the system.
+enabled-by: true
+index-entries:
+- IDLE task storage size
+interface-type: appl-config-option
+links:
+- role: interface-placement
+ uid: domain
+- role: interface-ingroup
+ uid: group-idle
+- role: constraint
+ uid: ../constraint/idle-task-min-stack-size
+name: CONFIGURE_IDLE_TASK_STORAGE_SIZE
+notes: |
+ By default, the IDLE task storage areas are allocated from the RTEMS
+ Workspace. Applications which do not want to use a heap allocator can use
+ this configuration option to use statically allocated memory for the IDLE
+ task storage areas. The task storage area contains the task stack, the
+ thread-local storage, and the floating-point context on architectures with a
+ separate floating-point context. The size of the thread-local storage area
+ is defined at link time or by the ${max-thread-local-storage-size:/name}
+ configuration option. You have to estimate the actual thread-local storage
+ size if you want to use this configuration option. If the IDLE task stack
+ size would be less than the value defined by the
+ ${idle-task-stack-size:/name} configuration option, for example because the
+ thread-local storage size is larger than expected, then the system terminates
+ with the ${/score/interr/if/internal-error-core:/name} fatal source and the
+ ${/score/interr/if/idle-thread-stack-too-small:/name} fatal code during
+ system initialization.
+
+ The value of this configuration option is passed to
+ ${/rtems/task/if/storage-size:/name} by <rtems/confdefs.h> to determine the
+ actual size of the statically allocated area to take architecture-specific
+ overheads into account.
+
+ The
+
+ * ``CONFIGURE_IDLE_TASK_STORAGE_SIZE``, and
+
+ * ${task-stack-allocator-for-idle:/name}
+
+ configuration options are mutually exclusive.
+type: interface
diff --git a/spec/acfg/if/task-stack-allocator-for-idle.yml b/spec/acfg/if/task-stack-allocator-for-idle.yml
index 26502816..3ecb8bb0 100644
--- a/spec/acfg/if/task-stack-allocator-for-idle.yml
+++ b/spec/acfg/if/task-stack-allocator-for-idle.yml
@@ -1,14 +1,14 @@
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
appl-config-option-type: initializer
copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
- Copyright (C) 2021 On-Line Applications Research Corporation (OAR)
default-value: |
- The default value is ``_Stack_Allocator_allocate_for_idle_default``, which
- indicates that IDLE task stacks will be allocated from an area statically
- allocated by ``<rtems/confdefs.h>``.
+ By default, the IDLE task storage area will be allocated from the RTEMS
+ Workspace.
description: |
The value of this configuration option is the address for the stack allocator
- allocate handler used to allocate the task stack of each
+ allocate handler used to allocate the task storage area of each
${/glossary/idletask:/term}.
enabled-by: true
index-entries:
@@ -21,10 +21,25 @@ links:
uid: group-stackalloc
- role: constraint
uid: ../constraint/init-task-stack-allocator-for-idle
+- role: constraint
+ uid: ../constraint/task-stack-allocator-for-idle-do-or-die
+- role: constraint
+ uid: ../constraint/task-stack-allocator-for-idle-increase-size
name: CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
notes: |
This configuration option is independent of the other thread stack allocator
- configuration options. It is assumed that any memory allocated for the stack
- of an ${/glossary/idletask:/term} will not be from the RTEMS Workspace or the
- memory statically allocated by default.
+ configuration options. It is assumed that any memory allocated for the task
+ storage area of an ${/glossary/idletask:/term} will not be from the RTEMS
+ Workspace.
+
+ The IDLE task stack allocator may increase the size of the allocated memory
+ area to account for the actually allocated memory area.
+
+ The
+
+ * ${idle-task-storage-size:/name}, and
+
+ * ``CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE``
+
+ configuration options are mutually exclusive.
type: interface
diff --git a/spec/acfg/req/idle-task-storage-size.yml b/spec/acfg/req/idle-task-storage-size.yml
new file mode 100644
index 00000000..53d4fdf0
--- /dev/null
+++ b/spec/acfg/req/idle-task-storage-size.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+functional-type: function
+links:
+- role: interface-function
+ uid: ../if/idle-task-storage-size
+- role: requirement-refinement
+ uid: group
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ The application configuration option shall define the task storage area size
+ for an ${/glossary/idletask:/term}.
+type: requirement
diff --git a/spec/acfg/val/default.yml b/spec/acfg/val/default.yml
index 3cf7f91b..50323cc6 100644
--- a/spec/acfg/val/default.yml
+++ b/spec/acfg/val/default.yml
@@ -20,8 +20,8 @@ test-actions:
- role: validation
uid: /rtems/config/req/get-idle-task
- brief: |
- Check the default value ${/acfg/if/idle-task-stack-size:/name} where the
- optional BSP-provided default value is enabled.
+ Check the default value of ${/acfg/if/idle-task-stack-size:/name} where
+ the optional BSP-provided default value is enabled.
code: |
T_step_eq_sz(
${step},
@@ -38,8 +38,8 @@ test-actions:
- role: validation
uid: ../if/disable-bsp-settings
- brief: |
- Check the default value ${/acfg/if/interrupt-stack-size:/name} where the
- optional BSP-provided default value is enabled.
+ Check the default value of ${/acfg/if/interrupt-stack-size:/name} where
+ the optional BSP-provided default value is enabled.
code: |
T_step_eq_sz(
${step},
diff --git a/spec/bsp/val/mem-clock.yml b/spec/bsp/val/mem-clock.yml
index 124ff545..4be84daf 100644
--- a/spec/bsp/val/mem-clock.yml
+++ b/spec/bsp/val/mem-clock.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/barrier/val/mem-wait-rel-del.yml b/spec/rtems/barrier/val/mem-wait-rel-del.yml
index d262f777..7d278c45 100644
--- a/spec/rtems/barrier/val/mem-wait-rel-del.yml
+++ b/spec/rtems/barrier/val/mem-wait-rel-del.yml
@@ -38,6 +38,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/barrier/val/mem-wait-rel.yml b/spec/rtems/barrier/val/mem-wait-rel.yml
index 384d3f2b..76d8786e 100644
--- a/spec/rtems/barrier/val/mem-wait-rel.yml
+++ b/spec/rtems/barrier/val/mem-wait-rel.yml
@@ -36,6 +36,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/clock/val/mem-get-uptime.yml b/spec/rtems/clock/val/mem-get-uptime.yml
index 466b0fa0..a32d4987 100644
--- a/spec/rtems/clock/val/mem-get-uptime.yml
+++ b/spec/rtems/clock/val/mem-get-uptime.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/clock/val/mem-set-get-tod.yml b/spec/rtems/clock/val/mem-set-get-tod.yml
index 466e2afb..b9fcb439 100644
--- a/spec/rtems/clock/val/mem-set-get-tod.yml
+++ b/spec/rtems/clock/val/mem-set-get-tod.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/clock/val/mem-set.yml b/spec/rtems/clock/val/mem-set.yml
index 95e2f86c..72422be6 100644
--- a/spec/rtems/clock/val/mem-set.yml
+++ b/spec/rtems/clock/val/mem-set.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/event/val/mem-snd-rcv.yml b/spec/rtems/event/val/mem-snd-rcv.yml
index ee975496..a06a5257 100644
--- a/spec/rtems/event/val/mem-snd-rcv.yml
+++ b/spec/rtems/event/val/mem-snd-rcv.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/fatal/val/mem-fatal.yml b/spec/rtems/fatal/val/mem-fatal.yml
index fd0d8685..896b244c 100644
--- a/spec/rtems/fatal/val/mem-fatal.yml
+++ b/spec/rtems/fatal/val/mem-fatal.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/message/val/mem-bcst-rcv.yml b/spec/rtems/message/val/mem-bcst-rcv.yml
index 2bf6e6a1..ba27ec9e 100644
--- a/spec/rtems/message/val/mem-bcst-rcv.yml
+++ b/spec/rtems/message/val/mem-bcst-rcv.yml
@@ -34,6 +34,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/message/val/mem-snd-rcv-del.yml b/spec/rtems/message/val/mem-snd-rcv-del.yml
index acb6905f..5bf90252 100644
--- a/spec/rtems/message/val/mem-snd-rcv-del.yml
+++ b/spec/rtems/message/val/mem-snd-rcv-del.yml
@@ -35,6 +35,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/message/val/mem-snd-rcv.yml b/spec/rtems/message/val/mem-snd-rcv.yml
index 288048d1..c6649012 100644
--- a/spec/rtems/message/val/mem-snd-rcv.yml
+++ b/spec/rtems/message/val/mem-snd-rcv.yml
@@ -34,6 +34,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/message/val/mem-ugt-rcv.yml b/spec/rtems/message/val/mem-ugt-rcv.yml
index 32d8ae45..067a112e 100644
--- a/spec/rtems/message/val/mem-ugt-rcv.yml
+++ b/spec/rtems/message/val/mem-ugt-rcv.yml
@@ -34,6 +34,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/part/val/mem-get-ret-del.yml b/spec/rtems/part/val/mem-get-ret-del.yml
index 67e89b6e..6b747b58 100644
--- a/spec/rtems/part/val/mem-get-ret-del.yml
+++ b/spec/rtems/part/val/mem-get-ret-del.yml
@@ -38,6 +38,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/part/val/mem-get-ret.yml b/spec/rtems/part/val/mem-get-ret.yml
index ccf1e4c4..af8c8456 100644
--- a/spec/rtems/part/val/mem-get-ret.yml
+++ b/spec/rtems/part/val/mem-get-ret.yml
@@ -37,6 +37,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/ratemon/val/mem-period-del.yml b/spec/rtems/ratemon/val/mem-period-del.yml
index 5435f18b..8da2570d 100644
--- a/spec/rtems/ratemon/val/mem-period-del.yml
+++ b/spec/rtems/ratemon/val/mem-period-del.yml
@@ -36,6 +36,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/ratemon/val/mem-period.yml b/spec/rtems/ratemon/val/mem-period.yml
index e730e249..852cf8df 100644
--- a/spec/rtems/ratemon/val/mem-period.yml
+++ b/spec/rtems/ratemon/val/mem-period.yml
@@ -35,6 +35,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/scheduler/val/mem-add-cpu.yml b/spec/rtems/scheduler/val/mem-add-cpu.yml
index 94e3ccde..5a01b571 100644
--- a/spec/rtems/scheduler/val/mem-add-cpu.yml
+++ b/spec/rtems/scheduler/val/mem-add-cpu.yml
@@ -37,6 +37,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/scheduler/val/mem-rm-cpu.yml b/spec/rtems/scheduler/val/mem-rm-cpu.yml
index fd61ae13..161b4c87 100644
--- a/spec/rtems/scheduler/val/mem-rm-cpu.yml
+++ b/spec/rtems/scheduler/val/mem-rm-cpu.yml
@@ -37,6 +37,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/sem/val/mem-obt-rel-del.yml b/spec/rtems/sem/val/mem-obt-rel-del.yml
index 30a58ca4..25d6965d 100644
--- a/spec/rtems/sem/val/mem-obt-rel-del.yml
+++ b/spec/rtems/sem/val/mem-obt-rel-del.yml
@@ -38,6 +38,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/sem/val/mem-obt-rel.yml b/spec/rtems/sem/val/mem-obt-rel.yml
index b568a979..512b580f 100644
--- a/spec/rtems/sem/val/mem-obt-rel.yml
+++ b/spec/rtems/sem/val/mem-obt-rel.yml
@@ -36,6 +36,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/signal/val/mem-catch-snd.yml b/spec/rtems/signal/val/mem-catch-snd.yml
index a8676fa6..b86d3710 100644
--- a/spec/rtems/signal/val/mem-catch-snd.yml
+++ b/spec/rtems/signal/val/mem-catch-snd.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-delete.yml b/spec/rtems/task/val/mem-delete.yml
index 25e60f03..98fb3d02 100644
--- a/spec/rtems/task/val/mem-delete.yml
+++ b/spec/rtems/task/val/mem-delete.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-exit.yml b/spec/rtems/task/val/mem-exit.yml
index c9ed6b23..bfaf14df 100644
--- a/spec/rtems/task/val/mem-exit.yml
+++ b/spec/rtems/task/val/mem-exit.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-get-affinity.yml b/spec/rtems/task/val/mem-get-affinity.yml
index 5e8a21a7..5aa194fb 100644
--- a/spec/rtems/task/val/mem-get-affinity.yml
+++ b/spec/rtems/task/val/mem-get-affinity.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-get-priority.yml b/spec/rtems/task/val/mem-get-priority.yml
index 977599db..f65e6652 100644
--- a/spec/rtems/task/val/mem-get-priority.yml
+++ b/spec/rtems/task/val/mem-get-priority.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-get-scheduler.yml b/spec/rtems/task/val/mem-get-scheduler.yml
index 43cb53ed..3be4f6fc 100644
--- a/spec/rtems/task/val/mem-get-scheduler.yml
+++ b/spec/rtems/task/val/mem-get-scheduler.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-mode.yml b/spec/rtems/task/val/mem-mode.yml
index f677d85e..b8086934 100644
--- a/spec/rtems/task/val/mem-mode.yml
+++ b/spec/rtems/task/val/mem-mode.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-restart.yml b/spec/rtems/task/val/mem-restart.yml
index a3190764..3a91d5f9 100644
--- a/spec/rtems/task/val/mem-restart.yml
+++ b/spec/rtems/task/val/mem-restart.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-set-affinity.yml b/spec/rtems/task/val/mem-set-affinity.yml
index 081d7612..981e7e94 100644
--- a/spec/rtems/task/val/mem-set-affinity.yml
+++ b/spec/rtems/task/val/mem-set-affinity.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-set-priority.yml b/spec/rtems/task/val/mem-set-priority.yml
index 26a4a6d2..5571f23d 100644
--- a/spec/rtems/task/val/mem-set-priority.yml
+++ b/spec/rtems/task/val/mem-set-priority.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-set-scheduler.yml b/spec/rtems/task/val/mem-set-scheduler.yml
index 32506e46..18466ec8 100644
--- a/spec/rtems/task/val/mem-set-scheduler.yml
+++ b/spec/rtems/task/val/mem-set-scheduler.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-sus-res.yml b/spec/rtems/task/val/mem-sus-res.yml
index 7845108b..df2ca5df 100644
--- a/spec/rtems/task/val/mem-sus-res.yml
+++ b/spec/rtems/task/val/mem-sus-res.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-wake-after.yml b/spec/rtems/task/val/mem-wake-after.yml
index c2a69022..f5a71622 100644
--- a/spec/rtems/task/val/mem-wake-after.yml
+++ b/spec/rtems/task/val/mem-wake-after.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/task/val/mem-wake-when.yml b/spec/rtems/task/val/mem-wake-when.yml
index f8a3db36..92ad3565 100644
--- a/spec/rtems/task/val/mem-wake-when.yml
+++ b/spec/rtems/task/val/mem-wake-when.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-after.yml b/spec/rtems/timer/val/mem-after.yml
index 6b4b1fbb..a433d5c1 100644
--- a/spec/rtems/timer/val/mem-after.yml
+++ b/spec/rtems/timer/val/mem-after.yml
@@ -33,6 +33,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-cancel.yml b/spec/rtems/timer/val/mem-cancel.yml
index b114432c..3f9e4d49 100644
--- a/spec/rtems/timer/val/mem-cancel.yml
+++ b/spec/rtems/timer/val/mem-cancel.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-delete.yml b/spec/rtems/timer/val/mem-delete.yml
index 0a4dc506..a754c77a 100644
--- a/spec/rtems/timer/val/mem-delete.yml
+++ b/spec/rtems/timer/val/mem-delete.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-reset.yml b/spec/rtems/timer/val/mem-reset.yml
index 3ebbeb26..0b0f73ba 100644
--- a/spec/rtems/timer/val/mem-reset.yml
+++ b/spec/rtems/timer/val/mem-reset.yml
@@ -32,6 +32,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-srv-after.yml b/spec/rtems/timer/val/mem-srv-after.yml
index 3678d8ec..31ffd328 100644
--- a/spec/rtems/timer/val/mem-srv-after.yml
+++ b/spec/rtems/timer/val/mem-srv-after.yml
@@ -33,6 +33,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-srv-init.yml b/spec/rtems/timer/val/mem-srv-init.yml
index 03a0b361..6f12b1f4 100644
--- a/spec/rtems/timer/val/mem-srv-init.yml
+++ b/spec/rtems/timer/val/mem-srv-init.yml
@@ -46,6 +46,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-srv-when.yml b/spec/rtems/timer/val/mem-srv-when.yml
index 94085828..3cd7779e 100644
--- a/spec/rtems/timer/val/mem-srv-when.yml
+++ b/spec/rtems/timer/val/mem-srv-when.yml
@@ -33,6 +33,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/timer/val/mem-when.yml b/spec/rtems/timer/val/mem-when.yml
index 5bb37026..aef0aca5 100644
--- a/spec/rtems/timer/val/mem-when.yml
+++ b/spec/rtems/timer/val/mem-when.yml
@@ -33,6 +33,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/userext/val/mem-create.yml b/spec/rtems/userext/val/mem-create.yml
index 9b715e7f..357ea104 100644
--- a/spec/rtems/userext/val/mem-create.yml
+++ b/spec/rtems/userext/val/mem-create.yml
@@ -34,6 +34,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/userext/val/mem-delete.yml b/spec/rtems/userext/val/mem-delete.yml
index 248646c7..ee19b4eb 100644
--- a/spec/rtems/userext/val/mem-delete.yml
+++ b/spec/rtems/userext/val/mem-delete.yml
@@ -35,6 +35,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/val/mem-basic.yml b/spec/rtems/val/mem-basic.yml
index 2ac0520a..f2dda316 100644
--- a/spec/rtems/val/mem-basic.yml
+++ b/spec/rtems/val/mem-basic.yml
@@ -31,6 +31,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/val/mem-smp-1.yml b/spec/rtems/val/mem-smp-1.yml
index 4239a748..276ea181 100644
--- a/spec/rtems/val/mem-smp-1.yml
+++ b/spec/rtems/val/mem-smp-1.yml
@@ -38,6 +38,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/val/mem-smp-global-2.yml b/spec/rtems/val/mem-smp-global-2.yml
index cba3d682..4169306b 100644
--- a/spec/rtems/val/mem-smp-global-2.yml
+++ b/spec/rtems/val/mem-smp-global-2.yml
@@ -38,6 +38,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/val/mem-smp-global-4.yml b/spec/rtems/val/mem-smp-global-4.yml
index 1988ddd4..1300fa38 100644
--- a/spec/rtems/val/mem-smp-global-4.yml
+++ b/spec/rtems/val/mem-smp-global-4.yml
@@ -38,6 +38,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/val/mem-smp-part-2.yml b/spec/rtems/val/mem-smp-part-2.yml
index db2198fa..24403803 100644
--- a/spec/rtems/val/mem-smp-part-2.yml
+++ b/spec/rtems/val/mem-smp-part-2.yml
@@ -55,6 +55,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/rtems/val/mem-smp-part-4.yml b/spec/rtems/val/mem-smp-part-4.yml
index 325a5e96..ac329ee7 100644
--- a/spec/rtems/val/mem-smp-part-4.yml
+++ b/spec/rtems/val/mem-smp-part-4.yml
@@ -63,6 +63,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/score/interr/if/idle-thread-stack-too-small.yml b/spec/score/interr/if/idle-thread-stack-too-small.yml
new file mode 100644
index 00000000..f15e965e
--- /dev/null
+++ b/spec/score/interr/if/idle-thread-stack-too-small.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-enumerator
+links:
+- role: interface-placement
+ uid: header
+- role: interface-ingroup
+ uid: group
+name: INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALL
+references:
+- identifier: internal_errors
+ name: c-user
+ type: document
+type: interface
diff --git a/spec/score/interr/if/no-memory-for-idle-task-stack.yml b/spec/score/interr/if/no-memory-for-idle-task-stack.yml
new file mode 100644
index 00000000..96c1b0b8
--- /dev/null
+++ b/spec/score/interr/if/no-memory-for-idle-task-stack.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-enumerator
+links:
+- role: interface-placement
+ uid: header
+- role: interface-ingroup
+ uid: group
+name: INTERNAL_ERROR_NO_MEMORY_FOR_IDLE_TASK_STACK
+references:
+- identifier: internal_errors
+ name: c-user
+ type: document
+type: interface
diff --git a/spec/score/thread/req/fatal-idle-thread-stack-too-small.yml b/spec/score/thread/req/fatal-idle-thread-stack-too-small.yml
new file mode 100644
index 00000000..7974625d
--- /dev/null
+++ b/spec/score/thread/req/fatal-idle-thread-stack-too-small.yml
@@ -0,0 +1,19 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/fatal-error
+- role: requirement-refinement
+ uid: ../if/group
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ If the idle thread stack is less than the configured stack size for idle
+ threads, then the system shall terminate with the
+ ${/score/interr/if/internal-error-core:/name} fatal source and the
+ ${/score/interr/if/idle-thread-stack-too-small:/name} fatal code.
+type: requirement
diff --git a/spec/score/thread/val/fatal-idle-thread-stack-too-small.yml b/spec/score/thread/val/fatal-idle-thread-stack-too-small.yml
new file mode 100644
index 00000000..1b24fc8d
--- /dev/null
+++ b/spec/score/thread/val/fatal-idle-thread-stack-too-small.yml
@@ -0,0 +1,81 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+test-actions:
+- action-brief: |
+ The test action is carried out by configuring a thread-local storage demand
+ which leads to a too small idle thread stack size.
+ action-code: |
+ /* Nothing to do */
+ checks:
+ - brief: |
+ Check that the expected fatal source is present.
+ code: |
+ T_step_eq_int( ${step}, ctx->source, INTERNAL_ERROR_CORE );
+ links:
+ - role: validation
+ uid: ../req/fatal-idle-thread-stack-too-small
+ - brief: |
+ Check that the expected fatal code is present.
+ code: |
+ T_step_eq_ulong(
+ ${step},
+ ctx->code,
+ INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALL
+ );
+ links:
+ - role: validation
+ uid: ../req/fatal-idle-thread-stack-too-small
+ - brief: |
+ Check the configured value of ${/acfg/if/idle-task-storage-size:/name}.
+ code: |
+ T_step_eq_sz(
+ ${step},
+ _Stack_Allocator_allocate_for_idle_storage_size,
+ RTEMS_ALIGN_UP(
+ RTEMS_TASK_STORAGE_SIZE(
+ RTEMS_MINIMUM_STACK_SIZE,
+ RTEMS_DEFAULT_ATTRIBUTES
+ ),
+ CPU_INTERRUPT_STACK_ALIGNMENT
+ )
+ );
+ links:
+ - role: validation
+ uid: /acfg/req/idle-task-storage-size
+ links: []
+test-brief: |
+ Tests a fatal error caused by a too small idle thread stack size.
+test-context: []
+test-context-support: null
+test-description: null
+test-header:
+ code: null
+ freestanding: true
+ includes:
+ - rtems.h
+ local-includes: []
+ run-params:
+ - description: |
+ is the fatal source.
+ dir: null
+ name: source
+ specifier: ${/rtems/userext/if/fatal-source:/name} ${.:name}
+ - description: |
+ is the fatal code.
+ dir: null
+ name: code
+ specifier: ${/rtems/userext/if/fatal-code:/name} ${.:name}
+ target: testsuites/validation/tr-fatal-idle-thread-stack-too-small.h
+test-includes:
+- rtems.h
+test-local-includes:
+- tr-fatal-idle-thread-stack-too-small.h
+test-setup: null
+test-stop: null
+test-support: null
+test-target: testsuites/validation/tr-fatal-idle-thread-stack-too-small.c
+test-teardown: null
+type: test-case
diff --git a/spec/testsuites/fatal-bsp-sparc-leon3-shutdown.yml b/spec/testsuites/fatal-bsp-sparc-leon3-shutdown.yml
index 70d33f74..4df77ecc 100644
--- a/spec/testsuites/fatal-bsp-sparc-leon3-shutdown.yml
+++ b/spec/testsuites/fatal-bsp-sparc-leon3-shutdown.yml
@@ -81,6 +81,8 @@ test-code: |
#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
static void *ShutdownIdleBody( uintptr_t arg )
diff --git a/spec/testsuites/fatal-idle-thread-stack-too-small.yml b/spec/testsuites/fatal-idle-thread-stack-too-small.yml
new file mode 100644
index 00000000..cb19edfa
--- /dev/null
+++ b/spec/testsuites/fatal-idle-thread-stack-too-small.yml
@@ -0,0 +1,43 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: /req/test-suites
+test-brief: |
+ This validation test suite contains a test case which triggers a fatal error
+ during system initialization.
+test-code: |
+ const char rtems_test_name[] = "${.:/test-suite-name}";
+
+ #define FATAL_SYSINIT_RUN ScoreThreadValFatalIdleThreadStackTooSmall_Run
+
+ static _Thread_local volatile uint8_t zero[ RTEMS_MINIMUM_STACK_SIZE ];
+
+ static void Init( rtems_task_argument arg )
+ {
+ (void) arg;
+ rtems_fatal( RTEMS_FATAL_SOURCE_EXIT, zero[ 0 ] + 1 );
+ }
+
+ #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+ #define CONFIGURE_MAXIMUM_TASKS 1
+
+ #define CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE 1
+
+ #define CONFIGURE_INIT_TASK_PRIORITY 0
+
+ #define CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
+ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+ #include "ts-fatal-sysinit.h"
+test-description: null
+test-includes: []
+test-local-includes:
+- tr-fatal-idle-thread-stack-too-small.h
+test-suite-name: FatalIdleThreadStackTooSmall
+test-target: testsuites/validation/ts-fatal-idle-thread-stack-too-small.c
+type: test-suite
diff --git a/spec/testsuites/validation-acfg-0.yml b/spec/testsuites/validation-acfg-0.yml
index 5d9bd6df..ff2b227d 100644
--- a/spec/testsuites/validation-acfg-0.yml
+++ b/spec/testsuites/validation-acfg-0.yml
@@ -12,6 +12,8 @@ test-brief: |
test-code: |
const char rtems_test_name[] = "${.:/test-suite-name}";
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
void *IdleBody( uintptr_t ignored )
diff --git a/spec/testsuites/validation-acfg-1.yml b/spec/testsuites/validation-acfg-1.yml
index f626a666..97f52b80 100644
--- a/spec/testsuites/validation-acfg-1.yml
+++ b/spec/testsuites/validation-acfg-1.yml
@@ -33,6 +33,8 @@ test-code: |
#define CONFIGURE_DISABLE_BSP_SETTINGS
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
diff --git a/spec/testsuites/validation-io-kernel.yml b/spec/testsuites/validation-io-kernel.yml
index 62ca650e..4f592ae6 100644
--- a/spec/testsuites/validation-io-kernel.yml
+++ b/spec/testsuites/validation-io-kernel.yml
@@ -74,6 +74,8 @@ test-code: |
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES { }
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE RTEMS_MINIMUM_STACK_SIZE
+
#define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
#define CONFIGURE_IDLE_TASK_BODY IdleBody
diff --git a/spec/testsuites/validation-tls-1.yml b/spec/testsuites/validation-tls-1.yml
index c7bdd894..1f4dcaa7 100644
--- a/spec/testsuites/validation-tls-1.yml
+++ b/spec/testsuites/validation-tls-1.yml
@@ -11,6 +11,9 @@ test-brief: |
test-code: |
const char rtems_test_name[] = "${.:/test-suite-name}";
+ #define CONFIGURE_IDLE_TASK_STORAGE_SIZE \
+ ( RTEMS_MINIMUM_STACK_SIZE + 4096 )
+
#include "ts-idle.h"
test-description: null
test-includes: []