Commit Graph

610 Commits

Author SHA1 Message Date
Bernd Moessner
d1d3ceb502 Include Xilinx support files also for Zynq7000 2024-01-05 12:07:52 -06:00
Kinsey Moore
981d24e22a testsuites/fstests: Add JFFS2 NAND support tests
This adds a second set of JFFS2 tests running on top of a simulated NAND
backend to ensure that interactions with delayed writes operate as
expected.
2023-12-22 19:51:52 -06:00
Jacob Killelea
0883f7ec58 bsps/arm/stm32f4: Enable USART RX interrupts
Hi all, this is my first email patch submission and my first contribution to RTEMS, so please give any
feedback you have!

This patch enables interrupt driven data reception on USART ports on
STM32F4 series chips. This feature is gated behind the config flag
BSP_CONSOLE_USE_INTERRUPTS. If this flag is not set to True, the older
polling implementation will be used. I tested this feature on STM32F401CE
(blackpill) and STM32 Nucleo F411RE boards, with both capable of keeping
up with a 115200 baud continous data stream. With the older polling
implementation, both would drop bytes at 9600 baud. In addition, I
updated the implementation of usart_set_attributes to support changing
the baud rate of the USART port based on the input speed.
2023-12-14 13:40:03 -06:00
Sebastian Huber
cfaf2641ec build: Fix default value 2023-12-12 19:45:15 +01:00
Sebastian Huber
75b6d77680 bsp/tms570: Add TMS570_VARIANT 2023-12-06 13:35:40 +01:00
Sebastian Huber
4c6f562dc4 bsp/tms570: Enable cache manager implementation 2023-12-06 13:35:40 +01:00
Sebastian Huber
56fc9f1283 bsp/tms570: Export -mbe32 to pkg-config 2023-12-06 13:35:40 +01:00
Sebastian Huber
ba89aae89d bsps/arm: BSP_START_VECTOR_ADDRESS_TABLE_ALIGNMENT
Add the BSP option BSP_START_VECTOR_ADDRESS_TABLE_ALIGNMENT to
optionally define an alignment of the vector address table begin.
2023-12-06 13:35:37 +01:00
Bernd Moessner
fe35c8d5ee ZYNQ7000: Add support PYNQ, PicoZed, MicroZed, ZYBO and ZYBO Z7
This patch adds basic support for the following boards:

xilinx_zynq_pynq - PYNQ Z1 / Z2
xilinx_zynq_microzed - MicroZed 7010 / 7020
xilinx_zynq_picozed - PicoZed 7010 / 7015 / 7020 / 7030
xilinx_zynq_zybo - ZYBO
xilinx_zynq_zybo_z7 - ZYBO Z7-10 / Z7-20

N.b. Arty Z7-20 is basically a PYNQ Z1 - different board
color and updated Eth PHY.
2023-11-28 12:51:34 -06:00
Bernd Moessner
b2dd594422 Fix zedboard clock settings 2023-11-28 12:51:34 -06:00
Bernd Moessner
8cb6e36e96 Fix add missing clock settings for zc706 2023-11-28 12:51:34 -06:00
Christian Mauderer
02f2316be7 bsp/imxrt1166: Support GPIO CS pins in LPSPI
With this, it is possible to use GPIOs as CS pins in the LPSPI. To avoid
additional complexity, the GPIOs will have the same limitations as the
native (hardware) CS pins.

The GPIO CS feature adds a number of extra code when starting SPI
transfers on this controller. Therefore it is possible to disable the
additional code by just setting the IMXRT_LPSPI_MAX_CS option to 0. In
that case only native CS pins are supported.

At the moment, this feature is only enabled on i.MXRT1166 by default
because it is not tested on i.MXRT1050. But it should work there too.
2023-11-28 13:36:41 +01:00
Sebastian Huber
f279017882 validation: Improve MrsP validation
For uniprocessor configurations, the selection of
RTEMS_MULTIPROCESSOR_RESOURCE_SHARING results in a priority ceiling
mutex.

Build the MrsP validation tests only if RTEMS_SMP is enabled.

Update #3716.
2023-11-23 14:58:21 +01:00
Philip Kirkpatrick
793c0f4671 bsps/arm: Add BSP for ZynqMP RPU 2023-11-20 10:43:55 -06:00
Sebastian Huber
6486d0bff9 build: Do not use coverage for librtemstest
The goal is to get code and branch coverage from actual tests and not
the test support itself.
2023-11-03 08:53:59 +01:00
Sebastian Huber
00e910e1f0 bsps/leon3: Install header files 2023-11-03 07:43:25 +01:00
Sebastian Huber
06f3780d60 build: Exclude performance test if RTEMS_GCOV_COVERAGE
The code coverage build is usually done without compiler optimizations.
This results in long performance test runtimes and useless performance
results.
2023-11-03 07:25:53 +01:00
Sebastian Huber
963327eaf3 build: Improve testsuite build selection
Enable an individual testsuite only through the corresponding enable.
Use BUILD_TESTS to change the default value of the individual testsuite
enable options.  This allows the user to enable all testsuites with
specific exceptions.

For example, this builds all testsuites except the benchmarks:

[arch/bsp]
BUILD_TESTS = True
BUILD_BENCHMARKS = False
2023-11-02 13:34:22 +01:00
Kinsey Moore
8a2c3af9cf bsps/xil: Adjust Xilinx support code for Cortex-R5
This fixes some issues in the Xilinx support code that are critical to
support the Cortex-R5F cores present in my Xilinx SoCs. The imported
Cortex-R5 xil_cache.c matches the existing information in
bsps/shared/xil/VERSION.
2023-10-24 09:52:27 -05:00
Sebastian Huber
b8f1988f15 doxygen: Replace and move main page
Replace the main page with a high level description of the RTEMS feature
set similar to:

https://docs.rtems.org/branches/master/user/overview/index.html#features

The replaced content can be found in the RTEMS Classic API Guide:

https://docs.rtems.org/branches/master/c-user/overview.html

https://docs.rtems.org/branches/master/c-user/key_concepts.html

Update #3705.
2023-10-23 11:16:39 +02:00
Sebastian Huber
958d517215 bsps/leon3: Use DSU time tag for GR712RC
Close #4954.
2023-10-20 11:20:14 +02:00
Sebastian Huber
abb2f8bd66 bsps/leon3: Use custom CPU counter implementation
Merge the timecounter and CPU counter support for the leon3 BSP family.
Remove now unused functions from the CPU counter support of the erc32
and leon3 BSPs.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
b6dc4b4707 sparc: Move CPU counter implementation
Enable a BSP-specific CPU counter implementation.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
429727cdf3 testsuites/unit: Add tests for compiler builtins
Explicitly test the 64-bit integer division and modulo operations.  They
are essential for the timekeeping services.  On most 32-bit targets,
they need a software implementation.

Update #3716.
2023-10-12 14:11:03 +02:00
Sebastian Huber
2cb3d75d9e validation: Test CPU performance
Measure the runtime of 1000 no-operation instructions.  This may help to
investigate runtime measurement variations which do not result from code
generation or source code changes.

The runtime measurement of a function which does nothing and just
returns gives an estimate of the measurement overhead.

Update #3716.
2023-10-12 14:10:57 +02:00
Sebastian Huber
a986262380 validation: Check stack of interrupted context
Check the stack of the interrupted context during the multitasking
start.

Update #4955.
2023-09-26 08:08:06 +02:00
Sebastian Huber
ee63681aeb tests: Add header for RTEMS test printer
The <rtems/test-info.h> header file is required for every RTEMS test
program.  Move the RTEMS test printer support to a dedicated header file
<rtems/test-printer.h>.  This removes an unnecessary dependency to the
RTEMS printer support in <rtems/test-info.h>.

Tests using the RTEMS Testing Framework no longer depend on the
<rtems/printer.h>.
2023-09-26 08:04:30 +02:00
Sebastian Huber
109479e874 build: Remove enabled-by special case
Doing the enabled-by processing just for the ldflags and just for the
link custom commands is confusing.  Use an option instead which is
intended to be used for such use cases.
2023-09-22 07:59:11 +02:00
Sebastian Huber
580a457724 build: Add target to build scripts
Document that the build scripts in the testsuites produce a test program.
2023-09-15 10:44:08 +02:00
Sebastian Huber
36b330910d bsp/stm32h7: Exclude some tests 2023-09-15 10:44:08 +02:00
Sebastian Huber
92fc82b54d arm/lm3s69xx: Exclude monitor test program
It is too big with GCC 13.
2023-09-15 10:44:08 +02:00
Sebastian Huber
5dc43a04ef build: Merge regulator build into library item
There is no need to use a separate build object item.
2023-09-13 07:56:38 +02:00
Sebastian Huber
d2d1fa18a9 build: Use build context for custom commands
Revert duplicated listing of TEST_OPTIMIZATION_FLAGS.

Close #4947.
2023-09-11 11:36:58 +02:00
Alex White
51a79912e0 microblaze: Add link options to dl07, dl08, and dl09
This adds `-u__extendsfdf2` to the `ldflags` for the dl07, dl08, and
dl09 tests to force the inclusion of `__extendsfdf2` in the base image.
This function is part of the GCC software floating point library and is
used in the tests to convert floats to doubles when calling `printf`.
2023-08-30 11:05:33 -05:00
Alex White
cd7ad64602 microblaze: Add dl05 to expected failures
Updates #4949
2023-08-30 11:05:33 -05:00
Alex White
d5318d6ae3 microblaze: Add dl06 to expected failures
Updates #4948
2023-08-30 11:05:33 -05:00
Alex White
a1b23d0e23 microblaze: Align exception-related sections
This fixes unaligned data access exceptions found while debugging test
dl05.
2023-08-30 11:05:33 -05:00
Alex White
feee169aa7 microblaze: Add libdl support 2023-08-30 11:05:33 -05:00
Chris Johns
dcc6409f91 spec/testsuite/dl: Fix optimization flags
Updates #4944
2023-08-27 07:30:41 +10:00
Chris Johns
27da374e48 libdl: Add support to import base image TLS symbols
This change requires an rtems-tools update for symbol generation.

Working architectures:
 - aarch64
 - arm
 - powerpc
 - sparc

No newlib TLS support but checked:
 - i386
 - m69k

Updates #4920
2023-08-21 11:16:17 +10:00
Kinsey Moore
723c096d57 spec/cpukit: Omit Cortex-M from libdebugger build
The current ARM support in libdebugger does not cover Cortex-M series
cores since it requires support for CP14 system register accessor
instructions. Cortex-M series cores support debug monitor mode, but its
configuration is accessed by memory mapped registers instead of using
CP14. This omits building libdebugger from BSPs that use a cortex-m ABI
flag.
2023-08-18 09:21:17 -05:00
Chris Johns
663e0dae8a cpukit/libdl: AARCH64 unwind uses DWARF 2 tables
Closes #4943
2023-08-12 16:35:39 +10:00
Joel Sherrill
fd693085ea Add the Regulator Interface and test
Updates #4924.

The Regulator is an application support class which is used to
deal with the scenario where there is a bursty input source
which needs to be metered out to a destination sink. The maximum
size of bursts needs to be known and the delivery method must
be configured to deliver messages at a rate that allows the
traffic to not overflow.
2023-08-11 13:44:47 -05:00
Sebastian Huber
52e595104c build: Clarify PROGRAM_PREFIX description 2023-08-10 08:17:22 +02:00
Uchenna Ezeobi
ae534d10df spec: Add -mstrict-align to mvme2100 default build
Update #3767
2023-08-09 15:17:13 -05:00
Sebastian Huber
62e39a8e47 rtems: Install <rtems/dev/io.h> 2023-08-09 10:26:06 +02:00
Sebastian Huber
573a7202e6 bsp/lpc32xx: Restore lpc32xx_set_translation_table_entries()
This implementation disables the MMU during the modification of the
translation table.  This behaviour is required by boot loaders for these
boards.
2023-08-09 07:22:10 +02:00
Sebastian Huber
0d76cc9f04 build: Add PROGRAM_PREFIX option
Replace --rtems-version with a PROGRAM_PREFIX option.  This allows also
the use of vendor tools.
2023-08-03 09:23:10 +02:00
Sebastian Huber
54a04cc917 build: Fix build dependency order 2023-08-02 11:02:11 +02:00
Sebastian Huber
aca1724c4c build: Optionally use a VERSION file
Define the RTEMS version in the wscript.  Optionally use a VERSION file
to change the default values of the wscript.  Allow the command line
option --rtems-version to override __RTEMS_MAJOR__.  Remove support for
command line configurable options (--rtems-option).

Rename internal define RTEMS_VERSION_VC_KEY to
RTEMS_VERSION_CONTROL_KEY.
2023-08-02 07:27:51 +02:00