summaryrefslogtreecommitdiffstats
path: root/spec (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add PER_CPU_DATA_NEED_INITIALIZATION()Sebastian Huber2021-06-101-0/+1
| | | | | | | | | Make the initialization of the per-CPU data optional. Change license to BSD-2-Clause according to file history and re-licensing agreement. Update #3053.
* splinkersets01: Test linker sets in librarySebastian Huber2021-06-103-2/+21
| | | | | Make sure that the linker sets work if placed in a library (this is how they are used in RTEMS).
* aarch64: add qemu bsps for cortex-a72Gedare Bloom2021-06-0912-0/+394
| | | | The a72 BSPs are identical to the a53 BSPs just changing a53 to a72.
* arm/fvp: Remove unused GICv2 BSP optionSebastian Huber2021-06-072-6/+1
| | | | Update #4202.
* Change filesystem utime_h handler to utimens_hRyan Long2021-05-281-2/+2
| | | | | | | Also updated licenses. Closes #4400 Updates #3899
* libcsupport: Added futimens() and utimensat()Ryan Long2021-05-281-0/+3
| | | | | | | | | | 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
* spec/aarch64: Add BSPs for real ZynqMP hardwareKinsey Moore2021-05-277-2/+85
| | | | | | | 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.
* bsps/aarch64: Add MMU driver to relax alignmentKinsey Moore2021-05-275-4/+35
| | | | | | | | | | | | | | | 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.
* bsps/a53: Increase available RAMKinsey Moore2021-05-271-1/+1
| | | | | | | 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.
* bsps/aarch64: Break out system registersKinsey Moore2021-05-271-0/+1
| | | | | Break out system register definitions and accessors so that they're usable by other parts of RTEMS.
* testsuites: Remove telnetd01Vijay Kumar Banerjee2021-05-202-24/+0
| | | | | telnetd01 test cannot be run without a network stack, so this test is being moved to the rtems-net-legacy repository.
* score: Move _Thread_queue_Queue_get_name_and_id()Sebastian Huber2021-05-171-0/+1
| | | | | | | | | | 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.
* posix: Move clock_nanosleep()Sebastian Huber2021-05-171-0/+1
| | | | | | | 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.
* bsps/imxrt: Fix OCRAM, ITCM and DTCM sizesChristian Mauderer2021-05-177-4/+86
| | | | | | | | | | | | 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
* validation: Add support librarySebastian Huber2021-05-144-4/+22
| | | | | | Add a library for support functions used by validation tests. Rename tc-support.* to tx-support.* since this file does not contain test cases.
* score: Rename _Stack_Free_nothing()Sebastian Huber2021-05-111-1/+1
| | | | | | | Rename _Stack_Free_nothing() in _Objects_Free_nothing() to make it reusable for the message queue buffers. Update #4007.
* bsps/riscv: Support RTEMS_NOINIT in linkcmdsSebastian Huber2021-05-031-0/+7
| | | | Update #3866.
* Use alias for rtems_task_self() and pthread_self()Sebastian Huber2021-04-301-2/+1
| | | | This may reduce the code size a bit.
* powerpc/shared/console: Make console baud rate configurable.Peter Dufault2021-04-276-1/+16
| | | | | | | | | | | 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.
* Nucleo UART3 (console) pins correctionRobin Mueller2021-04-232-8/+2
| | | | Now using default pins
* build: Remove duplicated attributesSebastian Huber2021-04-222-2/+0
|
* libcsupport: Move rtems_calloc()Sebastian Huber2021-04-201-0/+1
| | | | | | | | | 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.
* bsp/stm32h7: Remove duplicated build definitionsSebastian Huber2021-04-201-89/+1
| | | | The links are already in spec/build/bsps/arm/stm32h7/grp.yml.
* Revert "cpukit: Remove telnetd"Vijay Kumar Banerjee2021-04-134-0/+50
| | | | This reverts commit 3299dda2454a8847c670a732f6c12ef1f2cc5dd0.
* testsuites: Remove all legacy networking testsVijay Kumar Banerjee2021-04-077-134/+0
| | | | Update #3850
* spec: Remove residue bsps spec filesVijay Kumar Banerjee2021-04-073-57/+0
| | | | Update #3850
* cpukit: Remove telnetdVijay Kumar Banerjee2021-04-074-50/+0
| | | | Update #3850
* testsuites/libtests: Remove networking01Vijay Kumar Banerjee2021-04-071-21/+0
| | | | Update #3850
* bsps: Remove networking driversVijay Kumar Banerjee2021-04-073-37/+0
| | | | Update #3850
* cpukit/libfs: Remove nfsclientVijay Kumar Banerjee2021-04-072-25/+0
| | | | Update #3850
* cpukit: remove pppdVijay Kumar Banerjee2021-04-073-36/+0
| | | | Update #3850
* cpukit: Move ftpfs from libnetworking to libfsVijay Kumar Banerjee2021-04-072-2/+2
| | | | Update #3850
* spec: Remove RTEMS_NETWORKING optionsVijay Kumar Banerjee2021-04-0781-1067/+0
| | | | Update #3850
* score: Replace Objects_Name_or_id_lookup_errorsSebastian Huber2021-04-071-1/+0
| | | | | Replace Objects_Name_or_id_lookup_errors with new Status_Control codes. Get rid of the _Status_Object_name_errors_to_status lookup table.
* arm/stm32h7: Add STM32H7_USART3_GPIO_*Sebastian Huber2021-04-063-0/+44
|
* arm/stm32h7: Add STM32H7_HSE_FREQUENCYSebastian Huber2021-04-062-0/+22
|
* arm/nucleo-h743zi: New BSP variantSebastian Huber2021-04-061-0/+17
|
* build: Add group for arm/stm32h7Sebastian Huber2021-04-063-419/+538
|
* stm32h7: Add init for sdmmc pinsChristian Mauderer2021-04-011-0/+1
| | | | Update #4372
* bsps/shared: Add Xilinx-AXI SPI driver to wafJan Sommer2021-03-304-0/+24
| | | | Updates #4321
* validation: Add test case support functionsSebastian Huber2021-03-232-0/+2
|
* bsp/beagle: Ported Beagle pinmux driver to RTEMSG S Niteesh Babu2021-03-211-0/+6
| | | | | | | | | | 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
* bsps/beagle: Added SOC detection using FDTG S Niteesh Babu2021-03-211-0/+1
| | | | | Detects the SOC type using FDT and also replaces the ti_cpuid.h header in FreeBSD with custom one.
* build: Add test exclude for arm/lpc2362Sebastian Huber2021-03-191-0/+1
|
* validation: Task create/constructSebastian Huber2021-03-161-0/+2
| | | | | Run the task create/construct tests also on validation test suite 1 which has exactly one processor configured.
* Test suite for FTW.H methodsEshan dhawan2021-03-112-0/+36
| | | | Signed-off-by: Eshan Dhawan <eshandhawan51@gmail.com>
* leon,tn-0018: work around GRLIB-TN-0018 errataDaniel Hellstrom2021-03-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* leon3: avoid dependency on apbuart/timer driverDaniel Hellstrom2021-03-111-0/+1
| | | | | | | 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.
* leon,grcan: split out GRCAN non-FD specific support in separate fileDaniel Hellstrom2021-03-111-0/+1
| | | | Close #4324.
* leon,grcanfd: split out GRCANFD specific support in separate fileDaniel Hellstrom2021-03-111-0/+1
| | | | Update #4324.