Commit Graph

167 Commits

Author SHA1 Message Date
Sebastian Huber
363fafb780 bsps/arm: Use interrupt entry for <tm27.h>
Avoid a dynamic memory allocation for the <tm27.h> interrupts.  Replace
assert() with _Assert().
2023-05-26 06:56:11 +02:00
Sebastian Huber
f69326d0c2 bsps: Improve Doxygen file comments 2023-05-26 06:56:11 +02:00
Sebastian Huber
bcef89f236 Update company name
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
2023-05-20 11:05:26 +02:00
Kinsey Moore
7163014e3f bsps/xqspipsu: Add support for reading ECC
This adds a helper function to read the ECC status for an ECC unit in
SPI-attached NOR memory.
2023-03-22 13:30:08 -05:00
Kinsey Moore
10ff982834 bsps/xnandpsu: Allow use of both chip selects
By default, the Xilinx NAND driver does not probe the second chip
select. This alteration allows the second half of chips to be
detected when present.
2023-03-15 13:29:12 -05:00
Sebastian Huber
519e288a96 bsps/irq: Clarify interrupt vector operations
Clarify that the presence of error conditions is
implementation-defined.

Close #4843.
2023-02-10 16:14:11 +01:00
Kinsey Moore
c0fad60c59 bsps/xil: Import full xil_exception.h
This imports the full xil_exception.h instead of an empty stub. This is
required for some Xilinx drivers. The imported files adhere to the
current VERSION file.
2023-02-08 14:11:47 -06:00
Kinsey Moore
d9f3dcba10 bsps/xil: Make sleep.h a stub
This makes xil/sleep.h a stub to prevent multiple differing definitions
of sleep functions from toolchain and local headers. The non-standard
sleep definitions were not in use and can be added later if needed.
2023-02-08 14:11:47 -06:00
Kinsey Moore
ada805ea2e bsps/nand: Update Xilinx NAND driver
This resovles gcc warnings by updating to the latest Xilinx NAND
controller driver.
2023-01-30 10:44:24 -06:00
Joel Sherrill
29a3ad1ba9 grlib: Fix snprintf() overflow warnings from gcc 12
Updates #4662.
2023-01-30 10:44:20 -06:00
Alex White
d55c131965 bsps: Add Xilinx GQSPI flash helper
This adds helper functions for working with NOR flash connected to the
Xilinx GQSPI controller. The helper functions are based on Xilinx's
QSPIPSU flash interrupt example.
2023-01-27 14:49:28 -06:00
Alex White
fd2f9d40b5 bsps: Import Xilinx GQSPI driver
This adds Xilinx's driver for the Xilinx GQSPI controller embedded in
the ZynqMP SoC. Within that device alone, it is possible to access this
peripheral from MicroBlaze, ARMv7, and ARMv8 cores. The imported files
are and should be able to remain unmodified. Import information is kept
in bsps/shared/dev/spi/VERSION.
2023-01-27 14:49:27 -06:00
Sebastian Huber
d36070fec8 intr: Add Interrupt Manager implementation group
The shared BSP interrupt controller support code actually implements
parts of the Interrupt Manager.

Update #3706.
2023-01-24 09:56:53 +01:00
Sebastian Huber
10ee41a8a3 tm27: Avoid function pointer casts
Add TM27_USE_VECTOR_HANDLER to select the interrupt handler type used by
the <tm27.h> implementation.

Close #4820.
2023-01-24 09:56:53 +01:00
Kinsey Moore
b76f382bd4 bsps/xil: Use the LP64 header for ILP32
Xilinx's upstream ILP32 xil_cache.h header is out of date and broken.
This provides a copy of the LP64 header in place of the ILP32 header
since the LP64 header includes all the correct types to work with either
data model.
2023-01-04 13:11:29 -06:00
Kinsey Moore
30ca711d19 bsps: Import Xilinx NAND driver
This adds Xilinx's driver for the Xilinx NAND controller embedded in the
ZynqMP SoC. Within that device alone, it is possible to access this
peripheral from MicroBlaze, ARMv7, and ARMv8 cores. This has been added
to the hardware ZynqMP BSPs since QEMU does not support emulation of
this peripheral. This driver supports polled operation only. The
imported files are and should be able to remain unmodified. Import
information is kept in bsps/shared/dev/nand/VERSION.
2022-12-23 13:06:42 -06:00
Kinsey Moore
50539ba881 bsps: Import Xilinx support code
This support code is necessary for many Xilinx-provided bare metal device
drivers supported on ARM, AArch64, and MicroBlaze platforms. Support for
all of these architectures is kept under bsps/include due to multiple
architecture variants being supported which requires complex logic in
the build system. The imported files are and should be able to remain
unmodified. Import information is kept in bsps/shared/xil/VERSION.
2022-12-23 13:06:42 -06:00
Sebastian Huber
0d5e41afde bsps/irq: Add bsp_interrupt_get_dispatch_table_slot()
Update #4769.
2022-12-02 10:25:44 +01:00
Sebastian Huber
71d1acd41d bsps/irq: Rename handler in dispatch table
The name handler table was a bit misleading after the last rework.
Rename it to distach table.  Update the documentation accordingly.

Update #4769.
2022-12-02 10:25:39 +01:00
Daniel Cederman
33f6e34b2d bsps/include/grlib: Change license to BSD-2 for files with Gaisler copyright
This patch changes the license to BSD-2 for all source files where the
copyright is held by Aeroflex Gaisler, Cobham Gaisler, or Gaisler Research.
Some files also includes copyright right statements from OAR and/or
embedded Brains in addition to Gaisler.

Updates #3053.
2022-11-14 10:58:31 +01:00
Daniel Cederman
fa427fa1d9 bsps/include/libchip: Remove legacy networking header file 2022-11-14 07:44:35 +01:00
Sebastian Huber
77c8d822c3 bsps/riscv: Fix software interrupt dispatching
In SMP configurations, there may be no software interrupt handler
installed when the software interrupt is processed.  Add the new
interrupt handler dispatch variant
bsp_interrupt_handler_dispatch_unlikely() for this special case.
2022-11-11 16:38:25 +01:00
Sebastian Huber
47d156d706 bsps/riscv: bsp_interrupt_get/set_affinity()
Provide bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() only if
RTEMS_SMP is enabled.  Replace fatal error with a status code.
2022-11-10 08:55:38 +01:00
Sebastian Huber
a660e9dc47 Do not use RTEMS_INLINE_ROUTINE
Directly use "static inline" which is available in C99 and later.  This brings
the RTEMS implementation closer to standard C.

Close #3935.
2022-09-19 09:09:22 +02:00
Martin Aberg
9ec9be834d bsp/riscv: Add NOEL-V BSP
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.
2022-09-06 16:15:58 +02:00
Chris Johns
51ffa21011 aarch64/versal: Support DDRMC0 region 0 and 1
- Support DDRMC0 region 0 up to 2G in size

- Support DDRMC0 region 1 with DDR memory greater than 2G
  up to the DDRMC0 max amount

- Extend the heap with region 1's memory

Closes #4684
2022-07-28 09:04:46 +10:00
Kinsey Moore
10ef7087f6 aarch64: Use page table level 0
This alters the AArch64 page table generation and mapping code and MMU
configuration to use page table level 0 in addition to levels 1, 2, and
3. This allows the mapping of up to 48 bits of memory space and is the
maximum that can be mapped without relying on additional processor
extensions. Mappings are restricted based on the number of physical
address bits that the CPU supports.
2022-07-21 12:26:35 -05:00
Sebastian Huber
5cc075712e irq/arm-gicv3.h: Customize CPU Interface init
Use the existing WRITE_SR() abstraction to access the interrupt group 0 and 1
enable registers.  This fixes the build for the AArch32 target.

Add BSP options which define the initial values of CPU Interface registers.
2022-07-12 08:26:46 +02:00
Joel Sherrill
5e8ec63561 bsps/include: Change license to BSD-2
Updates #3053.
2022-07-11 17:14:47 -05:00
Chris Johns
e70384d3f4 aarch64/gicv3: Remove accesses to secure registers
RTEMS runs at EL1 and the removed register accesses are for
EL3 or the TF-A. This change aligns our driver with the Linux
and FreeBSD ones.
2022-06-16 10:21:46 +10:00
Sebastian Huber
6476cdc67c bsps: Relicense <bsp/fatal.h>
Add Doxygen documentation.  Change license to BSD-2-Clause according
to file history.

Update #3053.
2022-05-18 11:34:45 +02:00
Sebastian Huber
be580201dd bsps: Relicense <bsp/default-initial-extension.h>
Replace Doxygen documentation.  Change license to BSD-2-Clause according
to file history.

Update #3053.
2022-05-18 11:34:38 +02:00
Sebastian Huber
0725b200e7 bsps: Add gicv3_get_attributes() 2022-04-06 09:48:52 +02:00
Sebastian Huber
d8b23fa488 bsps: Add gicv3_sgi_ppi_get_priority() 2022-04-06 09:48:52 +02:00
Sebastian Huber
f828ddd1a9 bsps: Add gicv3_sgi_ppi_set_priority() 2022-04-06 09:48:52 +02:00
Sebastian Huber
3026859d41 bsps: Move gicv3_init_cpu_interface()
Make the processor index a parameter.
2022-04-06 09:48:52 +02:00
Sebastian Huber
b3519336fd bsps: Move gicv3_init_dist()
Make the distributor register block a parameter.
2022-04-06 09:48:52 +02:00
Sebastian Huber
ea353b4bfa bsps: Add gicv3_sgi_ppi_disable() 2022-04-06 09:48:52 +02:00
Sebastian Huber
f74b120c24 bsps: Add gicv3_sgi_ppi_enable() 2022-04-06 09:48:52 +02:00
Sebastian Huber
42c806fc84 bsps: Add gicv3_sgi_ppi_is_enabled() 2022-04-06 09:48:52 +02:00
Sebastian Huber
be25de5ff8 bsps: Add gicv3_ppi_clear_pending() 2022-04-06 09:48:52 +02:00
Sebastian Huber
2e5b1312c8 bsps: Add gicv3_ppi_set_pending() 2022-04-06 09:48:52 +02:00
Sebastian Huber
518330069d bsps: Add gicv3_trigger_sgi() 2022-04-06 09:48:52 +02:00
Sebastian Huber
f10c551f54 bsps: Add gicv3_sgi_ppi_is_pending() 2022-04-06 09:48:52 +02:00
Sebastian Huber
9abcaaebc3 bsps: Add <dev/irq/arm-gicv3.h>
Separate the Interrupt Manager implementation from the generic Arm GICv3
support.  Move parts of the Arm GICv3 support into a new header file.  This
helps to support systems with a clustered structure in which multiple GICv3
instances are present.  For example, two clusters of two Cortex-R52 cores where
each cluster has a dedicated GICv3 instance.
2022-04-06 09:48:51 +02:00
Christian Mauderer
817ee56327 bsps/.../disp_hcms29xx.h: Fix comment block
Update #4625
2022-03-10 14:43:10 +01:00
Joel Sherrill
fe6d96cc85 bsps/include/: Scripted embedded brains header file clean up
Updates #4625.
2022-03-10 08:43:50 +01:00
Joel Sherrill
3a17ee8e45 bsps/include/libchip/spi-memdrv.h: Manual file header clean up
Updates #4625.
2022-03-10 08:43:50 +01:00
Joel Sherrill
e77f7260d7 bsps/include/libchip/spi-fram-fm25l256.h: Manual file header clean up
Updates #4625.
2022-03-10 08:43:50 +01:00
Joel Sherrill
100873796b bsps/include/libchip/disp_hcms29xx.h: Manual file header clean up
Updates #4625.
2022-03-10 08:43:50 +01:00