Commit Graph
37968 Commits
Author SHA1 Message Date
Kinsey Moore ae1dd8dec2 riscv: Add support for vectored interrupt controllers 2026-04-07 14:52:50 -05:00
Kinsey Moore 9520d1501b spec/riscv: Allow BSS to be specified independent of DATA 2026-04-07 14:52:50 -05:00
Kinsey Moore 1d98a00710 spec/bsps/riscv: Allow start section load address
This adds a new memory section load address for the start region.
2026-04-07 14:52:50 -05:00
Kinsey Moore 9a4f2904c0 riscv: Add optional section copy callback
This adds a callback early in the RISC-V startup process that allows a
BSP to copy linker sections in situations where they may not be
automatically mapped.
2026-04-07 14:52:50 -05:00
Kinsey Moore db85fedbaf riscv: Add support for Espressif Direct Boot
This adds the ability to generate a binary image with an Espressif
Direct Boot header.
2026-04-07 14:52:50 -05:00
Rongjie Lee 215b3c9f71 aarch64: Add imx93 BSP
This adds a BSP for the i.MX93 chip.
2026-04-06 10:12:07 -05:00
Sebastian Huber e20a42b84d build: Add CC-BY-SA-4.0 to two items
The content may end up in documentation sources, for this CC-BY-SA-4.0
is required.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-04-03 20:33:13 +00:00
Gedare Bloom 77c41a08d1 riscv: use configured RAM region if defined
Use the configuration values for RISCV_RAM_REGION_BEGIN and
RISCV_RAM_REGION_SIZE to determine the workspace instead of
using the FDT or linker variables.

Fixes #5545.
2026-04-02 18:23:33 -05:00
Sebastian Huber 810b2d50c9 bsps/leon3: Fix AMBA frequency initialization
Where LEON3_GPTIMER_BASE was defined, the finding and initialization of
the timer devices was disabled.  However, this code block has an
important side-effect.  It initializes all frequencies of the device
tree.  Make sure this part is done even if a dynamic initialization of
LEON3_Timer_Adev and LEON3_Timer_Regs is not required.

Close #5541.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-04-02 18:11:19 -05:00
Gedare Bloom 1fc01a4393 bsps/riscv/start: relocate Lstart_on_secondary_processor
Fixes #5542
2026-04-02 18:06:57 -05:00
Pavel Pisa 9685c72e29 bsps/arm/tms570: prevent self clear when running from SRAM with HWINIT
The original internal SRAM build variant (tms570ls3137_hdk_intram)
has been used heavily during our initial TMS570 BSP development.
It is much faster then Flash application erase and update
and it prolongs kit usability as the guaranteed erase/write
cycles count is low (1000) for TMS570 used Flash technology.

The problem manifested when I have prepared tms570lc4357_hdk_intram
variant to help in #5537 with start of TMS570 development project
and environment.

HWINIT for internal SRAM build is enabled by

--- a/spec/build/bsps/arm/tms570/objhwinitlc4357hdk.yml
+++ b/spec/build/bsps/arm/tms570/objhwinitlc4357hdk.yml
@@ -5,7 +5,9 @@ copyrights:
 - Copyright (C) 2023 embedded brains GmbH & Co. KG
 cppflags: []
 cxxflags: []
-enabled-by: arm/tms570lc4357_hdk
+enabled-by:
+  - arm/tms570lc4357_hdk
+  - arm/tms570lc4357_hdk_intram
 includes: []
 install: []
 links: []
--- a/spec/build/bsps/arm/tms570/optlowinit.yml
+++ b/spec/build/bsps/arm/tms570/optlowinit.yml
@@ -10,6 +10,7 @@ default:
 - enabled-by:
   - arm/tms570ls3137_hdk
   - arm/tms570lc4357_hdk
+  - arm/tms570lc4357_hdk_intram
   value: true
 - enabled-by: true
   value: false

Closes #5539

Signed-off-by: Pavel Pisa <ppisa@pikron.com>
2026-04-01 14:02:51 -05:00
Pavel Pisa 2e9e44a073 bsps/arm/tms570: add support for tms570lc4357_hdk_intram build
This build places all code and data into the on-chip
internal SRAM. Even though this limits the application
size and has not much use for final applications
deployment, this configuration is important during
development because the guaranteed Flash write/erase
cycle count is limited to 1000 if a 15-year data retention
guarantee is required.

The load to SRAM is much faster as well.

Signed-off-by: Pavel Pisa <ppisa@pikron.com>
2026-04-01 14:02:51 -05:00
Sebastian Huber 56ae0855be libtests/record02: Increase stack size
The fetch() function requires a considerable amount of stack space.
Increase the stack size accordingly.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-04-01 14:02:07 -05:00
Karthikey Kadati 1ef634d984 testsuites/validation: Fix event send-receive sign mismatch
Resolves a -Wsign-compare compiler warning by typing the event
state tracking variable as States_Control.
2026-04-01 14:00:52 -05:00
Gedare Bloom 29db5340ca riscv/start: clear bss before copying fdt
fixes #5543
2026-04-01 12:28:10 -06:00
Sebastian Huber d664a1c844 build: Add missing copyright statements
Each build item shall have copyright statements.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-04-01 13:50:08 +02:00
Sebastian Huber de108eddde build: Fix typos
Fix typos in copyright statements.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-04-01 13:50:08 +02:00
Sebastian Huber 6998a0bba6 build: Remove unused attributes
The removed attributes are not used by the build system.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-04-01 13:50:08 +02:00
Gedare Bloom b09bc60067 spec/build/microblaze: remove duplicate key in optmaxuarts.yml
The actions key was replicated.
2026-03-31 16:53:25 +00:00
Joel Sherrill d75b74c66d spec/build/cpukit/optgcc.yml: Correct GCC build key
The RSB had the build date/key of 2026.03.04 but RTEMS had it as
a day later. Correcting it here avoids everyone rebuilding all the
tools.
2026-03-30 11:46:28 -05:00
Mohamed Ayman 8b8fc19119 stm32f4: fix spelling, grammar, and register names in include folder
Fixed various typos and grammatical errors in the documentation
throughout the stm32f4 include folder. Additionally, updated
several incorrect register names to ensure technical accuracy.
2026-03-30 09:18:46 -05:00
Joel Sherrill 993c1a1d9b arm/lpc32xx/rtc/rtc-config.c: Fix compilation error
There was an argument and parameter with the same name.
2026-03-29 12:48:02 -05:00
Sebastian Huber 63fa5b5c55 build: Get rid of multiple links to the one option
Close #5532.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-03-26 08:57:02 +01:00
Sebastian Huber 9bdb83ab72 bsps/aarch64: Localize PSCI support
Install <bsp/bspsmp-arm-psci.h> only for BSPs using it.

Use common build item for shared SMP support.
2026-03-25 20:34:42 -05:00
Sebastian Huber f76b04e133 build: Move FatFS build support
Use a separate build objects item for the FatFS to localize the use of command
line defines.
2026-03-24 02:54:23 +01:00
Matteo Concas 40818d91c5 riscv/sbi: Correct path 2026-03-20 10:31:46 +01:00
Yash 6c28b540fa libfs/dosfs: Add Doxygen headers and fix typo in msdos_init.c
Add missing Doxygen file headers to msdos.h and msdos_init.c to
comply with documentation standards. Correct a typo ('apropriately'
to 'appropriately') in msdos_init.c.
2026-03-19 19:18:21 -05:00
Mohamed Ayman 1097e00b5f arm/stm32f4: extend USART DR field to 9 bits
The STM32F4 USART data register supports up to 9-bit data
when CR1.M is set. The current DR macros mask only bits [7:0],
which truncates the MSB in 9-bit mode.
Extend the field width to [8:0] to match the hardware
definition while remaining compatible with 8-bit mode.
2026-03-19 19:13:44 -05:00
Vhmed-Mvnsour 0e86a5de8e doxygen: Update logo to current RTEMS logo
The old Doxygen logo is outdated and has been replaced with the

current RTEMS logo.

Closes #5495
2026-03-19 18:31:52 -05:00
Prakhar Kumar b3a0dc0966 CRC check: Added CRC check in flashdisk
- added CRC check for rtems_fdisk_recover_block_mappings function
- Computes CRC of page data and compares with page descriptor
- Marks pages as bad if CRC mismatch occurs
2026-03-19 18:10:59 -05:00
Mohamed Ayman 6e83c38851 bsps/arm/stm32f4: fix HPRE bitfield Possible Bug in STM32F4 RCC header
Fix HPRE macro in cfgr register: original spanned bits 4–15,
accidentally overwriting APB1/APB2 prescaler bits (10–15).
Corrected range to 4–7, matching hardware specification.
2026-03-19 16:10:33 -05:00
Gedare Bloom eeee01453d riscv: init FPU in s-mode
Fixes omission of initializing the FPU during shared boot
in s-mode.
2026-03-19 11:34:13 -05:00
Mohamed Ayman 485efbd418 docs: correct spelling and grammar in stm32f4 headers
Fixed various typos and grammatical errors throughout the documentation
in the stm32f4 include folder to improve readability.
2026-03-19 11:06:27 -05:00
Sebastian Huber caead7cefc build: Add comment to command line options
Add a comment to explain the preference of using build options.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-03-19 10:46:15 -05:00
Mohamed Ayman beea2a5683 stm32f4/usart: fix BRR calculation logical issues
Fix two issues in the BRR calculation logic.
First the fractional part was computed using an incorrect formula, which
can produce invalid values and does not match the USARTDIV equation. This
also risks a division-by-zero in some cases. The calculation is updated to
follow the correct relation between pclk, baud, and USARTDIV.
Second the computation of the higher approximation of USARTDIV was not
consistent with the intended logic. The update ensures the next valid
step is computed properly when refining the divisor.
These changes make the baud rate calculation more accurate and reliable.
2026-03-18 14:54:00 -05:00
Mohamed Ayman 050fc00c5a bsps/arm/stm32f4: Fix FLASH register macro definitions
Fix incorrect definition of STM32F4_FLASH_CR_SNB which was missing
its macro parameter.
Also correct the register prefix of OPTSTRT and OPTLOCK which belong
to the FLASH_OPTCR register instead of FLASH_CR.
2026-03-18 19:49:25 +00:00
Mohamed Ayman 3b052ba8bf bsps/arm/stm32f4: Fix incorrect bit definition for EXTI line 22
EXTI_LINE22 was incorrectly defined as BSP_BIT32(21), which conflicts
with EXTI_LINE21. Correct it to BSP_BIT32(22).
2026-03-18 19:48:44 +00:00
Mohamed Ayman a1a1e16b11 BUG: Fix AFIO bit clearing in set_remap_config
Previously, the AFIO register bits were not cleared correctly before
setting the remap value, which could overwrite unrelated bits and
cause GPIO remapping to behave incorrectly.

This change ensures that only the intended bits are cleared and updated,
so GPIO remapping works as expected on STM32F10xxx devices.
2026-03-18 19:48:02 +00:00
Mohamed Ayman dc11184541 arm/stm32f4: Fix I2C mutex initialization and potential mutex leak
Fix two issues in the STM32F4 I2C driver related to mutex handling.
The mutex protecting the I2C bus was created with an initial count of
0. For a binary semaphore used as a mutex this causes the first
rtems_semaphore_obtain() call to block indefinitely since the semaphore
starts in the locked state. Initialize the semaphore with a count of 1
so it starts unlocked.
Additionally, stm32f4_i2c_process_message() could return early if the
STOP bit was set in CR1 without releasing the mutex. This would leave
the mutex locked and cause subsequent calls to deadlock. Release the
mutex before returning in this case.
Also cast dummy SR2 reads to (void) to make the intent explicit and
avoid potential compiler warnings about statements with no effect.

arm/stm32f4: Fix I2C mutex initialization and potential mutex leak

fix the indentation on these lines.
2026-03-18 19:46:21 +00:00
Mohamed Ayman 14605b6d2b arm/stm32f4: fix SYSCFG register layout
The SYSCFG register block misses two reserved registers between
EXTICR4 and CMPCR. This causes CMPCR to be mapped at the wrong
offset (0x18 instead of 0x20).
Add the missing reserved fields to preserve the correct hardware
register layout according to the STM32F4 reference manual.
2026-03-18 19:43:25 +00:00
Mohamed Ayman 657cd11729 bsps/arm/stm32f4: Correct PLS macro Potential Bug in STM32F4 PWR header
STM32F4_PWR_CR_PLS now correctly takes a 'val' argument
to avoid compilation errors when selecting PVD level.
Verified other CR/CSR bit definitions and comments; no spelling issues.
2026-03-18 14:10:01 -05:00
Gedare Bloom df28cf6e31 riscv/riscv: fix incorrect uses of SIP_STIP for SIP_SSIP
Fixes #5522
2026-03-18 12:44:46 -06:00
Gedare Bloom e3ec0ab811 riscv/riscv: refactor FDT helper functions
Adds bsp/riscv-fdt.h with new functions for pulling information from
the FDT.
2026-03-18 12:44:46 -06:00
Gedare Bloom 6952bcf1ef riscv/riscv: remove RISCV_FATAL_CLOCK_SMP_INIT
Fixes #5486
2026-03-18 12:44:46 -06:00
Gedare Bloom 2c16558469 riscv/riscv: s-mode booting with SMP
Closes #3337
2026-03-18 12:44:46 -06:00
Gedare Bloom fd4b66ff12 riscv/riscv: use shutdown SBI in s-mode
Updates #3337
2026-03-18 12:44:46 -06:00
Gedare Bloom 32de7146e2 riscv/riscv: support using SBI timer in s-mode
Uses the sbi_set_timer() SBI call if the Sstc extension is not found in
the FDT.

Also fixes rv32 support for s-mode timers.

Updates #3337
2026-03-18 12:44:46 -06:00
Yash f8f6311b99 bsps/powerpc: Add Doxygen and formatting to Motorola BSPs
Add Doxygen-style file headers and fix specific typos in comments
to improve documentation and compliance with coding standards.
2026-03-18 08:34:57 +00:00
Sebastian Huber 28588dcc59 build: Check the GCC build key
Query the GCC build key and check it against the required value.

There are dependencies between the RTEMS sources and external interfaces
provided by Newlib and GCC.  For example, POSIX API interfaces may
change due to POSIX standard updates.  The GCC build key is used to
provide an indication that the present tools meet the requirements of
the RTEMS sources.

Add the GCC_BUILD_KEY_POLICY build option to define the checking policy.
The GCC build key policy defines how the build key of the present
compiler is checked against the required build key.  While the policy is
"ERROR", if the GCC build key has not the expected value, then the build
configuration process produces a fatal error.  While the policy is
"WARNING", if the GCC build key has not the expected value, then the
build configuration process produces a warning message.  While the
policy is "IGNORE", the GCC build key is not checked at all.  The
default policy is "WARNING".

Close #5521.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2026-03-18 02:24:45 +01:00
Chris Johns 5a16f9dd50 cpukit/rtems: Set the timer's chain node to off chain before appending
The timer's node is shared with the RB tree and before placing it on the
timer server's chain the node needs to set to off chain or
RTEMS_DEBUG may assert.
2026-03-16 17:03:56 -05:00