Commit Graph

443 Commits

Author SHA1 Message Date
Sebastian Huber
45ee958552 config: Add CONFIGURE_IDLE_TASK_STORAGE_SIZE
By default, allocate the IDLE task storage areas from the RTEMS Workspace.
This avoids having to estimate the thread-local storage size in the default
configuration.

Add the application configuration option CONFIGURE_IDLE_TASK_STORAGE_SIZE to
request a static allocation of the task storage area for IDLE tasks.

Update #3835.
Update #4524.
2022-10-14 10:48:23 +02:00
Sebastian Huber
1ab93ba480 score: INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILED
Add the INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILED fatal error in case the
creation of an idle thread fails.  This may happen due to a failing create
extension provided by the application.
2022-10-14 10:48:22 +02:00
Sebastian Huber
97fce5120c build: Enable RISCV_BOOT_HARTID only for riscv 2022-10-13 06:24:23 +02:00
Mohd Noor Aman
b57c6541a1 bsp/aarch64: Add new Raspberry Pi 4B BSP
This patch adds new Raspberry pi 4B AArch64 BSP to the RTEMS Family. Currently
only LP64 ABI is supported. ILP32 is not supported. RAM starts from 0x80000 in
64Bit kernel mode and MMU from 0x0. All Raspberrypi Pi 4B models and Raspberry
Pi 400 are supported. All the IRQs are similiar to the older Raspberry pi 2 ARM
BSP.

Raspberry Pi 4B has 2 types of UARTs. Only PL011 serial is supported currently.
Mini-UART is not supported. Mini-UART is default UART on the board so it needs
to be disabled by adding "dtoverlay=disable-bt" to the config.txt. No support
for additional 4 PL011-UARTs on the board.

The raspberrypi.h includes many of the address required for the future
development of the RPi 4B BSP. This includes peripherals, ARM Timer, VideoCore
Timer, Watchdog, Mailbox, AUX, FIQs and IRQs.
2022-10-04 17:04:44 -05:00
Sebastian Huber
a3717de01c validation: Remove unused test suite
Update #3716.
2022-09-28 13:49:31 +02:00
Sebastian Huber
acf1e5b266 rtems: Add rtems_clock_get_ticks_since_boot() function
This function was declared, however, a definition was missing.  Add a
validation test for it.
2022-09-23 11:14:58 +02:00
Sebastian Huber
ade8d995aa build: Install SHA header files
Update #3719.
2022-09-22 08:27:25 +02:00
Padmarao Begari
6b0d3c9873 bsps/riscv: Add Microchip PolarFire SoC BSP variant
The Microchip PolarFire SoC support is implemented as a
riscv BSP variant to boot with any individual hart(cpu core)
or SMP based on the boot HARTID configurable and support
components are 4 CPU Cores (U54), Interrupt controller (PLIC),
Timer (CLINT), UART.
2022-09-20 12:00:51 -05:00
Padmarao Begari
974c6ea9d6 spec/build/bsps: Add dtb support
Add dtb and dtb header path configurable build option
2022-09-20 12:00:51 -05:00
Sebastian Huber
63cf583365 bsp/tms570: Fix TMS570_USE_HWINIT_STARTUP
Make sure only one module is built which defines bsp_start_hook_0().
2022-09-20 10:35:06 +02:00
Sebastian Huber
9a55120420 bsp/tms570: Add -mbe32 to LINKFLAGS
There is not just big-endian on ARM.  We have two variants BE32
(obsolete) and BE8.  The Cortex-R5F processor supports only BE8,
however, some TMS570 variants are BE32 internally.  In GCC 8 and later,
the --be8 option is passed to the linker based on the selected
architecture or CPU.  Use BE32 by default for the TMS570 BSP.

In GCC, see:

commit 63d03dcecdafe34715282a5155cfc2162375feca
Author: Richard Earnshaw <rearnsha@arm.com>
Date:   Mon Jul 3 13:22:05 2017 +0000

     [arm] Clean up generation of BE8 format images.
2022-09-20 10:34:35 +02:00
Sebastian Huber
3803757b2c validation: Test deadlock detection special case
Update #3716.
2022-09-12 09:39:04 +02:00
Sebastian Huber
52d566c864 bsp/qoriq: Enable VRSAVE optimization
Close #4712.
2022-09-08 15:54:23 +02:00
Martin Aberg
9ec9be834d bsp/riscv: Add NOEL-V BSP
Added support for Cobham Gaisler NOEL-V systems. The NOEL-V support
is implemented as a riscv BSP. Both 32-bit and 64-bit processor
systems are supported. Cobham Gaisler's NOEL-V RISC-V processor IP
is described here:
  https://www.gaisler.com/NOELV

Compatible with the following NOEL-V FPGA example design ranges
available from Cobham Gaisler. Follow the links for free
bit-streams, DTS/DTB, user's manuals and quick-start guides:
- NOEL-ARTYA7-EX    (https://www.gaisler.com/NOEL-ARTYA7)
- NOEL-PF-EX        (https://www.gaisler.com/NOEL-PF)
- NOEL-XCKU-EX      (https://www.gaisler.com/NOEL-XCKU)

Uses the shared GRLIB APBUART console driver "apbuart_termios.c".
APBUART devices are probed using device tree.

Closes #4225.
2022-09-06 16:15:58 +02:00
Daniel Cederman
ca07efd571 bsp/riscv: Work area size based on /memory node in fdt
Uses the first entry in the /memory node to determine the end of the
work area. Falls back on linker symbol if unable to parse the node.
2022-09-06 15:51:58 +02:00
Sebastian Huber
4e227f460c validation: CONFIGURE_SCHEDULER_TABLE_ENTRIES
Test this option in a configuration with only one processor.

Update #3716.
2022-09-05 15:46:32 +02:00
Sebastian Huber
98353136dd validation: Refine basedefs specification
Update #3716.
2022-09-05 15:46:32 +02:00
Chris Johns
a3b0f7d5a8 bsps/xilinx/versal: Add Cadence I2C driver support 2022-08-25 09:25:03 +10:00
Stephen Clark
c738be92a0 bsps/amd64: remove -Werror from ABI flags
The ABI flags for the amd64 BSP contain the -Werror=return-type flag. There is no reason for this to be there so it has been removed. The same option has also been removed amd64.cfg file.
2022-08-23 11:37:21 -05:00
Chris Johns
dee5ea8147 bsps/xilinx/versal: Remove IPL32 BSPs, add aiedge and change defaults
- Versal has IO mapped to the upper 64bit address space and
  needs full 64bit addresses.

- Add xilinx_versal_aiedge for custom hardware

- Make the hardware settings the defaults and qemu as variants

Closes #4693
2022-08-23 07:55:25 +10:00
Chris Johns
eae542c02f spec/librtemscpu: Fix installed headers
- pci.h is only for sparc

- keyimpl.h is not referenced and so not needed

Updates #4705
2022-08-22 08:30:00 +10:00
Chris Johns
bb09755086 spec/bsps/aarch64: Install ELF machine types for libdl
Updates #4705
2022-08-22 08:30:00 +10:00
Chris Johns
e49a1c9b38 spec/bsps: Do not install tm27.h
Updates #4705
2022-08-22 08:30:00 +10:00
Duc Doan
c655c72d05 build/cpukit: Add confdefs/face.h to install rule
Updates #4691
2022-08-11 15:49:15 +10:00
Joel Sherrill
4b04589b09 Add support for CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
This adds the configure option CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
which allows the application to choose whether to have the POSIX
timer_create() function follow the behavior defined by POSIX or
the FACE Technical Standard.

Updates #4691.
2022-08-10 14:15:46 -05:00
Ryan Long
5500232a89 libdl: Refactor shared code in ARM and AArch64
rtl-mdreloc-arm.c was used as the basis for rtl-mdreloc-aarch64.c. This lead
to some code being shared by the two files. The code was consolidated into
rtl-unwind-arm.c.

Closes #4686
2022-08-08 12:02:03 -05:00
Sebastian Huber
52b7a5840a build: Install <rtems/score/gcov.h>
Update #4670.
2022-08-04 19:37:46 +02:00
Chris Johns
071640d310 libmisc/shell: Add an 'rtems' command to report a running build
- Report version, cpu, bsp, tools and options.
2022-08-03 10:46:10 +10:00
Ryan Long
0bd6514aa2 cpukit/libdl: Add support for AArch64
rtl-mdreloc-aarch64.c and elf_machdep.h came from NetBSD.

Updates #4682
2022-07-29 08:32:47 -05:00
Chris Johns
51ffa21011 aarch64/versal: Support DDRMC0 region 0 and 1
- Support DDRMC0 region 0 up to 2G in size

- Support DDRMC0 region 1 with DDR memory greater than 2G
  up to the DDRMC0 max amount

- Extend the heap with region 1's memory

Closes #4684
2022-07-28 09:04:46 +10:00
Sebastian Huber
4f94d47bc5 build: Move RISCV_MAXIMUM_EXTERNAL_INTERRUPTS 2022-07-26 13:38:33 +02:00
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
ca7c2dd89b sptls04: Test an external TLS object 2022-07-21 07:22:13 +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
3bb79aabca spunlimited01: New test
Update #4677.
2022-07-18 09:33:16 +02: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
5cc075712e irq/arm-gicv3.h: Customize CPU Interface init
Use the existing WRITE_SR() abstraction to access the interrupt group 0 and 1
enable registers.  This fixes the build for the AArch32 target.

Add BSP options which define the initial values of CPU Interface registers.
2022-07-12 08:26:46 +02:00
Sebastian Huber
e506df58ec validation: Test thread idle bodies
Update #3716.
2022-07-07 09:00:48 +02:00
Sebastian Huber
588a07e1a8 validation: Always test spurious interrupts
Update #3716.
2022-07-07 09:00:46 +02:00
Kinsey Moore
2f6ee01e9e bsps/aarch64: Use MMU pages appropriately
There were two bugs with MMU page use that were partially hiding each
other. The linker script page table section was 4x the size it needed to
be and the page table allocation routine was allocating pages PTRSIZE
times larger than it needed to. On ILP32, this resulted in incorrect but
functional allocation. On LP64, this resulted in allocation failures
earlier than expected.
2022-07-06 10:22:08 -05:00
Sebastian Huber
5c13a96f36 build: Add RTEMS_GCOV_COVERAGE option
Update #4670.
2022-07-04 08:29:52 +02:00
Sebastian Huber
7452f67dd9 gcov: Add wrapper to dump the gcov info
Update #4670.
2022-07-04 08:29:52 +02:00
Sebastian Huber
4f87edbb75 gcov: Add functions to dump the gcov information
Update #4670.
2022-07-04 08:29:52 +02:00
Sebastian Huber
2bc233fe58 gcov: Add fork(), etc. gcov wrappers
The compiler wraps fork(), etc. system calls if coverage generation is enabled.
These functions must be provided by the system.  For RTEMS, they just return an
error status.

Update #4670.
2022-07-04 08:29:52 +02:00
Sebastian Huber
a13047ca0e build: Allow separate optimization flags
Allow separate optimization flags for the BSP, cpukit, and tests.  For example,
the BSP and cpukit may be built without optimization if coverage
instrumentation is enabled, however, the tests may still use optimization.

Update #4670.
2022-07-04 08:29:52 +02:00
Sebastian Huber
a0aaa394b6 build: Fix optimization flags definition order
OPTIMIZATION_FLAGS must be defined before /build/bsp/bspopts is processed.

Update #4670.
2022-07-04 08:29:52 +02:00