Commit Graph

27 Commits

Author SHA1 Message Date
Sam Price
90c4d36cb3 microblaze: fix warnings about clock.
Closes #5141
2024-10-31 22:53:37 +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
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
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
Sam Price
20939b213a microblaze: Move interrupt context save to BSP
The interrupt context save is now done in the BSP. This avoids an issue
where a register is modified by the interrupt handler before it is
saved. Specifically, the MSR register was modified by the `addi`
instruction in the interrupt handler before the MSR was saved. This
caused the MSR to be saved with the wrong value.

Closes #4962
2024-06-11 19:24:39 +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
1eed6f8bfc bsps: Avoid unused argument in clock interrupt
Pass the parameter of the clock interrupt handler to
Clock_driver_support_at_tick() and Clock_driver_timecounter_tick().  This makes
it possible to use the interrupt handler argument in clock drivers.

Use the interrupt handler provided by Clock_driver_support_install_isr() to
avoid local delarations of Clock_isr().

Update #4862.
2024-03-20 16:34:09 +01:00
Alex White
9b7a1da804 bsps/microblaze: Add device tree support to GPIO 2023-05-19 12:32:18 -05:00
Alex White
59f9ed28d8 bsps/microblaze: Remove GPIO build system options
The number of GPIO devices along with each of their particular
configurations is application-specific. Encoding this information as
build options also introduced a lot of clutter.
2023-05-19 12:32:18 -05:00
Maldonado, Sergio E. (GSFC-580.0)
fe6a5d0f7a bsps/microblaze: Fix UART transmit interrupt 2023-04-19 09:55:43 -05:00
Maldonado, Sergio E. (GSFC-580.0)
c627a13239 bsps/microblaze: Add support for multiple UARTs 2023-04-19 09:55:43 -05:00
Maldonado, Sergio E. (GSFC-580.0)
1fbfc4eeac bsps/microblaze: Allow copying FDT from U-Boot 2023-04-19 09:55:43 -05:00
Alex White
725e5ce27f bsps/microblaze: Add AXI GPIO driver 2023-03-14 09:29:16 -05:00
Ryan Long
9d5354e897 bsps/microblaze: Add device tree support to UART Lite 2023-02-06 14:29:24 -06:00
Ryan Long
3fd8cf2d37 bsps/microblaze: Add device tree support to JFFS2 QSPI 2023-02-06 14:29:24 -06:00
Ryan Long
cbac78afa9 bsps/microblaze: Add device tree support to AXI interrupt controller 2023-02-06 14:29:24 -06:00
Alex White
eb94aaff1d bsps/microblaze: Add device tree support to timer 2023-02-06 14:29:24 -06:00
Alex White
63b21ad5e0 bsps/microblaze: Add device tree getter
This allows drivers to read configuration data from the device tree if
the BSP is built with device tree support.
2023-02-06 14:29:24 -06:00
Alex White
c3e14019c8 bsps/microblaze: Fix console interrupt build errors
This fixes build errors seen when building with console interrupts
enabled. A few places were missing bspopts.h includes, and one of the
UART functions was not defined.
2022-11-29 16:59:26 -06:00
Alex White
14381c432a microblaze: Add JFFS2 AXI QSPI driver
This driver has been tested with Micron NOR Flash via AXI Quad SPI.
2022-03-15 10:46:19 -05:00
Kinsey Moore
dbdf38ea7b microblaze: Decouple exceptions from interrupts
Exception handling should be enabled at all times during execution to
ensure that exceptions are not ignored which would cause further
problems. This separates use of the exception enable bit from use of the
interrupt enable bit in the machine status register so that they can be
manipulated independently.
2022-02-23 08:35:45 -06:00
Kinsey Moore
c6d8d1cb2b cpukit/microblaze: Clarify interrupt frame usage
Avoid use of magic numbers in favor of named constants and add MSR to
the interrupt frame so that thread dispatch can occur on exceptions as
well.
2022-02-04 11:30:59 -06:00
Kinsey Moore
530a8c2494 cpukit/microblaze: Add debug vector and handler
This patch adds a vector for debug events along with a hook similar to
the exception framework. The debug vector generates an exception frame
for use by libdebugger.
2022-02-04 11:30:59 -06:00
Kinsey Moore
127980c799 cpukit/microblaze: Add exception framework
This patch updates the CPU_Exception_frame to include all necessary
registers, combines hardware snd software exception handlers into a
shared vector, provides an architecture-specific hook for taking
control of exception handling, and moves exception handling over to
actually using the CPU_Exception_frame instead of a minimal interrupt
stack frame. As the significant contents of _exception_handler.S have
been entirely rewritten, the copyright information on this file has been
updated to reflect that.
2022-02-04 11:30:59 -06:00
Alex White
37543e1968 microblaze: Add support for libbsd networking
This includes fixes and improvements necessary to get libbsd networking
running.
2022-02-01 16:58:24 -06:00
Jennifer Averett
50a6580da0 microblaze: Add support for libbsd. 2022-02-01 16:58:24 -06:00
Alex White
d03776e804 microblaze: Rework for RTEMS 6
This reworks the existing MicroBlaze architecture port and BSP to
achieve basic functionality using the latest RTEMS APIs.
2021-10-13 14:45:37 -05:00