Commit Graph

839 Commits

Author SHA1 Message Date
ShaunakKDatar
fb1d9c8aca bsp/aarch64/raspberrypi: Add I2C Support
- Implements polling-based I2C communication.
- Supports three independent I2C master controllers.
- Adds support for 10-bit addressing mode.
2025-06-25 23:42:14 +05:30
Shaunak Datar
d4755476bc bsp/aarch64/raspberrypi4: Add PWM peripheral support
This commit adds support for the PWM peripheral on the aarch64/raspberrypi BSP.
2025-06-20 20:53:28 +05:30
Joel Sherrill
734208a49b bsp/shared/atomics: New directory
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.

The BSPs that need thie function tend to have older cores. This
is the list of BSPs:

arm - csb336, csb337, csb637, edb7312, gumstix, kit637_v6, lpc24xx_ea,
  lpc24xx_ncs_ram, lpc24xx_ncs_rom_ext, lpc24xx_ncs_rom_int,
  lpc24xx_plx800_ram, lpc24xx_plx800_rom_int, lpc32xx_mzx,
  lpc32xx_mzx_stage_1, lpc32xx_mzx_stage_2, lpc32xx_phycore,
  rtl22xx, rtl22xx_t, smdk2410
m68k - av5282, mcf5329
mips - jmr3904
moxie - moxiesim
nios2 - nios2_iss
riscv - grv32i, grv32im, niosvc10lp, noel32im, rv32i, rv32im,
sparc - ut699
2025-06-19 23:30:57 +00:00
Joel Sherrill
4106647891 bsps/arm/*: Add linker args to specify __sync_synchronize variant
GCCC 14 introduced a linking warning about not knowing which
__sync_synchronize implementation to use. The BSPs impacted
are updated in this commit. The suggested correction is to
use -specs to pick up a GCC specific specs file which changes
__sync_synchronize to the desired implementation
__sync_synchronize_MECHANISM. Using this solution ties
the code to GCC 14+ since the spec files are not in GCC 13.
This solution maps __sync_synchronize to a RTEMS specific
__sync_synchronize implementation which avoids using of a
GCC extension and requiring GCC 14+,

Closes #5268
2025-06-19 22:58:18 +00:00
Kinsey Moore
4848d7ab73 aarch64/raspberrypi4: Perform reset using watchdog
This updates the AArch64 Raspberry Pi BSP to use the watchdog to perform
the system reset instead of attempting to use the PSCI reset which isn't
present on the Raspberry Pi platform.
2025-06-10 21:25:35 -05:00
Kinsey Moore
ecaa780c85 spec/aarch64/raspberrypi: Rework linker script
This reworks the linker script configuration to be more comprehensible
and to remain within the 1GB guaranteed available on all Pi4 systems and
accounting for the memory dedicated to the GPU and the memory dedicated
to the low level firmware.
2025-06-10 21:25:35 -05:00
Mohd Noor Aman
7f30da6ec4 bsps/aarch64/raspberrypi: Add SMP Support 2025-06-10 21:25:35 -05:00
Amar Takhar
8bf1511496 yamlfmt: Format all yaml files
yamlfmt will become a hard error as our files are already clean except for these
minor issues.
2025-06-07 11:58:28 -04:00
Amar Takhar
c87906d13c m68k/uC5282: Fix typo in spcxx01
Introduced in !433

Refs #5259
2025-06-07 11:48:31 -04:00
Joel Sherrill
968a7af3c1 m68k/uC5282: Disable spcxx01
Disable this test until issue #5217 is resolved.

Updates #5230
2025-06-05 23:37:15 +00:00
mez3n
528095cd24 cpukit/rtems: add rtems_barrier_get_number_waiting()
Closes rtems/programs/gsoc#9
Added rtems_get_number_waiting according to the issue
rtems/programs/gsoc#9, including tests and documentation.
2025-05-12 17:00:14 +00:00
Jeremy Lorelli
0017330fc6 spec: Remove missing headers from m68k BSPs
These headers were removed in b30d88cb87
2025-05-09 15:37:47 -07:00
Matteo Concas
7205078179 spec: Install missing header files for GRLIB and SPARC
The following files will be installed during SPARC/GRLIB builds:
- bsps/include/grlib/apbuart-regs.h
- bsps/include/grlib/gptimer-regs.h
- bsps/include/grlib/irqamp-regs.h
- bsps/sparc/include/grlib/io.h

Fix issue #5231
2025-03-25 16:04:40 +01:00
Joel Sherrill
9e05cd72c5 mvme147s: Remove as obsoleted
Updates #5031
2025-03-13 06:12:15 +00:00
Joel Sherrill
807584adfd m68k/shared/fpsp: Remove obsolete m68040 FP Support Code
The Motorola MC68040 did not completely implement IEEE754 in hardware.
The FPSP code was required to complete the support. With no more
MC68040 BSPs in RTEMS, this code can be removed.

Updates #5031
2025-02-12 12:51:58 -06:00
Chris Johns
8d78a68ece Revert "build: Provide LDFLAGS for pkg-config"
This reverts commit 237570e605
2025-02-11 05:49:15 +00:00
Joel Sherrill
5a9484e6cb m68k/mvme147: Remove obsolete BSP family
Updates #5031
2025-02-10 08:49:24 -06:00
Sebastian Huber
237570e605 build: Provide LDFLAGS for pkg-config
Some pkg-config variants perform transformations on the --libs options.
This may lead to completely broken linker options.  Provide the LDFLAGS
as a variable.  Remove "Ldflags:" since this is an unsupported field.

Update #5169.
2025-02-07 12:13:18 -06:00
Joel Sherrill
b30d88cb87 m68k/mcf5225x: Remove obsolete BSP family
Updates #5031
2025-02-07 14:19:00 +00:00
Joel Sherrill
46e90be362 m68k/mrm332: Remove obsolete BSP family
Confirmed with Robominds

Updates #5031
2025-02-07 14:15:27 +00:00
Joel Sherrill
2188c428fb m68k/mvme167: Remove obsolete BSP family
Updates #5031
2025-02-07 14:13:06 +00:00
Joel Sherrill
17ae630e9a m68k/mvme162: Remove obsolete BSP family
Updates #5031
2025-02-07 14:10:41 +00:00
Vincenzo Calabretta
d2d9bd4aee bsp/stm32h7: Add nucleo-h753zi BSP variant
Support the NUCLEO-H753ZI development board from STMicroelectronics.
2025-02-07 01:24:03 +00:00
Joel Sherrill
6cdc09c48a m68k/mcf52235: Remove obsolete BSP family
Updates #5031
2025-02-07 01:21:36 +00:00
Joel Sherrill
23a4dc74cd m68k/mcf5206elite: Remove obsolete BSP family
Updates #5031
2025-02-07 01:21:00 +00:00
Joel Sherrill
7f86974bf3 m68k/gen68360: Remove obsolete BSP family
Updates #5031
2025-02-07 01:20:24 +00:00
Joel Sherrill
552e481699 m68k/gen68340: Remove obsolete BSP
Updates #5031
2025-02-07 01:19:44 +00:00
Joel Sherrill
0316b3c322 m68k/csb360: Remove obsolete BSP
Updates #5031
2025-02-07 01:18:30 +00:00
Kinsey Moore
b9c58102bb bsps/stm32h7/spi: Add DMA support 2025-02-07 00:07:42 +00:00
Kinsey Moore
4de9ddf4a7 bsps/stm32h7: Add DMA support
This patch adds a DMA allocator that can be used by any driver wrapping
a STM32 HAL driver that supports DMA.
2025-02-07 00:07:42 +00:00
alessandronardin
9876b5949f posix/aio: Implemented aio_suspend()
Implemented aio_suspend().
Added test to verify functionality.
2025-02-04 23:34:31 +00:00
Gedare Bloom
203b08fa23 powerpc: remove unused file debugmod.h 2025-02-03 17:18:35 -07:00
Joel Sherrill
802d640038 v850: Remove obsolete architecture
Updates rtems/rtos/rtems#5023
2025-01-29 18:23:45 +00:00
Joel Sherrill
ecaa0f8e93 SPARC64: Remove obsolete architecture
Updates rtems/rtos/rtems#5021
2025-01-29 18:23:45 +00:00
Joel Sherrill
00b074b124 SuperH (sh): Remove obsolete architecture
Updates rtems/rtos/rtems#5022
2025-01-29 18:23:45 +00:00
Joel Sherrill
740f736f9e lm32: Remove obsolete architecture
Updates rtems/rtos/rtems#5025
2025-01-29 18:23:45 +00:00
Joel Sherrill
82624328da bin: Remove obsolete architecture
Updates rtems/rtos/rtems#5024
2025-01-29 18:23:45 +00:00
Michal Lenc
e6f6eccaef can: add support for CTU CAN FD controller
This commit adds support for CTU CAN FD controller. The controller
can be initialized from BSP by ctucanfd_initialize() function call.
It also implements the dynamic redistribution of hardware transmission
buffers to CAN stack priority classes in order to avoid possible
priority inversion.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
Co-authored-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
2025-01-28 08:25:28 +01:00
Michal Lenc
0cbb9eb9f9 can: add support for a simple virtual CAN controller
This commit adds a support for a simple virtual CAN controller. This
controller can be used to test CAN stack functions and serves as an
inspiration for further controller implementations.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
Co-authored-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
2025-01-28 08:25:28 +01:00
Michal Lenc
c3f4e215b1 cpukit: add support for common CAN/CAN FD stack
This adds support for common full-featured CAN/CAN FD stack to RTEMS.
The API is provided in form the form of the POSIX character driver with
each CAN controller (chip) registered as node into “/dev”
namespace.

The stack utilizes FIFO queues (also called edges) organized
into oriented edges between controller side and application side.
Edges, responsible for message transfers from application to controller
and vice versa, can have different priorities and function as priority
classes.

The stack provides run time configuration options to create new
queues with desired priority, direction and filter, making it
suitable for various applications requirements. There is also a
possibility to configure controller’s characteristics (bit rate,
mode, chip specific ioctl calls). Both blocking and nonblocking mode
is supported.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
Co-authored-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
2025-01-28 01:57:28 +00:00
Kinsey Moore
c7912a997b spec/pkgconfig: Account for separate compilation and linking
When compilation and linking are performed separately, some platforms
(i.e. RISC-V) may require that ABI flags are provided during the linking
step as well as the compilation step.
2025-01-24 00:18:56 +00:00
Ning Yang
c2a1db3cde bsp/aarch64/raspberrypi: Add genet support
- Add genet FDT support. Main reference:
https://www.kernel.org/doc/Documentation/devicetree/bindings/net/brcm%2Cbcmgenet.yaml
- Add genet mmu
- Add raspberrypi4 nocache area
2024-12-16 19:14:59 +00:00
Sebastian Huber
d0d2cf2733 build: Improve Makefile.inc
Support relocated BSP installations by letting the user provide
RTEMS_ROOT.

Close #5170.
2024-12-05 04:07:58 +01:00
Chris Johns
e14a740a99 spec/cpukit: Add libdl RISCV support
Closes #5144
2024-11-22 00:13:36 +00:00
Kinsey Moore
9e42e61e6e bsps/aarch64/zynqmp: Factor out the CFC-400X management console
This moves the management console implementation into its own file so
that BSPs which do not need it do not carry the code around with them.

Closes #5120
2024-11-22 00:06:16 +00:00
Kinsey Moore
7d1a934884 bsps/shared/flash: Add a JFFS2 flashdev driver
This adds generic JFFS2 interworking code that allows JFFS2 to be used
on top of any flashdev backend. It currently only supports NOR flashdev
backends.
2024-11-21 23:44:37 +00:00
Sebastian Huber
f45ccfa167 build: Remove Windows quirk
The current version of gccdeps.py works on Windows.
2024-11-21 04:22:31 +01:00
Sebastian Huber
7d5c08db80 validation: Check bootloader L2C settings
Update #4925.
2024-11-20 15:08:04 +00:00
Sebastian Huber
7ff3438cba validation: Test thread priority change detail
Test the proper serialization of explicit thread priority changes (for
example rtems_task_set_priority()) and thread priority changes carried
out by thread queues (locking protocols such as priority inheritance).

With RTEMS_DEBUG enabled, the new test case fails with an assertion.  It
is fixed in a follow up commit.

Update #5159.
2024-11-20 02:32:38 +01:00
Kinsey Moore
b3be636863 bsps/stm32h7/spi: Add IRQ support 2024-11-15 00:47:58 +00:00