| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Updates #4625.
|
| |
|
| |
|
|
|
|
|
| |
The <leon.h> include was removed from <bsp.h> in commit
1577a48369fae5e024baa2119b26d25de0f43946.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is required for ISA 2.0 support, see chapter
"Zicsr", Control and Status Register (CSR) Instructions, Version 2.0
in
RISC-V Instruction Set Manual, Volume I: RISC-V User-Level ISA
|
| |
|
|
|
|
| |
The struct _reent::__sdidinit member was renamed in a recent Newlib.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
A device tree binary has to be 8 byte aligned in memory. This is checked
since RTEMS commit 34052ef78cf8724dee73e9279b2c6bff8cfed234 "libfdt: Add
FDT alignment check to fdt_check_header()".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Put the next character into the send buffer if the buffer is empty and
not when the last character has been sent out to the line. This improves
the performance slightly.
Before that patch, the receive path was faster than the transmit path.
Therefore a simple echo could drop characters on a busy connection.
With this patch sending and receiving has about the same performance so
that no characters are lost.
Fixes #4610
|
|
|
|
|
|
|
|
|
|
| |
The driver didn't return with an error on (for example) a NACK on the
bus. This adds the expected error return. Due to the new case that a
transfer can be interrupted on an error, there were some new edge cases.
This patch therefore also fixes these edge cases by removing the
transfer_state that more or less duplicated the interrupt states.
Fixes #4592
|
|
|
|
|
|
|
|
|
|
| |
Do some clean ups. Remove superfluous variables. Eliminate some overly
complex logic (information about transfer and remaining bytes has been
tracked redundantly in multiple variables).
This patch doesn't change the behavior of the driver.
Update #4592
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This includes fixes and improvements necessary to get libbsd networking
running.
|
| |
|
|
|
|
|
| |
The memcpy() function may be not loaded at the time bsp_fdt_copy() is
called.
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the system is busy with other interrupts and the UART is set to a
fast baud rate, it's possible to loose UART interrupts and therefore
characters. This allows to optionally enable a DMA for the UARTs so that
a number of lost interrupts can be tolerated.
The number of DMAs on this chip is limited and not not all applications
need that feature. Therefore the DMA is disabled by default.
Close #4578
|
|
|
|
|
|
|
|
|
|
| |
If no extended features of the USART are used and if the comparison
feature of the UART is not used, the two modules are compatible. The
drivers were nearly identical except for some names of the defines.
This patch merges the two drivers into one.
Update #4578
|
|
|
|
|
|
| |
Most BSPs which used the stubbed benachmark timer provide a CPU counter.
All BSPs provide at least a stub CPU counter. Simply use the benchmark
timer implementation using the CPU counter.
|
|
|
|
|
|
|
|
|
|
|
| |
Always start the executive in Exception Level 1, Non-Secure mode.
If we boot in EL3 Secure with GICv3 then we have to initialize
the distributor and redistributor to set up G1NS interrupts
early in the boot sequence before stepping down from EL3S to EL1NS.
Now there is no need to distinguish between secure and non-secure
world execution after the primary core boots, so get rid of the
AARCH64_IS_NONSECURE configuration option.
|
| |
|
| |
|
|
|
|
| |
A device tree blob must be aligned on an 8-byte boundary.
|
|
|
|
| |
Update #3269.
|
| |
|
|
|
|
| |
Closes #4302.
|
|
|
|
|
| |
Since the trap table is now statically initialized, there is no need to
invalidate the instruction cache.
|
|
|
|
|
|
|
|
|
|
| |
Using rtems_interrupt_entry_install() instead of
rtems_interrupt_handler_install() avoids a dependency on the dynamic memory
allocation.
Use Interrupt Manager directives instead of a BSP-specific API. Use inline
functions. In SMP configurations, set an affinity to all online processors and
raise the interrupt on the current processor.
|
|
|
|
|
|
| |
Using rtems_interrupt_entry_install() instead of
rtems_interrupt_handler_install() avoids a dependency on the dynamic memory
allocation.
|
|
|
|
|
|
| |
Using rtems_interrupt_entry_install() instead of
rtems_interrupt_handler_install() avoids a dependency on the dynamic memory
allocation.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The AArch64 cache implementation does not define
rtems_cache_disable_data(), but declares that it does via
CPU_CACHE_SUPPORT_PROVIDES_DISABLE_DATA. The existing implementation of
_CPU_cache_disable_data() is sufficient to enable this functionality
without the erroneous cache feature flag.
Closes #4569
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The BSPs provide memory for the separate C Program Heap initialization
via _Memory_Get(). Most BSPs provide exactly one memory area. Only two
BSPs provide more than one memory area (arm/altera-cyclone-v and
bsps/powerpc/mpc55xxevb). Only if more than one memory area is
provided, there is a need to use _Heap_Extend(). Provide two
implementations to initialize the separate C Program Heap and let the
BSP select one of the implementations based on the number of provided
memory areas. This gets rid of a dependency on _Heap_Extend(). It
also avoids dead code sections for most BSPs.
Change licence to BSD-2-Clause according to file history.
Update #3053.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The BSPs provide memory for the workspace initialization via
_Memory_Get(). Most BSPs provide exactly one memory area. Only two
BSPs provide more than one memory area (arm/altera-cyclone-v and
bsps/powerpc/mpc55xxevb). Only if more than one memory area is
provided, there is a need to use _Heap_Extend(). Provide two
implementations to initialize the workspace handler and let the BSP
select one of the implementations based on the number of provided memory
areas. This gets rid of a dependency on _Heap_Extend(). It also avoids
dead code sections for most BSPs.
|
|
|
|
| |
Updates #3937.
|
|
|
|
|
| |
Fixing the debug mask flag broke nested interrupts. This restores that
functionality.
|
|
|
|
|
|
| |
This adds support for libdebugger under AArch64 using software
breakpoints and the single-step execution mode present in all AArch64
CPUs.
|
|
|
|
|
|
| |
Debug events should be masked at least until after the first context
switch and should usually be masked until a debugger is attached for
application debugging.
|
|
|
|
|
|
| |
The existing code is functional but inccorrect and blindly modifies the
other masking bits. It is important to preserve those other bits since
they control masking of important system events.
|
|
|
|
|
|
|
| |
Certain input parameters for MMU mapping operations could cause an
infinite recursion if block end boundaries didn't align to 4k. This
ensures that recursion descent does not exceed 2 levels and instead
rounds up to the nearest 4k block if necessary.
|
|
|
|
|
|
| |
This moves the AArch64 MMU memory type definitions into cpukit for use
by libdebugger since remapping of memory is required to insert software
breakpoints.
|
|
|
|
|
| |
This reworks the existing MicroBlaze architecture port and BSP to
achieve basic functionality using the latest RTEMS APIs.
|
| |
|
|
|
|
| |
This adds SMP support for AArch64 in cpukit and for the ZynqMP BSPs.
|
|
|
|
|
|
|
| |
ARM's GICv2 is configurable and its attributes vary between
implementations including omission of specific interrupts. This allows
BSPs to accomodate those varying implementations with customized
attribute sets.
|
|
|
|
|
| |
GICv2 can support up to 1024 interrupts, but ZynqMP hardware is only
configured for 192 interrupts.
|