summaryrefslogtreecommitdiffstats
path: root/spec/build/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* build: Use enabled by for defaultsSebastian Huber2023-01-1766-153/+130
| | | | | | | | | | | | | | Merge the "default" and "default-by-variant" attributes. Use an "enabled-by" expression to select the default value based on the enabled set. This makes it possible to select default values depending on other options. For example you could choose memory settings based on whether RTEMS_SMP is enabled or disabled. The change was tested by comparing the output of ./waf bspdefaults before and after the change.
* build: Replace variant patterns with a listSebastian Huber2023-01-172-6/+17
| | | | | | | | | | | Replace the variant patterns in the default-by-variant list with an explicit list of matching BSPs. The change was tested by comparing the output of ./waf bspdefaults before and after the change.
* zynqmp: Add support for the CFC-400XKinsey Moore2022-11-091-0/+1
| | | | | | | | This adds a BSP variant for the ZynqMP BSP family to support the Innoflight CFC-400X platform. To properly support the CFC-400X, device trees were added to the ZynqMP platform due to both the optional management interface as well as alternate physical configuration of the ethernet interfaces.
* cpukit/dev/can: Added CAN supportPrashanth S2022-10-301-0/+6
|
* config: Add CONFIGURE_IDLE_TASK_STORAGE_SIZESebastian Huber2022-10-141-0/+1
| | | | | | | | | | | | 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.
* build: Enable RISCV_BOOT_HARTID only for riscvSebastian Huber2022-10-131-1/+1
|
* rtems: Add rtems_clock_get_ticks_since_boot() functionSebastian Huber2022-09-231-0/+1
| | | | | This function was declared, however, a definition was missing. Add a validation test for it.
* build: Install SHA header filesSebastian Huber2022-09-221-0/+3
| | | | Update #3719.
* bsps/riscv: Add Microchip PolarFire SoC BSP variantPadmarao Begari2022-09-204-0/+23
| | | | | | | | 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.
* bsp/riscv: Add NOEL-V BSPMartin Aberg2022-09-062-0/+6
| | | | | | | | | | | | | | | | | | | | 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.
* spec/librtemscpu: Fix installed headersChris Johns2022-08-222-2/+1
| | | | | | | | - pci.h is only for sparc - keyimpl.h is not referenced and so not needed Updates #4705
* spec/bsps/aarch64: Install ELF machine types for libdlChris Johns2022-08-221-0/+3
| | | | Updates #4705
* build/cpukit: Add confdefs/face.h to install ruleDuc Doan2022-08-111-0/+1
| | | | Updates #4691
* libdl: Refactor shared code in ARM and AArch64Ryan Long2022-08-082-0/+2
| | | | | | | | 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
* build: Install <rtems/score/gcov.h>Sebastian Huber2022-08-041-0/+1
| | | | Update #4670.
* libmisc/shell: Add an 'rtems' command to report a running buildChris Johns2022-08-031-0/+1
| | | | - Report version, cpu, bsp, tools and options.
* cpukit/libdl: Add support for AArch64Ryan Long2022-07-293-0/+18
| | | | | | rtl-mdreloc-aarch64.c and elf_machdep.h came from NetBSD. Updates #4682
* score: Remove PRIORITY_PSEUDO_ISR thread prioritySebastian Huber2022-07-261-0/+1
| | | | | | | | | | | | | | | 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.
* imfs: Add <rtems/imfsimpl.h>Sebastian Huber2022-07-251-0/+1
|
* score: Extend memory dirty/zero actionsSebastian Huber2022-07-151-0/+1
| | | | | | Dirty or zero also the part of the .noinit section used by RTEMS. Close #4678.
* build: Add RTEMS_GCOV_COVERAGE optionSebastian Huber2022-07-047-0/+109
| | | | Update #4670.
* gcov: Add wrapper to dump the gcov infoSebastian Huber2022-07-041-0/+2
| | | | Update #4670.
* gcov: Add functions to dump the gcov informationSebastian Huber2022-07-042-0/+4
| | | | Update #4670.
* gcov: Add fork(), etc. gcov wrappersSebastian Huber2022-07-041-0/+1
| | | | | | | | 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.
* build: Allow separate optimization flagsSebastian Huber2022-07-041-2/+4
| | | | | | | | 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.
* build: Add cppflags, cflags, cxxflags to groupsSebastian Huber2022-07-041-0/+3
| | | | | | | Propagate the group defined cppflags, cflags, and cxxflags from parent groups to child items through the build item context. Update #4670.
* TFTPFS: Implement block and window size optionsFrank Kühndel2022-06-211-1/+2
| | | | | | | | | | | | | | | | | | | | | The original file cpukit/libfs/src/ftpfs/tftpDriver.c is split into two: tftpfs.c - This file contains the code from tftpDriver.c related to file system operations such as mount(), open(), read(), and so on. tftpDriver.c - In the original file remains only the code related to networking. This code implements the Trivial File Transfer Protocol (TFTP). Moreover, the code is extended to support * RFC 2347 TFTP Option Extension * RFC 2348 TFTP Blocksize Option * RFC 7440 TFTP Windowsize Option Update #4666.
* libtest: Add scheduler test supportSebastian Huber2022-03-241-0/+2
| | | | | | | | | Add support to record scheduler operations. This support is especially important for tests in SMP configurations since the thread switch extension is quite difficult to use due to the asynchronous nature of thread dispatching. In contrast, the scheduler operations occur normally in a deterministic order. Update #3716.
* score: Add _IO_Relax()Sebastian Huber2022-03-241-0/+1
| | | | | | | This function may be used to burn a couple of processor cycles with minimum impact on the system bus. It may be used in busy wait loops. Since it is a global function, it is possible to wrap it in device driver test code.
* cpukit/libdebugger: Add MicroBlaze supportKinsey Moore2022-02-233-0/+18
| | | | | | | | | | | | Add MicroBlaze support for libdebugger. This uses only software break type instructions to provide self-hosted GDB debugging support for applications since internal control of debug hardware is not possible. Also of note, this implementation for MicroBlaze would typically use the brki instruction for software break, but instead uses an illegal opcode to manage software breaks as exceptions. This is due to poor interaction with the debug hardware where the debug hardware will intercept software breaks instead of allowing the software break vector to execute.
* kern_ntptime.c: Port to RTEMSSebastian Huber2022-02-211-1/+1
| | | | | | Remove previous adjtime() implementation. Update #2348.
* cpukit/microblaze: Add exception extensionsKinsey Moore2022-02-042-0/+3
| | | | | Add the functions necessary to support RTEMS_EXCEPTION_EXTENSIONS and mark this functionality as available on MicroBlaze.
* Remove obsolete rtems_gxx_*() implementationSebastian Huber2022-01-271-2/+0
| | | | | | | | | | | GCC versions prior to 6.1 used a RTEMS thread model based on rtems_gxx_*() functions. GCC version 6.1 or later uses the self-contained synchronization objects of Newlib <sys/lock.h> for the RTEMS thread model. Remove the obsolete implementation. Close #3143.
* build: Fix build item formatSebastian Huber2022-01-111-1/+0
|
* build: Move test header to right library itemSebastian Huber2021-12-092-3/+5
|
* rtems: Move scheduler directives to own headerSebastian Huber2021-12-021-0/+1
| | | | | | Move all rtems_scheduler_* directives to the new header file <rtems/rtems/scheduler.h>. Add a Scheduler Manager API and implementation group.
* libc: Optimize malloc() initializationSebastian Huber2021-11-301-1/+0
| | | | | | | | | | | | | | | | The BSPs provide memory for the separate C Program Heap initialization via _Memory_Get(). Most BSPs provide exactly one memory area. Only two BSPs provide more than one memory area (arm/altera-cyclone-v and bsps/powerpc/mpc55xxevb). Only if more than one memory area is provided, there is a need to use _Heap_Extend(). Provide two implementations to initialize the separate C Program Heap and let the BSP select one of the implementations based on the number of provided memory areas. This gets rid of a dependency on _Heap_Extend(). It also avoids dead code sections for most BSPs. Change licence to BSD-2-Clause according to file history. Update #3053.
* score: Split wkspace.cSebastian Huber2021-11-301-0/+2
| | | | Splitting the file avoids unnecessary link-time dependencies.
* score: Move _Thread_queue_Extract()Sebastian Huber2021-11-231-0/+1
| | | | | | | Move _Thread_queue_Extract() since this function is not used by the core services (threads, semaphores, mutexes, message queues). Update #4546.
* score: Add _Thread_MP_Extract_proxy()Sebastian Huber2021-11-232-1/+1
| | | | | | | | Remove _Thread_queue_Extract_with_proxy() and move the proxy extraction to _Thread_MP_Extract_proxy(). Move similar code blocks of the previous caller of _Thread_queue_Extract_with_proxy() to helper functions. Update #4546.
* score: Add SMP scheduler make/clean stickySebastian Huber2021-11-231-0/+1
| | | | | | | | | | | | | | | | | | | | This patch fixes the following broken behaviour: While a thread is scheduled on a helping scheduler, while it does not own a MrsP semaphore, if it obtains a MrsP semaphore, then no scheduler node using an idle thread and the ceiling priority of the semaphore is unblocked for the home scheduler. This could lead to priority inversion issues and is not in line with the MrsP protocol. Introduce two new scheduler operations which are only enabled if RTEMS_SMP is defined. The operations are used to make the scheduler node of the home scheduler sticky and to clean the sticky property. This helps to keep the sticky handing out of the frequently used priority update operation. Close #4532.
* score: Add red-black tree append/prependSebastian Huber2021-11-231-0/+2
| | | | | | | These functions are a faster alternative to _RBTree_Insert_inline() if it is known that the new node is the maximum/minimum node. Update #4531.
* rtems: Add external functionsSebastian Huber2021-11-181-0/+2
| | | | | | These external functions rtems_scheduler_get_processor() and rtems_scheduler_get_processor_maximum() which may be used by bindings for languages other than C/C++.
* build: Optional __RTEMS_MAJOR__ via command lineSebastian Huber2021-11-161-1/+1
| | | | Update #4548.
* Revert "optvermaj.yml: Allow __RTEMS_MAJOR__ to be overridden so RTEMS 7 ↵Sebastian Huber2021-11-151-5/+3
| | | | | | tools can be tested" This reverts commit d1bbfbea5f60f552b2b3138bb1df35c3372f2461.
* score: Introduce CPU budget operationsSebastian Huber2021-11-151-1/+3
| | | | | | | | | | | | | | This patch set replaces the CPU budget algorithm enumeration with a set of CPU budget operations which implement a particular CPU budget algorithm. This helps to hide the CPU budget algorithm implementation details from the general thread handling. The CPU budget callouts are turned into CPU budget operations. This slightly reduces the size of the thread control block. All schedulers used the default scheduler tick implementation. The tick scheduler operation is removed and the CPU budget operations are directly used in _Watchdog_Tick() if the executing thread uses a CPU budget algorithm. This is performance improvement for all threads which do not use a CPU budget algorithm (default behaviour).
* optvermaj.yml: Allow __RTEMS_MAJOR__ to be overridden so RTEMS 7 tools can ↵Joel Sherrill2021-11-121-3/+5
| | | | be tested
* cpukit/aarch64: Add libdebugger supportKinsey Moore2021-11-013-0/+18
| | | | | | This adds support for libdebugger under AArch64 using software breakpoints and the single-step execution mode present in all AArch64 CPUs.
* aarch64: Break out MMU definitionsKinsey Moore2021-11-011-0/+1
| | | | | | This moves the AArch64 MMU memory type definitions into cpukit for use by libdebugger since remapping of memory is required to insert software breakpoints.
* cpukit: Add signal mapping supportKinsey Moore2021-10-292-0/+18
| | | | | | This adds a confdef option allowing an application to request mapping machine exceptions to POSIX signals. This is required for some languages such as Ada.