Commit Graph

179 Commits

Author SHA1 Message Date
Ryan Long
ea41722c92 Change filesystem utime_h handler to utimens_h
Also updated licenses.

Closes #4400
Updates #3899
2021-05-28 14:27:40 -05:00
Ryan Long
335f705082 libcsupport: Added futimens() and utimensat()
Created futimens.c and utimensat.c to add support for the POSIX
methods futimens() and utimensat().

utime() and utimes() are considered obsolote by POSIX, but RTEMS
will continue to support them.

Closes #4396
2021-05-28 14:27:39 -05:00
Kinsey Moore
d0eaf3ec1c spec/aarch64: Add BSPs for real ZynqMP hardware
Add the BSPs for running on the ZU3EG Ultrascale+ Zynq MPSoC and alter
the option defaults necessary for them to run properly using the
standard BOOT.BIN configured for PetaLinux that comes in the Out-of-Box
package.
2021-05-27 14:09:00 -05:00
Kinsey Moore
5fe49a0853 bsps/aarch64: Add MMU driver to relax alignment
Currently, the AArch64 BSPs have a hard time running on real hardware
without building the toolchain and the bsps with -mstrict-align in
multiple places. Configuring the MMU on these chips allows for unaligned
memory accesses for non-device memory which avoids requiring strict
alignment in the toolchain and in the BSPs themselves.

In writing this driver, it was found that the synchronous exception
handling code needed to be rewritten since it relied on clearing SCTLR_EL1 to
avoid thread stack misalignments in RTEMS_DEBUG mode. This is now
avoided by exactly preserving thread mode stack and flags and the new
implementation is compatible with the draft information provided on the
mailing list covering the Exception Management API.
2021-05-27 14:09:00 -05:00
Kinsey Moore
ae5e1d9797 bsps/a53: Increase available RAM
The default available RAM on the A53 BSP is quite small at 8MB. This
bumps that to 128MB to avoid allocation failures in tmcontext01 caused
by large allocations on a cache size of 16MB reported by the system
registers in QEMU.
2021-05-27 14:09:00 -05:00
Kinsey Moore
25ca2ec4cb bsps/aarch64: Break out system registers
Break out system register definitions and accessors so that they're
usable by other parts of RTEMS.
2021-05-27 14:09:00 -05:00
Vijay Kumar Banerjee
a5fd2935b7 testsuites: Remove telnetd01
telnetd01 test cannot be run without a network stack, so this test is being
moved to the rtems-net-legacy repository.
2021-05-20 17:52:37 -06:00
Sebastian Huber
80b3c938ce score: Move _Thread_queue_Queue_get_name_and_id()
Move this diagnostic function to a separate file since it does not
provide a core function of the system.

Change license to BSD-2-Clause according to file history and
re-licensing agreement.

Update #3053.
2021-05-17 17:30:39 +02:00
Sebastian Huber
815a94326c posix: Move clock_nanosleep()
Move clock_nanosleep() to a separate file to avoid a dependency on errno
which pulls in the Newlib reentrancy support.  This is an issue since
most parts which are pulled in cannot be garbage collected by the linker
due to the system initialization linker set.
2021-05-17 17:29:36 +02:00
Christian Mauderer
691fec407a bsps/imxrt: Fix OCRAM, ITCM and DTCM sizes
The sizes are configurable via fuses or per software via some registers.
At the moment the registers are not changed. Changing the registers
destroys data stored in the RAM areas (like application code or data).
So either the fuses or some bootloader should be used to set them before
the application starts.

This also adds an OCRAM only linker command file.

Update #4180
2021-05-17 09:06:41 +02:00
Sebastian Huber
bc29c7c313 validation: Add support library
Add a library for support functions used by validation tests.  Rename
tc-support.* to tx-support.* since this file does not contain test
cases.
2021-05-14 08:48:38 +02:00
Sebastian Huber
ab5aeb1be1 score: Rename _Stack_Free_nothing()
Rename _Stack_Free_nothing() in _Objects_Free_nothing() to make it
reusable for the message queue buffers.

Update #4007.
2021-05-11 07:45:58 +02:00
Sebastian Huber
eb7c33add0 bsps/riscv: Support RTEMS_NOINIT in linkcmds
Update #3866.
2021-05-03 14:05:19 +02:00
Sebastian Huber
8b15a3242e Use alias for rtems_task_self() and pthread_self()
This may reduce the code size a bit.
2021-04-30 07:56:28 +02:00
Peter Dufault
9c13e528a0 powerpc/shared/console: Make console baud rate configurable.
The "powerpc/shared/console" code has the start-up console value fixed
at 9600 baud.  This changes the hard-wired constant "9600" in the code
to the configuration setting "BSP_CONSOLE_BAUD" and adds configuration
support in both the "waf" and the legacy configuration systems.

Note that the VME BSPs beatnik, mvme3100, and mve5100 can be improved
by adding a "mvmexxxx" BSP family. This configuration change, as well
as future configuration changes, could then be made in a "grp.yml" file.
2021-04-27 16:46:48 -06:00
Robin Mueller
53bb397dfa Nucleo UART3 (console) pins correction
Now using default pins
2021-04-23 11:39:18 +02:00
Sebastian Huber
8c518a95f2 build: Remove duplicated attributes 2021-04-22 15:31:44 +02:00
Sebastian Huber
d8a5e140ec libcsupport: Move rtems_calloc()
Move rtems_calloc() since it only depends on rtems_malloc().  This may
make it easier to customize the heap allocator.

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

Update #3053.
2021-04-20 19:18:23 +02:00
Sebastian Huber
ea1dc0eeb3 bsp/stm32h7: Remove duplicated build definitions
The links are already in spec/build/bsps/arm/stm32h7/grp.yml.
2021-04-20 11:07:11 +02:00
Vijay Kumar Banerjee
650ac70066 Revert "cpukit: Remove telnetd"
This reverts commit 3299dda245.
2021-04-13 11:57:21 -06:00
Vijay Kumar Banerjee
df6d765c3a testsuites: Remove all legacy networking tests
Update #3850
2021-04-07 16:15:39 -06:00
Vijay Kumar Banerjee
633526d2a2 spec: Remove residue bsps spec files
Update #3850
2021-04-07 16:15:39 -06:00
Vijay Kumar Banerjee
3299dda245 cpukit: Remove telnetd
Update #3850
2021-04-07 16:15:39 -06:00
Vijay Kumar Banerjee
3dca9ed92b testsuites/libtests: Remove networking01
Update #3850
2021-04-07 16:15:38 -06:00
Vijay Kumar Banerjee
c90fa83041 bsps: Remove networking drivers
Update #3850
2021-04-07 16:15:38 -06:00
Vijay Kumar Banerjee
6692e03e9d cpukit/libfs: Remove nfsclient
Update #3850
2021-04-07 16:15:38 -06:00
Vijay Kumar Banerjee
369e6c5bf7 cpukit: remove pppd
Update #3850
2021-04-07 16:15:38 -06:00
Vijay Kumar Banerjee
a28eafb2a4 cpukit: Move ftpfs from libnetworking to libfs
Update #3850
2021-04-07 16:15:38 -06:00
Vijay Kumar Banerjee
c6ba8dd4e0 spec: Remove RTEMS_NETWORKING options
Update #3850
2021-04-07 16:15:38 -06:00
Sebastian Huber
089e68181e score: Replace Objects_Name_or_id_lookup_errors
Replace Objects_Name_or_id_lookup_errors with new Status_Control codes.
Get rid of the _Status_Object_name_errors_to_status lookup table.
2021-04-07 06:31:46 +02:00
Sebastian Huber
05cd707d28 arm/stm32h7: Add STM32H7_USART3_GPIO_* 2021-04-06 09:56:41 +02:00
Sebastian Huber
6bb6b69bb6 arm/stm32h7: Add STM32H7_HSE_FREQUENCY 2021-04-06 09:43:23 +02:00
Sebastian Huber
26307ef115 arm/nucleo-h743zi: New BSP variant 2021-04-06 09:42:53 +02:00
Sebastian Huber
3799375c5e build: Add group for arm/stm32h7 2021-04-06 09:41:44 +02:00
Christian Mauderer
8fd29cfbc5 stm32h7: Add init for sdmmc pins
Update #4372
2021-04-01 09:04:23 +02:00
Jan Sommer
7a1edf11a1 bsps/shared: Add Xilinx-AXI SPI driver to waf
Updates #4321
2021-03-30 17:01:36 +02:00
Sebastian Huber
8afe332348 validation: Add test case support functions 2021-03-23 07:57:13 +01:00
G S Niteesh Babu
56074644a7 bsp/beagle: Ported Beagle pinmux driver to RTEMS
The following files have been ported
1) ti_pinmux.c
2) ti_pinmux.h
3) am335x_scm_padconf.c
4) am335x_scm_padconf.h

Update #3784
2021-03-21 12:30:48 +01:00
G S Niteesh Babu
7589f1e01a bsps/beagle: Added SOC detection using FDT
Detects the SOC type using FDT and also replaces the ti_cpuid.h
header in FreeBSD with custom one.
2021-03-21 12:30:48 +01:00
Sebastian Huber
eb1cd404d0 build: Add test exclude for arm/lpc2362 2021-03-19 16:55:11 +01:00
Sebastian Huber
5babc54d8d validation: Task create/construct
Run the task create/construct tests also on validation test suite 1
which has exactly one processor configured.
2021-03-16 12:47:52 +01:00
Eshan dhawan
a26a326e55 Test suite for FTW.H methods
Signed-off-by: Eshan Dhawan <eshandhawan51@gmail.com>
2021-03-11 11:40:13 -06:00
Daniel Hellstrom
b2da982c87 leon,tn-0018: work around GRLIB-TN-0018 errata
Overview
========

The errata is worked around in the kernel without requiring toolchain
modifications. It is triggered the JMPL/RETT return from trap instruction
sequence never generated by the compiler and. There are also other
conditions that must must be true to trigger the errata, for example the
instruction that the trap returns to has to be a JMPL instruction. The
errata can only be triggered if certain data is corrected by ECC
(inflicted by radiation), thus it can not be triggered under normal
operation. For more information see:
	 www.gaisler.com/notes

Affected RTEMS target BSPs:
 * GR712RC
 * UT699
 * UT700/699E

The work around is enabled by defining __FIX_LEON3_TN0018 at build time.
After applying the following GCC patch, GCC will set the define when
compiling for an affected multilib:
  * GR712RC (-mcpu=leon3 -mfix-gr712rc)
  * UT700/UT699E (-mpcu=leon3 -mfix-ut700)
  * UT699 (-mcpu=leon -mfix-ut699)
When building for another multilib and TN0018 is still required, it
is possible to enable it on the RTEMS kernel configure line using the
TARGET_CFLAGS (-D__FIX_LEON3FT_TN0018) or other by other means.

The following GCC patch sets __FIX_LEON3FT_TN0018 for the affected RTEMS
multilibs:
---------
diff --git a/gcc/config/sparc/rtemself.h b/gcc/config/sparc/rtemself.h
index 6570590..ddec98c 100644
--- a/gcc/config/sparc/rtemself.h
+++ b/gcc/config/sparc/rtemself.h
@@ -33,6 +33,8 @@
        builtin_assert ("system=rtems");        \
        if (sparc_fix_b2bst)                    \
          builtin_define ("__FIX_LEON3FT_B2BST"); \
+       if (sparc_fix_gr712rc || sparc_fix_ut700 || sparc_fix_ut699) \
+         builtin_define ("__FIX_LEON3FT_TN0018"); \
     }                                          \
   while (0)
---------

Workaround Implementation
=========================

In general there are two approaches that the workaround uses:
 A) avoid ECC restarting the RETT instruction
 B) avoid returning from trap to a JMPL instruction

Where A) comes at a higher performance cost than B), so B) is used
where posssible. B) can be achived for certain returns from trap
handlers if trap entry is controlled by assembly, such as system calls.

A)
A special JMPL/RETT sequence where instruction cache is disabled
temporarily to avoid RETT containing ECC errors, and reading of RETT
source registers to "clean" them from incorrect ECC just before RETT
is executed.

B)
The work around prevents JMPL after system calls (TA instruction) and
modifies assembly code on return from traps jumping back to application
code. Note that for some traps the trapped instruction is always
re-executed and can therefore not trigger the errata, for example the
SAVE instruction causing window overflow or an float instruction causing
FPU disabled trap.

RTEMS SPARC traps workaround implementation:
   NAME                 NOTE   TRAP   COMMENT
 * window overflow         1 - 0x05   always returns to a SAVE
 * window underflow        1 - 0x06   always returns to a RESTORE
 * interrupt traps         2 - 0x10..1f special rett sequence workaround
 * syscall                 3 - 0x80   shutdown system - never returns
 * ABI flush windows       2 - 0x83   special rett sequence workaround
 * syscall_irqdis          4 - 0x89
 * syscall_irqen           4 - 0x8A
 * syscall_irqdis_fp       1 - 0x8B   always jumps back to FP instruction
 * syscall_lazy_fp_switch  5 - 0x04   A) jumps back to FP instruction, or to
                                      B) _Internal_error() starting with SAVE

 Notes:
 1) no workaround needed because trap always returns to non-JMPL instruction
 2) workaround implemented by special rett sequence
 3) no workaround needed because system call never returns
 4) workaround implemented by inserting NOP in system call generation. Thus
    fall into 1) when workaround is enabled and no trap handler fix needed.
 5) trap handler branches into both 1) and returning to _Internal_error()
    which starts with a SAVE and besides since it shuts down the system that
    RETT should never be in cache (only executed once) so fix not necessary
    in this case.

Any custom trap handlers may also have to be updated. To simplify that,
helper work around assembly code in macros are available in a separate
include file <libcpu/grlib-tn-0018.h>.

Close #4155.
2021-03-11 17:35:28 +01:00
Daniel Hellstrom
b57436c8fc leon3: avoid dependency on apbuart/timer driver
Moves drvmgr_drivers[] from amba.c to a separate file in order
to avoid the dependecy on APBUART/GPTIMER drivers. This has
an effect when user configured not to use timer or uart
in their project.
2021-03-11 17:35:27 +01:00
Daniel Hellstrom
9bf8a9d147 leon,grcan: split out GRCAN non-FD specific support in separate file
Close #4324.
2021-03-11 17:31:21 +01:00
Daniel Hellstrom
9c76ca0c0c leon,grcanfd: split out GRCANFD specific support in separate file
Update #4324.
2021-03-11 17:31:21 +01:00
Daniel Hellstrom
cff99cf1fa leon,can: introduce common CAN baud-rate calculation function
Reimplemented the baud-rate algorithm from scratch to cope with
GRCAN, GRCANFD and OC_CAN devices.

Update #4323.
2021-03-11 17:31:21 +01:00
Jan Sommer
06129897a9 bsps/xilinx_zynq: Add SPI driver to waf
Updates #4320
2021-03-10 20:12:08 +01:00
Sebastian Huber
ba48f20e2a build: Fix broken link 2021-03-09 13:03:15 +01:00
Alex White
10db41e6f1 spec/aarch64: Enable previously disabled tests
This enables several testsuites that were initially disabled during
development.
2021-03-08 15:18:51 -06:00