Commit Graph

33582 Commits

Author SHA1 Message Date
Sebastian Huber
4e5327ff94 doxygen: Wrap long lines 2020-09-18 08:20:03 +02:00
Sebastian Huber
2f65e136e5 rtems: Fix typo
Update #3959.
2020-09-17 20:07:29 +02:00
Sebastian Huber
3dd4cbb50d validation: rtems_task_construct() errors
This is the first test case generated from a specification item in the
rtems-central repository.

Update #3959.
2020-09-17 17:42:25 +02:00
Sebastian Huber
139ffa25d9 validation: Add general purpose test suite
Add a general purpose test suite for validation tests.

This is the first test suite generated from a specification item in the
rtems-central repository.

Update #3959.
2020-09-17 17:42:25 +02:00
Sebastian Huber
ad22c6552a doxygen: Move top-level group definitions
Update #3959.
2020-09-17 17:42:25 +02:00
Sebastian Huber
6942e5f991 rtems: Add rtems_task_construct()
In contrast to rtems_task_create() this function constructs a task with
a user-provided task storage area.  The new directive uses a
configuration structure instead of individual parameters.

Add RTEMS_TASK_STORAGE_SIZE() to calculate the recommended size of a
task storage area based on the task attributes and the size dedicated to
the task stack and thread-local storage.  This macro may allow future
extensions without breaking the API.

Add application configuration option
CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE to adjust RTEMS
Workspace size estimate.

Update #3959.
2020-09-17 17:42:25 +02:00
Sebastian Huber
c312f3110e CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
Add this application configuration option.  This configuration option can be
used to reserve space for the dynamic linking of modules with thread-local
storage objects.

Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a
thread-local storage size.

Update #4074.
2020-09-17 17:42:25 +02:00
Sebastian Huber
dce1cdf19e rtems: Add RTEMS_ALIGN_UP()
Update #3959.
Update #4074.
2020-09-17 17:42:25 +02:00
Sebastian Huber
641b31a48d rtems: Add RTEMS_ALIGN_DOWN()
Update #3959.
Update #4074.
2020-09-17 17:42:25 +02:00
Sebastian Huber
11c1b862df build: Allow test program item UIDs with a "-"
Update #3818.
2020-09-17 17:42:25 +02:00
Sebastian Huber
845674e3fb build: Fix mghttpd01 test exclude
Update #3818.
2020-09-17 17:42:25 +02:00
Sebastian Huber
98d2adb935 libtest: Fix T_thread_switch_record()
If RTEMS_DEBUG is not defined, then we have to explicitly set the node
off the chain.

Update #3199.
2020-09-17 17:42:25 +02:00
Hesham Almatary
4897a82dec riscv: Make sifive_test finisher 4 bytes
QEMU is now stricter with MMIO sizes and accesses. uintptr_t on RV64
is 8 bytes and generates an sd instruction that Store/AMO faults
because sifive_test MMIO expects 4 bytes accesses.
2020-09-17 09:01:51 +01:00
Sebastian Huber
4eea8d4bc4 build: Fix dependencies for start and asm files
Add a feature to enforce an explicit target file for assembler sources.
Add a build start file node list and use it as a test program
dependency.

The fix for #3846 and #4080 needs to be combined, because the fix
for #3846 requires the removal of 'before=["cstlib"]'. This patch fixes
two issues:

1. The tracking of start file dependencies.

2. Reflect that executables depend on the start files.

We need a start.o file in the right path so that the linker can find is
as specified by the linker script, and not for example a start.S.17.o
file in some path. This part is addressed by the "explicit_asm_target"
feature.

This build process extension

@after("apply_link")
@feature("cprogram", "cxxprogram")
def process_start_files(self):
    if getattr(self, "start_files", False):
        self.link_task.dep_nodes.extend(self.bld.start_files)

addresses 2.

Close #3846.
Close #4080.
2020-09-17 08:57:54 +02:00
Sebastian Huber
4b767bd343 bsps/arm: Use RTEMS_SECTION() 2020-09-17 08:36:45 +02:00
Sebastian Huber
20d82377a6 arm: Fix arm_cp15_set_translation_table_entries()
In a multi-processor system we must broadcast the TLB maintenance operation to
the Inner Shareable domain to ensure that the other processors update their TLB
caches accordingly.

Close #4068.
2020-09-17 08:20:35 +02:00
Sebastian Huber
9979042a3a build: Fix multiple defintion error for i386/pc386
Make the objcopy an bld.objects() task generator.

Close #4079.
2020-09-15 20:07:47 +02:00
Sebastian Huber
2a4ccc4f8d bsp/pc386: Remove support for obsolete Binutils
Update #3818.
2020-09-15 15:14:38 +02:00
Sebastian Huber
8f424e4580 build: Fix i386/pc386 link of SMP start file
Update #3818.
2020-09-15 15:14:35 +02:00
Sebastian Huber
d9d31b381c build: Add RELOCADDR to i386/pc386 options
Update #3818.
2020-09-15 13:33:00 +02:00
Sebastian Huber
3be2380927 build: Fix i386/pc386 ABI flags
Update #3818.
2020-09-15 13:33:00 +02:00
Sebastian Huber
127c3ea527 build: Fix i386/pc386 with SMP enabled
Update #3818.
2020-09-15 09:20:28 +02:00
Sebastian Huber
2786b0aa38 bsps/riscv: Use far jump to boot_card()
Use a far jump to avoid errors like this:

relocation truncated to fit: R_RISCV_JAL against symbol `boot_card'
2020-09-15 09:20:27 +02:00
Sebastian Huber
4647789820 irqs01/smpirqs01: New tests
Close #4034.
2020-09-14 07:11:40 +02:00
Sebastian Huber
aa27a85a83 build: Use Python tarfile instead of pax
This patch is for the new build system.
2020-09-14 07:11:40 +02:00
Sebastian Huber
f3f0370f10 build: Alternative build system based on waf
Update #3818.
2020-09-14 07:11:32 +02:00
Gedare Bloom
9f096f4724 i386/score: fix assembly mnemonic
Closes #4076.
2020-09-12 09:11:28 -06:00
Joel Sherrill
5959b1e34c Remove tmoverhd which existed to produce the obsolete coverhd.h
Closes #4040.
2020-09-11 08:54:16 -05:00
Sebastian Huber
dd734d467d score: Fix _Thread_Initialize()
Fix an error cleanup path in SMP configurations to avoid a NULL pointer access.

Update #3959.
2020-09-11 15:47:02 +02:00
Joel Sherrill
e563e61c7a Remove remaining references to coverhd.h
Closes #4040.
2020-09-10 11:42:00 -05:00
Sebastian Huber
64d989d116 spintrcritical08: Increase clock tick interval
On some simulators, a clock tick interval of 1ms seems to be too short.
For example, the test failed on sparc/erc32 using the SIS.
2020-09-10 14:41:55 +02:00
Hesham Almatary
764ea57879 htif_console_handler is defined in htif.c
closes #4069.
2020-09-06 16:11:45 -05:00
Sebastian Huber
aedd92d147 score: Add stack free handler to TCB
This avoids a dependency to the stack free function in the thread
destruction.

Update #3959.
2020-08-31 17:30:17 +02:00
Sebastian Huber
2d5510307a score: Move _Stack_Allocator_free to separate file
This decouples the task stack allocation from the deallocation.

Update #3959.
2020-08-31 17:30:17 +02:00
Sebastian Huber
d8172209b3 score: Add _Stack_Allocator_do_initialize()
Do the stack allocator initialization and sanity check only if a
user-provided stack allocator was configured.  This avoids a dependency
of _Thread_Handler_initialization() on the stack allocator.

Update #3959.
2020-08-31 17:30:17 +02:00
Sebastian Huber
159db41166 score: Use _Freechain_Push()
The nodes are never NULL.

Update #3959.
2020-08-31 17:30:17 +02:00
Sebastian Huber
354c2b50a3 score: Add <rtems/score/freechainimpl.h>
Hide implementation details.

Update #3959.
2020-08-31 17:30:17 +02:00
Sebastian Huber
91c811a132 score: Add _Freechain_Push()
Update #3959.
2020-08-31 17:30:17 +02:00
Sebastian Huber
5bb93f22fc score: Fix debug assert
Do not access executing->current_state outside the protection of the
thread state lock.  Add missing state with a comment.
2020-08-31 17:30:17 +02:00
Sebastian Huber
6e6e23384f config: Add zero file descriptor data structures
Fix linker errors in the minimum test program on some BSPs introduced by
ced28f2cfc.
2020-08-31 17:30:17 +02:00
Sebastian Huber
ced28f2cfc config: Provide file descriptors only if necessary
Only provide the file descriptor array if
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0.  If someone configured
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS == 0 and the appplication uses
something which requires a file descriptor, then a linker error will
show up.  An alternative would be to add a zero-length array
rtems_libio_iops[ 0 ] to librtemscpu.a which would be used in this
case.

Conditionally include some header files.
2020-08-31 16:19:57 +02:00
Sebastian Huber
1818b9a826 score: Optimize _Objects_Name_to_id_u32()
Remove the superfluous invalid name check since the object creation
directives ensure that objects with such a name cannot exist.  Also
finding an object with such a name would be no catastrophy if it really
exists.
2020-08-31 16:19:57 +02:00
Sebastian Huber
c7e30854f2 rtems: Add _RTEMS_Name_to_id()
Simplify object name to identifier directives.  Using
_RTEMS_Name_to_id() to implement the directives enables a tail call
optimization.

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

Update #3053.
2020-08-31 16:19:57 +02:00
Sebastian Huber
33dbb3355f score: Constify objects name to id functions 2020-08-31 16:19:57 +02:00
Sebastian Huber
d556af3605 bsps: Always install IPI in SMP configs
The inter-processor interrupt (IPI) may be used to process per-CPU jobs.
See for example the blocked handler in T_interrupt_test().

Update #3199.
2020-08-31 16:19:53 +02:00
Jan Sommer
b87efa7599 bsp/xilinx-zynq: Flush TX-Buffer before initializing uart
Closes #4055
Closes #4056
2020-08-22 17:29:25 +10:00
Sebastian Huber
1a506170cc spintrcritical22: Use right thread wait flags 2020-08-21 13:48:48 +02:00
Sebastian Huber
cd74bd0c6d spintrcritical16: Use right thread wait flags 2020-08-21 13:48:44 +02:00
Sebastian Huber
a7a0a36461 config: Conditionally include header 2020-08-21 10:33:50 +02:00
Sebastian Huber
1bb2800102 mp03: Include missing header file 2020-08-21 09:18:29 +02:00