Commit Graph

249 Commits

Author SHA1 Message Date
Kinsey Moore
955d36ea47 bsps/qspi: Make flashdev control structure private
These structures are not required to be exposed to users for any
functionality and users of the API have no way to make use of them.
2025-10-16 11:26:52 -05:00
Joel Sherrill
243c25d191 bsps ACPI: Address unused parameter warnings
Add "(void) param;" annotation to address unused parameter warnings.
Found with GCC's warning -Wunused-parameter.

The ACPI change set includes two headers which define debug macros. When
not building for debug, the instantiated inline functions generate
unused parameter warnings from every file they are included in. The
warning was disabled around the macro instantiations.
2025-10-10 22:04:38 +00:00
Kinsey Moore
7ebcccf199 bsps/dev/spi/xqspipsu_flash_config.h: Make flash config table static
This is now used by multiple files and can cause a multiple definitions
error when linking. Make the structure static to avoid this problem.
2025-10-08 15:39:05 -05:00
Joel Sherrill
81dd232071 bsps/include/acpi/acpica/acpixf.h: Address unused parameter warnings
This is a third party file and the debug macros create unused
parameter warnings when debugging is not enabled. There are
multiple macros with layers. Rather than attempt to unwind all
this, disabled the -Wunused-parameter GCC warning around the
short block of code causing these warnings.
2025-09-25 14:41:34 -05:00
Kinsey Moore
75e7f5cb80 cpukit/flashdev: Add unregister call and private data destructor
This adds an API call allowing for unregistration to include destruction
of private data that is not managed by the flashdev framework. This also
updates the existing consumers of flashdev to use the new private data
destructor callback.
2025-09-22 10:04:58 -05:00
Jeremy Lorelli
897a8d3094 libchip/ds1375: Refactor to use i2c-rtc driver
Previously this RTC was using the file system-based i2c interface in
/dev. Since the RTC is initialized pretty early on during system init,
we call open() before stdin/stdout/stderr have been opened. RTEMS
assumes that stdin == 0, stdout == 1, etc., and fails when that isn't
the case. In particular, when stdin != 0, RTEMS assumes that it wasn't
configured with a console driver and skips opening stdout/stderr,
leading to confusing issues with the standard I/O streams.
2025-09-20 08:57:16 +10:00
Joel Sherrill
ad60ce8c2c bsps/*acpi*: Address unterminated string warnings
The ACPI source has multiple tables where a Name field is defined.
The name field is a character array with a length of 4. All of the
string initializers are four characters plus a NUL. The code is
careful to use strn*() functions and intentionally avoids assuming
there is space for the NUL. With lots of entries in the various
arrays, this was clearly a design decision to save space.

This was caught by GCC's -Wunterminated-string-initialization
warning. The solution used is to use the "nonstring" attribute
recommended by the GCC manual.

Closes #5329
2025-09-19 18:56:55 +00:00
Joel Sherrill
02fbe6e9b5 bsps/include: Fix old style declaration
Newer C versions require that the storage-class specifier like
static or _Thread_Local be the first thing in a declaration.
2025-09-03 09:15:17 -05:00
Joel Sherrill
19aee5aaa8 bsps/include/*: Add SPDX for RTEMS legacy license
These may still be relicensed but adding SPDX is needed.

Updates #4805.
2025-08-22 10:14:12 -05:00
Sebastian Huber
00bef3226d bsps/irq: Fix array bounds warning
Use a one element array to prevent array subscript index is outside
array bounds warnings.

Close #5298.
2025-08-13 01:53:05 +02:00
Joel Sherrill
b162f65fb1 bsps/include: Move SPDX line to top of file
The RTEMS Software Engineering Guide specifies that the SPDX license
annotation shouldbe the first line of the file and not part of the
copyright/license comment block.
2025-08-11 19:06:32 +00:00
Joel Sherrill
75312c1b9b bsps/include/grlib/ambapp.h: Fix warning for zero length array use
The use of an array of zero length at the end of a structure needs to
be careful to use RTEMS_ZERO_LENGTH_ARRAY since the accepted syntax
varies across C language versions.
2025-08-01 09:12:23 +10:00
Kinsey Moore
e36bbd8e25 bsps/dev/spi/xqspipsu-flash-helper: Explain source
This adds a missing header block and better explains the provenance of
the xqspipsu-flash-helper files and their copyright status.
2025-07-24 17:31:48 -05:00
Kinsey Moore
fc9093723b bsps/include/dev/spi: Add missing extern and guard
This adds missing extern "C" declarations and a missing header guard.
2025-07-24 17:31:48 -05:00
Matt Joyce
d735d4459c bsps/stm32u5-grisp-nano: New BSP
This BSP supports a custom STM32U5 based board. It uses a similar
structure like the existing STM32H7 BSP and therefore should be well
adaptable to other boards.

Co-authored-by: Christian Mauderer <christian.mauderer@embedded-brains.de>
2025-07-02 23:41:01 -04:00
Aaron Nyholm
b00a9d9993 bsp/include/jffs2_flashdev: Added CPP guards
Closes #5280
2025-06-25 04:08:55 +00:00
Amar Takhar
b714e4a809 ascii: Remove non-ASCII characters
We will soon be enforcing ASCII-only characters for source.
2025-05-22 19:35:12 +00:00
Kinsey Moore
4fb6342a42 bsps/dev/irq/arm-gic: Document the GICD_IROUTER offset
The GICD_IROUTER register technically starts at offset 0x6000, but the
first 32 IRQ entries are reserved making IRQ 32's entry at 0x6100 the
first usable entry. This register is not currently used, so only a
comment is added to that effect.

Closes #5223
2025-03-13 22:31:23 +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
601e52f495 bsps: Fix Doxygen groups 2024-11-15 00:36:37 +00:00
Christian Mauderer
2c4e3ab117 bsps/shared: Fix bug in driver for I2C RTCs
The two RTCs supported by that driver (MCP7940M and EOZ9) use slightly
different register order. Add support for a different order to the
i2c-rtc driver.
2024-11-13 23:06:47 +00:00
Kinsey Moore
1bba349478 bsps: Remove imported Xilinx headers
This removes the headers imported from the embeddedsw repository in
favor of a much thinner shim. This also removes the complicated build
system configuration necessary to support use of these headers. The
primary reason for removal is that certain external Xilinx libraries
also require use of these headers and this causes version mismatches and
header conflicts that can be avoided.
2024-10-28 19:23:49 +00:00
Sebastian Huber
4b1e80dff5 bsps/aarch64: Improve MMU mapping
Produce only one fatal error.  Fix potential integer overflow errors.
2024-10-11 01:27:48 +02:00
Sebastian Huber
f43042cd06 bsps: Move <bsp/linker-symbols.h> to shared
Move architecture-independent items to a shared <bsp/linker-symbols.h>.
Allow architectures to customize it through <bsp/linker-symbols-arch.h>.
2024-10-11 01:27:48 +02:00
Sebastian Huber
42c6f727d6 dev/irq: Remove arm_gic_irq_generate_software_irq()
Replace uses with API calls.
2024-10-11 01:27:48 +02:00
Sebastian Huber
c388c3d19e bsps/arm: Add missing GICv3 distributor registers 2024-10-08 00:30:54 +02:00
Sebastian Huber
a947bba9df dev/irq: Add BSP_IRQ_HAVE_GET_SET_AFFINITY
Allow BSPs to provide the interrupt get/set affinity implementation even for
non-SMP configurations.
2024-10-02 05:24:30 +02:00
Utkarsh Verma
0f42153959 dev/serial: Refactor the pl011 driver
- Refactor the pl011 driver to be extensible.
- Add IRQ support and baudrate configuration support for pl011 driver.
- Modify related BSP.
- Add doxygen comments for arm-pl011.

Close #5026

Co-authored-by: Ning Yang <yangn0@qq.com>
2024-09-18 19:30:21 +00:00
Sebastian Huber
d304a817db dev/serial: Move zynq_uart_input_clock()
This allows to wrap this function using the linker.
2024-09-17 01:53:58 +00:00
Sebastian Huber
ff9b19ad7c dev/serial: Rework Zynq UART baud calculation
Calculate the best approximation for the desired baud and return the
error.
2024-09-17 01:53:58 +00:00
Sebastian Huber
6efbf0c7b8 dev/serial: Rework Zynq UART Doxygen groups 2024-09-17 01:53:58 +00:00
Kinsey Moore
6dee307542 bsps/stm32h7: Add SPI support
This adds support for the 6 SPI interfaces on the STM32H7 series chips
with an initial example for the stm32h750b discovery kit development
board. Configuration is similar to existing peripherals. Chip select
lines are software-controlled since the SPI peripheral only supports a
single hardware-controlled chip select line. This implementation does
not use interrupts.
2024-09-06 01:15:21 +00:00
Christian Mauderer
3b053f6919 bsps/shared: Add Abracom EOZ9 RTC driver
The EOZ9 RTC has a similar register interface like the MCP7940M (and
quite some other I2C RTCs). This commit:

* Extracts the generic parts from MCP7940M and moves it into a generic
  i2c-rtc driver.
* Uses the new i2c-rtc for the MCP7940M.
* Uses the new i2c-rtc for the new Abracom EOZ9.
2024-08-27 21:54:43 +00:00
Sebastian Huber
002c6067ba bsps: Add fatal source/code to bsp_reset()
Mark bsp_reset() as no-return.  Use default BSP fatal handler in lm32 and m68k
BSPs.  Remove empty bsp_reset() implementation.

Update #5067.
2024-08-23 14:54:37 +00:00
Matheus Pecoraro
c4bae407fc ACPICA: Add acrtems.h include in acenv.h
Add an include to acrtems.h in acenv.h so BSPs may provide their own
ACPICA defines and configurations
2024-08-06 21:28:15 +00:00
Matheus Pecoraro
5d6094c42c ACPICA: Initial ACPICA code import
ACPICA commit a8b050df914875839b717a51e1b32d6c6b86ae96
2024-08-06 21:28:15 +00:00
Amar Takhar
52a9fdec5c Convert various files to README.md MarkDown 2024-08-02 21:13:35 +00:00
Kinsey Moore
b48166b9b6 bsps/aarch64/zynqmp: Add memory error reporting
This adds error reporting for ZynqMP including L1 and L2 cache, on-chip
memory (OCM) error correcting code (ECC), and DDR ECC. OCM ECC supports
fault injection from within RTEMS. DDR ECC technically supports fault
injection as well, but requires that the program injecting faults
operate exclusively outside of DDR. The AArch64 port is not currently
capable of operating exclusively in OCM due to size constraints and
would need to be booted via JTAG or via a non-relocating u-boot to
accomplish this.
2024-06-21 05:57:21 +00:00
Ning Yang
2d5a85f7d2 dev/pl011: Fix incorrect macro definition
Close #5036
2024-06-13 19:54:19 +00:00
Sebastian Huber
1421b9f7c0 bsps/aarch64: Use BSP fatal error 2024-06-10 18:01:08 +00:00
Aaron Nyholm
e950c4d76a bsps: Add flash wrapper for Xilinx GQSPI
Closes #4870
2024-06-10 17:58:00 +00:00
Christian Mauderer
0e7567bc2a bsps: Add a GPIO based SPI driver
The driver uses simple pin set or get functions to emulate an SPI. It
doesn't care much for speed settings and just tries it's best.
2024-06-07 06:46:00 +00:00
Sebastian Huber
cb43ee6969 bsp/tms570: Add TMS570_FATAL_RTI_IRQ_INSTALL
Update #4982.
2024-06-04 15:50:57 +00:00
Sebastian Huber
ab8817ca03 rtems: Add get/set interrupt priorities
Add directives to get and set the priority of an interrupt vector.

Implement the directives for the following BSP families:

* arm/lpc24xx
* arm/lpc32xx
* powerpc/mpc55xxevb
* powerpc/qoriq

Implement the directives for the following interrupt controllers:

* GICv2 and GICv3 (arm and aarch64)
* NVIC (arm)
* PLIC (riscv)

Update #5002.
2024-05-10 13:26:22 +00:00
Sebastian Huber
bc7e6ae550 dev/irq: Improve Doxgyen group assignments
Make the GIC interrupt controller support a subgroup of the generic interrupt
controller support.
2024-04-30 01:39:06 -04:00
Sebastian Huber
5a8e99546f bsps/xil-ttc: Add XIL_FATAL_TTC_IRQ_INSTALL 2024-04-30 01:39:05 -04:00
Bernd Moessner
b4c65f78a0 Fix: type-cast to wrong type 2024-04-30 01:39:05 -04:00
Sebastian Huber
8ad3f92b9a dev/serial: Add ZYNQ_UART_[01]_BASE_ADDR
This helps to provide a shared implementation of the kernel I/O support.
2024-04-04 12:53:51 +02:00
Sebastian Huber
4c2da2c343 dev/serial: Simplify some Zynq UART functions
Make the initialization and polled functions independent of the Termios
context.  This helps to implement the kernel I/O support without a dependency
on the Termios framework.
2024-03-27 20:22:53 +01:00
Sebastian Huber
5b0e355ed7 bsps: Move declarations to <bsp/irq-generic.h>
Move declarations of bsp_interrupt_get_affinity() and
bsp_interrupt_set_affinity() to <bsp/irq-generic.h>.  Canonicalize the
<bsp/irq.h> includes.

Implement bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() only if
needed (usually RTEMS_SMP).

Provide stub implementations for i386 to fix build errors.
2024-03-27 20:20:38 +01:00