Commit Graph

33192 Commits

Author SHA1 Message Date
Sebastian Huber
dd9e50102b score: Add _Objects_Activate_unlimited()
Update #3835.
2020-02-12 09:08:41 +01:00
Sebastian Huber
8a43adbe47 score: Add _Freechain_Extend()
Update #3835.
2020-02-12 09:08:41 +01:00
Sebastian Huber
4eab96bbb4 score: Add _Freechain_Pop()
Update #3835.
2020-02-12 09:08:41 +01:00
Sebastian Huber
8ff1af1655 score: Add _Freechain_Is_empty()
Update #3835.
2020-02-12 09:08:40 +01:00
Sebastian Huber
36e59b2bbc score: _Objects_Extend_information()
Return block index in _Objects_Extend_information().  This allows to
customize the objects information extend.

Update #3835.
2020-02-12 09:08:40 +01:00
Sebastian Huber
8e118f2275 score: Inline _Objects_Namespace_remove_u32()
This function is simple enough to be inlined.

Update #3835.
2020-02-12 09:08:40 +01:00
Sebastian Huber
6135747989 score: Split up objects free
Split up the different objects free methods into separate functions.
This helps to avoid a dependency on the workspace in case no objects or
a static set of objects is configured.

Update #3835.
2020-02-12 09:08:37 +01:00
Sebastian Huber
24851567c3 score: Split up objects allocation
Split up the different objects allocation methods into separate
functions.  This helps to avoid a dependency on the workspace in case no
objects or a static set of objects is configured.

Change license to BSD-2-Clause according to file histories.

Update #3053.
Update #3835.
2020-02-12 09:08:37 +01:00
Sebastian Huber
6f3bc0e320 score: Add _Objects_Free_objects_block()
This is a preparation to allow a customization of the objects
information extend.

Update #3835.
2020-02-12 09:08:37 +01:00
Sebastian Huber
32991495b4 score: Statically allocate idle/MPCI stacks
Place idle and MPCI stacks into extra linker sections.  This can be
optionally used by applications to control the placement of the stacks.

Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
01d59443b0 score: Move thread stack allocation
Move thread stack allocation to caller side of _Thread_Initialize().

Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
4c9deb6c10 score: Add _Stack_Extend_size()
Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
a08dcb2f7c score: Add Thread_Configuration
Add the Thread_Configuration structure to reduce the parameter count of
_Thread_Initialize().  This makes it easier to add more parameters in
the future.  It simplifies the code generation since most architectures
do not have that many registers available for function parameters.

Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
00c7ad4cab score: Split stack allocator configuration
This allows the linker garbage collection to perform its work.

Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
f4dbf37dd4 score: Simplify TLS area allocation
Use the stack area to allocate the TLS area.

Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
fc398fde77 score: Simplify FP context allocation
Use the stack area to allocate the FP context.  This considerably
simplifies the application configuration since the task count no longer
influences the configured work space size.  With this change the stack
space size is overestimated since an FP context for each thread is
accounted.  Memory constraint applications can use the stack size for
fine tuning.

Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
0e1ac9171a score: Remove _Stack_Ensure_minimum() call
This call is superfluous since _Thread_Initialize() will do this also.

Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
0bde56b1b4 score: Simplify thread stack free
Update #3835.
2020-02-12 09:08:36 +01:00
Sebastian Huber
a0211fc9f9 score: Simplify thread stack allocation
Remove superfluous Thread_Control::Start::stack member.

Update #3835.
2020-02-12 09:08:35 +01:00
Sebastian Huber
bf39a9e2a8 score: Remove superfluous FP types/defines
Update #3835.
2020-02-12 09:08:35 +01:00
Sebastian Huber
b900f507cb arm/xilinx-zynq: Split console driver files
This avoids to pull in via printk() the Termios support which pulls in
the file system support.  This fixes a spconfig02 test failure.
2020-02-12 09:08:35 +01:00
Christian Mauderer
adf7e7538f bsp/imx: Parse fdt pinctrl values and setup iomux
Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
b58f994492 bsp/imx: Support imx6ul iomux.
Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
d00d690557 bsp/imx: Allow gapless SPI transfers.
This uses the tx-threshold to reduce gaps in SPI transmissions.

Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
9c7bffb541 bsp/imx: Use muxed mode for serials.
Update #3869.
2020-02-11 09:17:02 +01:00
Sebastian Huber
65e51e9f76 bsp/imx: Increase device memory area
The new area is used by the i.MX 6UltraLite for example.

Update #3869.
2020-02-11 09:17:02 +01:00
Christian Mauderer
c561bf4c9a bsp/imx: Allow GIC in different device tree node.
Update #3869.
2020-02-11 09:17:02 +01:00
Sebastian Huber
8854a2b54b bsp/imx: Avoid hard-coded GIC base address
Update #3869.
2020-02-11 09:17:02 +01:00
Sebastian Huber
b2ddf4f7af sptests/spregion_err01: Reduce memory demands
Make functions and data static.
2020-02-11 08:04:48 +01:00
Sebastian Huber
90f11edd01 termios: Fix input canonical mode
Canonical input processing was broken by
667501a314 as shown by test case
termios09.

Update #3800.
2020-02-10 09:01:10 +01:00
Sebastian Huber
2d07ce6d21 config: Add CONFIGURE_DIRTY_MEMORY
Replace the BSP_DIRTY_MEMORY BSP option with a CONFIGURE_DIRTY_MEMORY
configuration option.

Update #3843.
2020-02-06 15:19:36 +01:00
Sebastian Huber
8ecbc3826e sysinit: Add RTEMS_SYSINIT_ZERO_MEMORY
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.
2020-02-06 15:19:35 +01:00
Sebastian Huber
1d43a976a8 config: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use
defined/undefined instead of TRUE/FALSE.

Close #3862.
2020-02-06 15:19:35 +01:00
Sebastian Huber
6fad1f0aba samples/iostream: Simplify configuration
Remove CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY since it is not needed and
just increases the boot time.
2020-02-06 15:19:35 +01:00
Sebastian Huber
cadff8f7df config: Remove BSP_ZERO_WORKSPACE_AUTOMATICALLY
Update #3863.
2020-02-06 15:19:35 +01:00
Sebastian Huber
9fac9f93a5 score: Fix linker sets on small data area targets
Update #3865.
2020-02-06 15:19:35 +01:00
Sebastian Huber
bba1475bc5 score: Optimize STATUS_BUILD()
Do not cast to unsigned int to avoid an unsigned long long enum type.
Use a multiplication/division instead to preserve the signedness of the
POSIX status.
2020-02-04 11:25:45 +01:00
Sebastian Huber
ccaec9661f libtests/malloc04: Fix typo
Update #3838.
2020-02-04 11:25:45 +01:00
Sebastian Huber
1cd283a723 fstests/fsstatvfs: Include missing header file 2020-02-04 06:24:33 +01:00
Sebastian Huber
e44ae805f7 config: Add CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
Update #3861.
2020-02-04 06:24:26 +01:00
Sebastian Huber
c344e5828c Use RTEMS_SYSINIT_ORDER_LAST_BUT_5
Use RTEMS_SYSINIT_ORDER_LAST_BUT_5 instead of RTEMS_SYSINIT_ORDER_LAST
to allow applications and support functions to place system
initialization handlers behind the standard handlers.

Update #3838.
2020-02-04 06:06:42 +01:00
Sebastian Huber
f7c5f94360 sysinit: Add RTEMS_SYSINIT_ORDER_LAST_BUT_[1-9]
Update #3838.
2020-02-04 06:06:42 +01:00
Sebastian Huber
eea21eaca1 bsps: Rework work area initialization
The work area initialization was done by the BSP through
bsp_work_area_initialize(). This approach predated the system
initialization through the system initialization linker set. The
workspace and C program heap were unconditionally initialized.  The aim
is to support RTEMS application configurations which do not need the
workspace and C program heap.  In these configurations, the workspace
and C prgram heap should not get initialized.

Change all bsp_work_area_initialize() to implement _Memory_Get()
instead.  Move the dirty memory, sbrk(), per-CPU data, workspace, and
malloc() heap initialization into separate system initialization steps.
This makes it also easier to test the individual initialization steps.

This change adds a dependency to _Heap_Extend() to all BSPs.  This
dependency will be removed in a follow up change.

Update #3838.
2020-02-04 06:06:41 +01:00
Sebastian Huber
07e2eacf89 bsps: Remove uses of BSP_GET_WORK_AREA_DEBUG
The code covered by BSP_GET_WORK_AREA_DEBUG was basically dead code
since there was no normal way to activate it (e.g. via a BSP
configuration option).  A follow up patch will bring back this feature
through a CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION configuration option.

Update #3838.
2020-02-04 06:06:30 +01:00
Sebastian Huber
c184b0cf31 stackchk: Add RTEMS_SYSINIT_ISR_STACK
Use a dedicated system initialization step for the stack checker
interrupt stack support.

Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
34a7a12f48 bsps: Add RTEMS_SYSINIT_BSP_EARLY
Add new BSP system initialization step for work to be performed before
the work areas are initialized.

Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
ffa1153170 bsps: Add RamEnd to linker command files
Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
c477d927e8 score: Add _Memory_Fill()
Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
1cb925717e score: Add Memory Handler
Update #3838.
2020-02-04 05:52:28 +01:00
Sebastian Huber
9e4f21b927 score: Optimize per-processor data placement
Only align per-processor data in SMP configurations.
2020-02-01 15:44:19 +01:00