Commit Graph
914 Commits
Author SHA1 Message Date
Joel Sherrill 3166b39f36 optstdcc.yml, cpuopts.yml: Use C23 to compile RTEMS
Prior to this change, the RTEMS build system did not specify the
version of C to compile with.

Closes #5327
2026-01-16 09:08:11 -06:00
Remi Debord 0b2455f6f8 bsps/arm: Add BSP for Versal RPU 2026-01-15 11:43:59 +01:00
Remi Debord 126e19aa60 bsps/shared/dev/serial: Move Versal UART sources 2026-01-15 11:42:45 +01:00
Allan Hessenflow 9c1340a309 bsps: add new BSP for Silicon Labs EFM32GG11
includes support for UART/USART, I2C, SPI, TRNG
2026-01-13 18:28:43 -05:00
Joel Sherrill 5384a26b48 spec/build/cpukit/optwarn.yml: Reduce ignored warnings
The set of remaining warnings is shrinking. Reduce the set of
ignored warnings.
2026-01-09 17:16:19 -06:00
cibi.p ab2f0c0cb9 spec: move timespecget to librtemscpu from objpsxsgnl
The timespecget() API originates from C11 and should not be
guarded by RTEMS_POSIX_API.

Updates #5412
2026-01-08 08:52:40 -06:00
Jeremy Lorelli 0b5d311673 bsps/m68k: Implement new IRQ system
Implements the required bsp directives for the 'new' style rtems
interrupt system. Previously, uC5282 only supported interrupts through
the BSP_installVME_isr directive.

BSP_installVME_isr still behaves the same, but is instead implemented
using the new IRQ directives. To ensure compatibility with existing
EPICS related code without causing subtle bugs, BSP_installVME_isr will
also poke at the EPORT interrupt settings to enable IRQ1 when installing
a "fake VME" interrupt (vector >= 192).

This also fixes a regression from e9cb088995 that broke clock interrupt
handlers, leading to the BSP crashing shortly after boot.
2025-12-28 12:46:58 -08:00
Mazen Adel Elmessady 1477839d2a testsuites/psxtests: Added API header OK tests for Posix 8
Added API header OK test in psxtests/psxhdrs
as a part of my work to GSoC 25
note that functions ppoll(), sem_clockwait() and timespec_get()
don't have a prototype yet so the tests will fail. I won't
add them to the libpsxhdrs.yml file until my PR is approved in newlib.
2025-12-12 09:30:28 -06:00
Sam Price 0cbfcf9817 bsp/microblaze-fpga: parameterize linker layout
Add build options for start address, vector base, and BRAM length,
wire them into the microblaze_fpga linker script and BSP group,
and add the dependencies to the kcu105_qemu BSP spec.
2025-12-11 19:13:48 -05:00
Bhavya Shah 1b440d2807 imfs/large_block_size: Modified imfs for large block size
- Added testcase psximfs04 to test the block size
- Modified confdefs/libio.h for block size 1024
2025-12-11 17:51:35 -06:00
Bhavya Shah 6367099ec0 imfs/user_allocator: Add user-configurable allocator support
- Extend IMFS and libio headers to define default allocator/deallocator ops
  and logic for configuring memfile_ops.
- Update imfs_memfile to use custom allocators for memory blocks.
- Fix imfs_statvfs.f_bfree calculation to respect user-defined ops.
- Add psximfs03 test case to validate custom allocator behavior.
- Refactor psximfs01 to share helper functions with psximfs03.
2025-12-11 17:45:13 -06:00
Sam PriceandAlex White f7116eee20 microblaze: add AXI timer benchmark support
Add AXI timer definitions and a BSP btimer implementation and
install them in the microblaze_fpga BSP.

Co-authored-by: Alex White <alex.white@oarcorp.com>
2025-12-08 08:57:24 -06:00
Mazen Adel Elmessady ff63275812 cpukit/posix: Add timespec_get() support to RTEMS
Added the implementation of timespec_get() with tests.
The implementation used clock_gettime() as a reference.
The tests used psxtimes01 as a reference.

Updates
rtems/programs/gsoc#69
2025-12-05 17:00:55 -05:00
Martin Erik Werner a72c0e0583 spec: Ensure -msoft-float is in make linking flags
In order for the linker to pick the correct soft-float libraries when
building for a target without an FPU the -msoft-float flag needs to be
present.

This is already the case in the pkg-config file where ABI_FLAGS are
included in Ldflags:

  Ldflags: ${ABI_FLAGS} -B${libdir} -qrtems -Wl,--gc-sections

But this is not present in the custom make includes:

  LDFLAGS = -B$(exec_prefix)/$(RTEMS_BSP)/lib -qrtems -Wl,--gc-sections

The RTEMS template make rule for linking includes all of CFLAGS:

  define bsp-link-c
  	$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) \
  	    -o $(basename $@)$(EXEEXT) $(LINK_OBJS) $(LINK_LIBS)
  endef

The standard (GNU) built-in make rule for linking does not include
CFLAGS when linking:

  $(CC) $(LDFLAGS) $* $(LOADLIBES) $(LDLIBS) -o $@

Add ABI_FLAGS to LDFLAGS in the custom make includes such that building
soft-float applications works with the default built-in make rules as
well.
2025-12-04 19:02:42 -06:00
Kinsey Moore d82efbd7d1 bsps/shared/dev/nor: Add SFDP and CFI parsers
Fixed flashdev doxygen group
2025-12-04 18:52:00 -06:00
Joel Sherrill cc9aa4b748 ino_t printf() cases: Add PRIdinod_t for ino_t format specifier
The sizeof(ino_t) can potentially vary based on the target. This
resulted in -Wformat warnings. Add PRIdino_t in <rtems/inttypes.h>
to have a portable format specifier.

Closes #5393.
2025-12-04 18:41:19 -06:00
Joel Sherrill f794dc4267 spec/../*yml: Add fatfs tests to multiple BSP test excludes
Multiple BSPs do not have the memory required to link the
FATFS tests. Added these tests to tstsmallmem.yml and multiple
individual BSP tst excludes.
2025-12-04 19:06:12 -05:00
Joel Sherrill 2ba90abb80 spec/.../microblaze_fpga/grp.yml: Delete duplicate optuartirq.yml
For some reason, optuartirq.yml was included twice and this
breaks configuration.

Updates #5376,
2025-12-04 17:42:02 -06:00
Kinsey Moore 20faa90860 bsps/shared/dev/flash: Add a flashdev simulation backend
This adds a backend for flashdev that simulates a flash device with
adjustable delays to simulate real flash devices and offers
configurable flash parameters. This also migrates the JFFS2
filesystem tests to the flashdev framework and eliminates the
purpose-built simulated flash in the testsuite in favor of a more
generic and widely usable solution.
2025-12-04 14:12:55 -06:00
Kinsey Moore 710a6e124e cpukit/jffs2,spec: Add summary support to the build
This adds summary support to the build with a global option to enable
this support and necessary changes to the imported summary support
source to integrate it into the build system and resolve errors.
2025-12-03 15:48:56 -06:00
Kinsey Moore 1a99eb52dc bsps/shared/xnandpsu: Parameterize number of active chipselects
This makes the number of active chipselects a BSP configuration
parameter. The name of the macro in upstream source is misleading and
suggests that the driver can support up to the selected value when in
actuality it requires that number of chips to be present. If this number
of chips is not present, the driver will hang on initialization waiting
for a chip to respond that does not exist.
2025-12-03 08:25:50 -06:00
Kinsey Moore ff52b009b5 bsps/shared: Add XNandPsu flashdev backend
Add a flashdev backend supporting the XNandPsu peripheral on ZynqMP
systems.
2025-12-03 08:25:50 -06:00
Kinsey Moore 7cc3bb777c cpukit,spec: Swap JFFS2 to zlib CRC32
Move JFFS2 from the Cygwin implementation of CRC32 to the zlib
implementation which can take advantage of hardware acceleration and
reduces code duplication. Synthetic benchmarks on AArch64 hardware show
approximately a 17x improvement in CRC32 calculation speed and
real-world testing with JFFS2 shows a 1% improvement in mount times, a
5% improvement in data write times, and a 9% improvement in garbage
collection times.

A test was written to compare hash generation between the two algorithms
and a partition was created with one and then remounted with the other
with no errors.
2025-12-02 08:59:37 -06:00
Sepehr Ganji 330c70c565 libfs/fatfs: Update FatFS to R0.16
This updates the FatFS to R0.16 revision
of upstream and updates the cppflags.
2025-12-01 09:16:31 -06:00
Sam Price 637c351743 bsp/microblaze-fpga: expose second AXI timer clock
Adds the registers that expose the second microblaze timer interrupt.
Moves the system clock to a shared interrupt so users may add a new
interrupt off the second interrupt.
2025-11-30 11:51:01 -05:00
Gedare Bloom c951686b13 cpukit: Use CONFIGURE_MAXIMUM_PRIORITY with EDF
Uses the CONFIGURE_MAXIMUM_PRIORITY to set the priority range for
EDF and CBS schedulers under the control of applications.
The default priority behavior is now the same as other schedulers.
The user API to get a task's current priority returns 0 for deadline
driven tasks.

Fixes #5390
2025-11-17 16:25:27 -07:00
Sepehr Ganji bff18c05b9 libfs/fatfs: Add FatFS with tests
This adds FatFS wrapper layer to RTEMS
including tests as part of GSoC 2025.
2025-11-10 16:09:07 -07:00
Joel Sherrill ed38fadfbe spec/build/cpukit/optwarn.yml: Warning flags to match current state
All but ~50 warnings have been fixed if you account for unmerged
MRs. These settings should give a warning free build given the
current state.

       Warnings by Type
=================================
   2 -Wshift-negative-value
   3 -Wenum-conversion
   7 -Wcast-function-type
   7 -Wmissing-field-initializers
   8 -Wclobbered
  32 -Wtype-limits
2025-10-28 19:58:06 +00:00
Kinsey Moore df2304b7e7 spec/bsps/aarch64/xilinx-zynqmp: Add XQspiPsu flashdev backend 2025-10-08 16:45:03 +00:00
Chris Johns f30157f988 libdebugger: Add SMP support for ARM
Make the aarch64 SMP support a separate file and share it between
aarch64 and arm.
2025-09-22 20:51:58 +00:00
Kinsey Moore 3b60c421ca bsps/arm/xilinx-zynq: Add Xilinx compatibility layer
This adds the Xilinx compatibility layer for use with various Xilinx
libraries. The first consumer of this will be lwIP support for the
Zynq7000 platform.
2025-09-20 09:48:31 +10:00
Joel Sherrill ba3acfd3d0 misc: Fix empty body warnings
Address the small number of cases where an empty body occurred in
an if, else, or do while.
2025-09-15 16:25:37 +00:00
Mazen Adel Elmessady f929bcba5b cpukit/posix: Added pthread clock functions
Added pthread_cond_clockwait(), pthread_mutex_clocklock()
pthread_rwlock_clockrdlock() and pthread_rwlock_clockwrlock()
that are new in POSIX Issue 8. Also added tests.
The implementation used the timed versions of these functions
as a reference.

Updates
rtems/programs/gsoc#69
2025-09-10 19:56:50 +00:00
Kinsey Moore 7a36500b6b Revert "spec/build/cpukit/optwarn.yml: Add -Wcalloc-transposed-args"
This reverts commit 71670c9cb0.

This option is not available on GCC 13.
2025-09-04 17:30:35 -05:00
Joel Sherrill 71670c9cb0 spec/build/cpukit/optwarn.yml: Add -Wcalloc-transposed-args
Add check for calls to calloc() having the size (sizeof) and
number of elements (int) swapped.
2025-09-04 15:43:45 +00:00
Joel Sherrill c0fba626cb spec/build/cpukit/optwarncc.yml: Add -Wold-style-declaration
Newer C versions require that the storage-class specifier like
static or _Thread_Local be the first thing in a declaration. Adding
this warning to the default set to let us eliminate violations.
2025-09-03 09:15:17 -05:00
Shaunak Datar 02de8a383d bsp/arch64/raspberrypi: Add I2C TX interrupt support
Adds the interrupt support for TX in the I2C driver
2025-08-28 18:33:49 -05:00
Kinsey Moore 94251a25fb cpukit: Remove telnetd
The telnet server library is being moved from the primary RTEMS
repository to the rtems-net-services repository.

Updates #5290
2025-08-26 14:42:42 -04:00
Kinsey Moore 3e160df4aa spec/cpukit/optwarn: Add -Werror to the standard build flags
Now that RTEMS should be entirely warning free thanks largely to the
efforts of Joel, adding this flag should keep the codebase in a good
state for future compiler updates.

Closes #5317
2025-08-21 13:04:09 -05:00
Joel Sherrill d172ecaff9 spec/.../mcf5235: Missing GCC atomic helper
Provide missing GCC atomics helpers as part of BSPs where GCC
does not know how to provide it since the CPU's ISA has no
atomic instructions. The implementation provided in
bsps/shared/atomics/__atomic_test_and_set.c should work
on any single core CPU.
2025-08-21 17:40:01 +00:00
Joel Sherrill dce430bb69 spec/*: Clean up fast idle configure option
The CLOCK_DRIVER_USE_FAST_IDLE configure option is implemented
in the shared clock driver implementation. Unfortunately, the spec
files scattered the yaml to enable it for a specific BSP. This
change adds the shared file spec/build/bsps/optclkfastidle.yml which
is now the only place the CLOCK_DRIVER_USE_FAST_IDLE is specified.
That file includes a master list of BSPs which are known to be able to
run on simulators that are slow enough to benefit from this option.

As a point of information, the entire riscv BSP family can run on
both spike and qemu. None had the option do use fast idle. With this
option enabled, the time taken for a full test run on spike for
rv32i and rv64imadfc dropped by ~45%.
2025-08-20 13:02:19 -05:00
Shaunak Datar fb08c8cb8d bsp/aarch64/raspberrypi: Add support for DMA
Adds the support for DMA on the Raspberry Pi 4b
2025-08-20 12:40:01 +05:30
yang.zhang a9e131706c bsp/zynqmp_qemu: dl06 fails expectedly 2025-08-11 19:07:34 +00:00
Kinsey Moore e8c5bba5bf arm/imxrt: Resolve missing prototype
This resolves a missing prototype by making a file used in the arm/imx
BSP family shared so that it can be used by the arm/imxrt BSP family to
provide the missing prototypes.
2025-08-06 14:58:49 +00:00
Joel Sherrill b40fba2686 spec/build/*.yml: Add contrib/.../uuid and contrib/.../utf8proc
This addition is needed to account for utf8proc and uuid moving
from cpukit/include to contrib. Both include directories need
to stay globally available.
2025-08-05 13:42:49 +00:00
Joel Sherrill 56c5c935b3 spec/build/bsps/arm/lm3s69xx/tstlm4f120.yml: Add psxaio0[4-6]
These tests were too large for this BSP.
2025-08-05 13:20:19 +00:00
Amar Takhar 3fcf78156d cpukit: Remove utf8proc and add to build
This also moves the header from <utf8proc/utf8proc.h> to <utf8proc.h>  This
follows what the upstream project uses and keeps us from having to modify
upstream source to put it in a subdirectory.
2025-07-31 18:07:34 -05:00
Amar Takhar e9870fa74f cpukit: Remove uuid and add to build
Did the best I could handling the location of uuid.h
2025-07-31 18:01:42 -05:00
Amar Takhar 3d8ad5c50c cpukit: Delete xz and add to build
No special instructions.
2025-07-31 17:51:28 -05:00
Amar Takhar 9ff0fd6f5b cpukit: Delete zlib and add to build
Includes had to be added to jffs2 and cpukit.
2025-07-31 17:51:28 -05:00