Commit Graph

36141 Commits

Author SHA1 Message Date
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
Christian Mauderer
a38f9c57f9 bsps/imx*: imx_gpio from pointer to fdt property
Device trees allow mixing different kinds of GPIOs in one property. For
that it is usefull to only provide a pointer to an arbitrary location in
the property and initialize a GPIO from that.
2023-11-28 13:36:41 +01:00
Sebastian Huber
a180c138c7 validation: Remove superfluous includes
Update #3716.
2023-11-23 19:05:05 +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
Chris Johns
72c11fa91a waf: Fix Python 3.12 escape sequences
Updates #4968
2023-11-23 08:25:38 +11:00
Sebastian Huber
71c024eaca score: Fix typo in name 2023-11-21 11:51:56 +01:00
Philip Kirkpatrick
793c0f4671 bsps/arm: Add BSP for ZynqMP RPU 2023-11-20 10:43:55 -06:00
Kinsey Moore
001a0a4db6 bsps/clock: Import Xilinx TTC hardware definitions
This imports the TTC hardware definitions for the triple timer counters
on various Xilinx platforms. This was imported as specified in the
VERSION file in this commit.
2023-11-20 10:43:55 -06:00
Sebastian Huber
b414abcffe validation: Fix typos 2023-11-07 15:23:26 +01:00
Sebastian Huber
1a3125c0fe validation: Improve thread idle bodies test
Update #3716.
2023-11-07 15:23:26 +01: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
1adf143246 testsuites/unit: Add tests for compiler builtins
Test some compiler builtins which may use integer library routines:

https://gcc.gnu.org/onlinedocs/gccint/Integer-library-routines.html

Update #3716.
2023-11-02 16:25:44 +01:00
Sebastian Huber
0c65f9faf3 score: Fix implicit integer conversion warnings 2023-11-02 13:40:33 +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
Sebastian Huber
51d596281c imfs: Constify rtems_tarfs_load()
Change the public image data type to a void pointer.
2023-11-02 13:34:22 +01:00
Kinsey Moore
b0bd4bff49 cpukit/libfs/dosfs: Use enum values for enum init 2023-10-30 16:43:01 -05:00
Kinsey Moore
894ce51cd5 cpukit/score: Convert Thread_Life_state to uint32_t
Thread_Life_state is used as a bitfield, but is declared as an enum.
This converts the enum typedef to a uint32_t typedef and associated bit
definitions.
2023-10-30 16:43:01 -05:00
Kinsey Moore
bb6ed3bed7 bsps/xnandpsu: Always wrap page to device size
The xnandpsu driver conditionally tries to wrap page index to NAND chip
size causing an off-by-one error where the first page of the second chip
is not wrapped correctly. This removes the conditional so that page
index is always wrapped.
2023-10-27 11:33:44 -05:00
Kinsey Moore
3363fabb9d bsps/xnandpsu: Avoid loop counter reset
On configurations where multiple NAND chips are in use, the erasure
loop in XNandPsu_Erase() can reset the loop counter variable once it
gets to blocks in the second chip causing an infinite loop overwriting
parts of the first chip. This change ensures that the loop counter is
not accidentally reset.
2023-10-27 11:33:44 -05:00
Kinsey Moore
3339afb82e bsps/aarch64/zynqmp/nand: Erase using offset
Prefer use of XNandPsu_Erase instead of XNandPsu_EraseBlock since the
XNandPsu driver does not expose the primitives necessary to ensure
device readiness after the operation is complete.
2023-10-27 11:33:44 -05:00
Alex White
f6b1840f70 validation: Add wrapped bsp_interrupt_dispatch for MicroBlaze
This adds a MicroBlaze-specific bsp_interrupt_dispatch wrapper which
fixes a linker error.
2023-10-27 09:40:58 -05: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
Kinsey Moore
7ea60d29d8 bsps/xil: Import Xilinx Cortex-R5 support
This imports Xilinx support code for the MPU and cache on Cortex-R5
cores. This was imported as specified 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
8b6c64f9ec build: Let the get-integer action return None
If used with the format-and-define action, this will result in an
undefined define.
2023-10-23 11:10:17 +02:00
Sebastian Huber
36b935f1c3 sparc: Fix move of CPU counter implementation
This fixes a build error with RTEMS_PROFILING enabled.

Update #4954.
2023-10-20 15:16:27 +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
601b84c758 bsps/leon3: leon3_counter_use_irqamp_timestamp()
Simplify leon3_counter_use_irqamp_timestamp().

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
ffa29bac30 bsps/leon3: Statically initialize get timecount
Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
8266a8a335 bsps/leon3: Move code blocks
Move code blocks to simplify C preprocessor usage.

Update #4954.
2023-10-20 11:16:54 +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
ff533cec9d bsps/leon3: Simplify clock and CPU counter
Share the timecounter instance between the clock and the CPU counter.
This greatly simplifies the clock driver since we have to do the device
selection only in one place, the CPU counter support.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber
3f03a6d2ef bsps/leon3: Make GPTIMER fall back mandatory
Using the auto reload counter which generates the clock ticks for the
timecounter or CPU counter is quite difficult and only works in
uniprocessor configurations.

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
8fe0fc4721 bsps/leon3: Optional IRQ(A)MP timestamp support
This is necessary to run the tests on SIS with profiling enabled.

Update #4954.
2023-10-20 11:16:53 +02:00
Sebastian Huber
95cf6e57be bsps/leon3: Update due to register API changes 2023-10-20 11:16:53 +02:00
Sebastian Huber
c15132aafd mpci: Hide implementation details
This improves the standard compatibility of API headers.  It fixes
errors like this if RTEMS_MULTIPROCESSING is enabled:

cpukit/include/rtems/score/processormask.h: In function 'uint32_t _Processor_mask_Find_last_set(const Processor_mask*)':
cpukit/include/rtems/score/processormask.h:339:21: error: 'flsl' was not declared in this scope
  339 |   return (uint32_t) __BIT_FLS( CPU_MAXIMUM_PROCESSORS, a );
      |                     ^~~~~~~~~
2023-10-20 11:16:53 +02:00
Tian Ye
a738d69bcf bsps/aarch64: Disable use of TTBR1
Force use of addresses that would be translated by TTBR1 to cause a
translation fault. RTEMS on AArch64 does not use TTBR1 and so attempted
translation of that address range could cause unexpected behavior in the
form of other exception types since TTBR1 is never set.
2023-10-18 10:14:42 -05:00
Kinsey Moore
e7cb79c39d cpukit: Remove unused includes 2023-10-13 19:02:15 -05:00
Kinsey Moore
5b22003411 bsps: Remove unused includes 2023-10-13 19:02:15 -05:00
Sebastian Huber
406ad8a5ae powerpc/t32mppc: Improve terminal settings 2023-10-13 09:51:29 +02:00
Sebastian Huber
ed2817c4c6 powerpc/t32mppc: Remove obsolete config options 2023-10-13 09:51:29 +02:00
Sebastian Huber
8290784378 powerpc/t32mppc: Fix console driver
Make sure that the message buffers are not garbage collected by the
linker.
2023-10-13 09:51:29 +02:00
Kinsey Moore
0a1d0dce3b cpukit/jffs2: Correctly init jffs2_inode_info
The repeated reinitialization of jffs2_inode_info must be done by the
members of the struct to avoid altering others.
2023-10-12 18:56:43 -05:00
Kinsey Moore
d7aa1ab86f cpukit/jffs2: Implement JFFS2 spinlocks
This provides a non-noop implementation of spinlocks for JFFS2 in terms
of RTEMS mutexes. POSIX spinlocks are not appropriate for the types of
actions that occur during a held JFFS2 spinlock and can cause bad
dispatch level conditions.
2023-10-12 18:56:43 -05:00
Kinsey Moore
c5476e2b8c bsps/xilinx-zynqmp: Unify JFFS2 OOB write locking
Ensure that a single locking session is carried over OOB writes
including the OOB read that is sometimes required. This removes the
possibility of another write occurring between the read and write that
would make the write incorrect.
2023-10-12 18:56:43 -05:00
Joel Sherrill
b9f7eb2a92 fat_fat_operations.c: Fix incorrect indentation 2023-10-12 18:56:29 -05:00
Sebastian Huber
43b74b142e validation: Support powerpc in test case
Update #4955.
2023-10-12 16:33:37 +02:00