Commit Graph

35419 Commits

Author SHA1 Message Date
Sebastian Huber
7fe6d60bf0 score: Remove PRIORITY_PSEUDO_ISR thread priority
The uniprocessor schedulers had some special case logic for the
PRIORITY_PSEUDO_ISR priority.  Tasks with a priority of PRIORITY_PSEUDO_ISR
were allowed to preempt a not preemptible task.  If other higher priority task
are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible
task, then the other tasks run before the not preemptible task.  This made the
RTEMS_NO_PREEMPT mode ineffective.

Remove the PRIORITY_PSEUDO_ISR special case logic.  This simplifies the
uniprocessor schedulers.  Move the uniprocessor-specific scheduler support to
the new header file <rtems/score/scheduleruniimpl.h>.

Close #2365.
2022-07-26 11:26:22 +02:00
Sebastian Huber
0a1d2d7814 sptests/spstdc17: New test 2022-07-25 16:11:36 +02:00
Sebastian Huber
8dc651f8fc imfs: Add <rtems/imfsimpl.h> 2022-07-25 16:11:36 +02:00
Alex White
c0a4d56b16 bsps/microblaze: Fix build option definition order
The build option definitions were rearranged such that the option
definitions used in the linker script were not available. This caused
linker errors when building.
2022-07-25 09:01:51 -05:00
Sebastian Huber
e584ee4bde libtest: Add missing initializer 2022-07-25 10:02:18 +02:00
Kinsey Moore
10ef7087f6 aarch64: Use page table level 0
This alters the AArch64 page table generation and mapping code and MMU
configuration to use page table level 0 in addition to levels 1, 2, and
3. This allows the mapping of up to 48 bits of memory space and is the
maximum that can be mapped without relying on additional processor
extensions. Mappings are restricted based on the number of physical
address bits that the CPU supports.
2022-07-21 12:26:35 -05:00
Matt Joyce
6d4b390f99 Support _REENT_THREAD_LOCAL Newlib configuration
In case the Newlib _REENT_THREAD_LOCAL configuration option is enabled, the
struct _reent is not defined (there is only a forward declaration in
<sys/reent.h>).  Instead, the usual members of struct _reent are available as
dedicatd thread-local storage objects.

Update #4560.
2022-07-21 07:22:13 +02:00
Matt Joyce
57a569efe1 sptests: Disable Newlib reentrancy
Update #4560.
2022-07-21 07:22:13 +02:00
Sebastian Huber
ca7c2dd89b sptls04: Test an external TLS object 2022-07-21 07:22:13 +02:00
Sebastian Huber
d4c21e516a ada/sp09: The year 2100 cannot be set
Update #4338.
2022-07-20 09:47:03 +02:00
Sebastian Huber
25ccc19ae9 bsps/riscv: Sort .noinit* sections
Sort the .noinit* input sections by name first, then by alignment if two
sections have the same name.  This allows the placement of begin/end symbols to
initialize some areas with a special value.

Update #4678.
2022-07-20 08:46:13 +02:00
Sebastian Huber
329a1ccf93 build: Add missing cxxflags
Update #4670.
2022-07-20 08:46:13 +02:00
Sebastian Huber
098186b9b3 dtc: Update VERSION 2022-07-19 09:28:22 +02:00
LoveSy
6f79435915 Fix a UB when fdt_get_string return null
When fdt_get_string return null, `namep` is not correctly reset.
From the document of `fdt_getprop_by_offset`, the parameter `namep` will
be always overwritten (that is, it will be overwritten without exception
of error occurance).

As for the caller (like
e097c097fe/native/jni/magiskboot/dtb.cpp (L42)),
the code may be like:
```cpp
size_t size;
const char *name;
auto *value = fdt_getprop_by_offset(fdt, prop, &name, &size);
```
and if `value == nullptr`, `size` is also be overwritten correctly but
`name` is not, which is quite inconsistent.

This commit makes sure `name` and `size` behavior consistently (reset to
reasonable value) when error occurs.

Signed-off-by: LoveSy <shana@zju.edu.cn>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2022-07-19 09:28:22 +02:00
Sebastian Huber
0e5f4c5d32 spsysinit01: Account for use of .noinit section
The objects control blocks cannot be used to check the pre-initialization state
since they are allocated in a .noinit section.

Update #4678.
2022-07-18 15:52:20 +02:00
Sebastian Huber
12a03bea4f score: Fix unlimited objects support
Commit 21275b58a5 ("score: Static
Objects_Information initialization") introduced an off-by-one error in the
maintenance of inactive objects.

Close #4677.
2022-07-18 09:33:16 +02:00
Sebastian Huber
3bb79aabca spunlimited01: New test
Update #4677.
2022-07-18 09:33:16 +02:00
Sebastian Huber
e0942613f1 score: Fix _Objects_Active_count()
With unlimited objects the object maximum may be larger than the sum of active
and inactive objects.

Update #4677.
2022-07-18 09:33:16 +02:00
Kinsey Moore
1e360d3140 aarch64: Memory map the noinit section
This section was added recently and must be mapped to be accessed
without generating an exception.
2022-07-18 09:33:32 +10:00
Sebastian Huber
1bf878f7ff score: Extend memory dirty/zero actions
Dirty or zero also the part of the .noinit section used by RTEMS.

Close #4678.
2022-07-15 10:46:02 +02:00
Sebastian Huber
4b911a7516 score: Place object controls into .noinit sections
Place the statically allocated object control blocks, local tables, and thread
queue heads into the dedicated .noinit intput sections.  The output section is
not zero initialized.  Placing these elements into the .noinit section reduces
the system initialization time by decreasing the .bss section size.

It may improve the cache efficiency since the mostly read local tables are
placed in a contiguous memory area.

Update #4678.
2022-07-15 10:46:02 +02:00
Sebastian Huber
5ed0035377 bsps: Sort .noinit* sections
Sort the .noinit* input sections by name first, then by alignment if two
sections have the same name.  This allows the placement of begin/end symbols to
initialize some areas with a special value.

Update #4678.
2022-07-15 10:46:02 +02:00
Sebastian Huber
656765c74b cdtest: Restrict exceptions during sysinit
Exceptions during system initialization work only on targets which do not need
a registration of exception frames during the global construction.  In
particular, targets which use the DWARF2 unwinder cannot use exceptions during
system initialization.
2022-07-14 10:47:36 +02:00
Sebastian Huber
da016421cd spextensions01: Fix assertion
Commit 80090639a6 altered the system state
change.  Account for this in assert_allocator_protected_thread_context().
2022-07-14 10:47:36 +02:00
Sebastian Huber
cdc1eb7dcc validation: SMP-specific spurious interrupt test
Update #3716.
2022-07-14 10:46:43 +02:00
Sebastian Huber
013e028f87 sppps01: Fix test in SMP configurations
Update #2349.
2022-07-13 16:06:00 +02:00
Joel Sherrill
405639a67d bsps/v850/gdbv850sim: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
c1008e9da1 bsps/sparc64/usiii: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
ae71cf38eb bsps/sparc64/shared: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
a49acb6bef bsps/sparc64/niagara: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
749e9b63bd bsps/sparc64/include: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
f436fc7a18 bsps/sh/shsim: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
00913bb163 bsps/sh/shared: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
aacf9e23fb bsps/sh/gensh2: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
0fc7a4499c bsps/sh/gensh1: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a73615a948 bsps/powerpc/virtex5: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
8a41efe424 bsps/powerpc/virtex4: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
77f1ae05dd bsps/powerpc/virtex: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
22d861ab9a bsps/powerpc/tqm8xx: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a1fb8b7edb bsps/powerpc/t32mppc: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
9375d24dc8 bsps/powerpc/shared: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
8f4878ae1f bsps/powerpc/qoriq: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a29b9bb4dd bsps/powerpc/qemuppc: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
5aea703542 bsps/powerpc/psim: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
88cf40e63c bsps/powerpc/mpc8260ads: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
bc374cd7a5 bsps/powerpc/mpc55xxevb: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
5ba0bb2afd bsps/powerpc/include: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
fe8b4b6c79 bsps/powerpc/83xx: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a965590d64 bsps/powerpc/gen5200: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
d9d2cdff21 bsps/powerpc/beatnik: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00