| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the AArch64 BSPs have a hard time running on real hardware
without building the toolchain and the bsps with -mstrict-align in
multiple places. Configuring the MMU on these chips allows for unaligned
memory accesses for non-device memory which avoids requiring strict
alignment in the toolchain and in the BSPs themselves.
In writing this driver, it was found that the synchronous exception
handling code needed to be rewritten since it relied on clearing SCTLR_EL1 to
avoid thread stack misalignments in RTEMS_DEBUG mode. This is now
avoided by exactly preserving thread mode stack and flags and the new
implementation is compatible with the draft information provided on the
mailing list covering the Exception Management API.
|
|
|
|
|
| |
Ensure that cache functions are flagged as usable by the generic cache
implementation code.
|
|
|
|
|
|
| |
This fixes a bug where addresses were not being aligned correctly.
Addresses used in cache functions are now aligned consistently using
RTEMS_ALIGN_DOWN.
|
|
|
|
|
| |
Break out system register definitions and accessors so that they're
usable by other parts of RTEMS.
|
|
|
|
| |
Closes #4r37.
|
|
|
|
| |
Closes #4438.
|
|
|
|
|
|
|
|
|
|
|
| |
The __builtin_unreachable() cannot be used with current GCC versions to
tell the compiler that a function does not return to the caller, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99151
Add a no return variant of _CPU_Context_switch() to avoid generation of
dead code in _Thread_Start_multitasking() if RTEMS was built with SMP
support enabled.
|
|
|
|
|
|
| |
The EDMA is intialized so make sure the the clock is initialized too.
Update #4180
|
|
|
|
|
|
|
|
|
|
|
|
| |
The sizes are configurable via fuses or per software via some registers.
At the moment the registers are not changed. Changing the registers
destroys data stored in the RAM areas (like application code or data).
So either the fuses or some bootloader should be used to set them before
the application starts.
This also adds an OCRAM only linker command file.
Update #4180
|
|
|
|
|
|
|
|
| |
Add addresses and interrupts for most internal peripherals to the dts.
The additional aliases make it possible for an application to easily
access these informations.
Update #4180
|
|
|
|
|
|
|
| |
Remove symbols that would be necessary for overlays and decrease padding
that would be necessary for adding stuff during run-time.
Update #4180
|
|
|
|
| |
Update #4180
|
|
|
|
| |
Update #4406.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a parameter to _TOD_Validate() to disable the validation of the
ticks member.
There are two reasons for this change. Firstly, in
rtems_task_wake_when() was a double check for time_buffer == NULL (one
in rtems_task_wake_when() and one in _TOD_Validate()). Secondly, the
ticks member is ignored by rtems_task_wake_when(). This was done with a
write of zero to the ticks member and thus a modification of the
user-provided structure. Now the structure is no longer modified.
Using a mask parameter is quite efficient. You just have to load an
immediate value and there are no additional branches in _TOD_Validate().
Close #4406.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes bug #4403. Directives
* rtems_timer_fire_when()
* rtems_timer_server_fire_when()
* rtems_task_wake_when()
are documented to return RTEMS_INVALID_ADDRESS when their time-of-day
argument is NULL. But actually they return RTEMS_INVALID_CLOCK. To fix
the issue this patch changes _TOD_Validate() to return a
status code instead of just true/false.
Close #4403
|
|
|
|
|
|
|
|
|
|
| |
This patch adds asserts to fix coverity defects
1) CID 1474437 (Out-of-bounds access)
2) CID 1474436 (Out-of-bounds access)
From manual inspection, out of bounds access cannot occur due to
bounds checking but coverity fails to detect the checks.
We are adding asserts as a secondary check.
|
|
|
|
| |
Update #3866.
|
|
|
|
|
|
|
| |
Change the ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX value to be in line
with the workspace entry in ARMV7_CP15_START_DEFAULT_SECTIONS.
Close #4395.
|
|
|
|
|
| |
When the PowerPC shared console baud rate starts at anything other than
9600 the termios code will set it to 9600 at the first open.
|
|
|
|
|
|
|
|
|
|
|
| |
The "powerpc/shared/console" code has the start-up console value fixed
at 9600 baud. This changes the hard-wired constant "9600" in the code
to the configuration setting "BSP_CONSOLE_BAUD" and adds configuration
support in both the "waf" and the legacy configuration systems.
Note that the VME BSPs beatnik, mvme3100, and mve5100 can be improved
by adding a "mvmexxxx" BSP family. This configuration change, as well
as future configuration changes, could then be made in a "grp.yml" file.
|
| |
|
|
|
|
| |
Uses configured millisecond per ticks
|
|
|
|
|
|
| |
Refactored the i2c driver to parse register values from the device
tree rather than hardcoding them. But still the clocks have to
initialized manually.
|
|
|
|
|
|
| |
Set the Main Stack Pointer (MSP) to the ISR stack area end just in case
we run using the Process Stack Pointer (PSP). This helps if
applications are started by a boot loader.
|
| |
|
|
|
|
|
| |
This now uses rtems_clock_get_uptime_nanoseconds
to calculate the uptime ticks in milliseconds.
|
|
|
|
|
|
| |
Constantly reinitializing the Cadence UART on every character output
causes data corruption/loss on some ZynqMP hardware. Only initialize
the UART once for early output and give it a kick on startup.
|
|
|
|
| |
enabled/disabled
|
|
|
|
|
|
| |
CID 1399752: Unused value in disp_hcms29xx_update_task().
Closes #4342
|
|
|
|
| |
Update #3850
|
| |
|
| |
|
|
|
|
| |
Update #4372
|
|
|
|
| |
Update #4372
|
|
|
|
| |
Closes #4321
|
|
|
|
| |
Updates #4321
|
|
|
|
| |
- Fixes failure of test smpclock01
|
|
|
|
|
|
|
|
|
|
| |
The following files have been ported
1) ti_pinmux.c
2) ti_pinmux.h
3) am335x_scm_padconf.c
4) am335x_scm_padconf.h
Update #3784
|
|
|
|
|
| |
Detects the SOC type using FDT and also replaces the ti_cpuid.h
header in FreeBSD with custom one.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch imports the beagle pinmux driver from FreeBSD into
RTEMS. Previously this driver was placed in RTEMS-libBSD but
this caused double initialization of few pins once during RTEMS
initialization and second time during libBSD initialization.
The following patches port the driver from FreeBSD to RTEMS and
will remove the driver from RTEMS-libBSD.
RTEMS Ticket Update: #3784
FreeBSD head: ca12b7e9534b10af022fed60c043984dbaf4003d
The following files have been imported from FreeBSD:
1) freebsd/sys/arm/ti/am335x/am335x_scm_padconf.h
2) freebsd/sys/arm/ti/am335x/am335x_scm_padconf.c
3) freebsd/sys/arm/ti/ti_pinmux.h
4) freebsd/sys/arm/ti/ti_pinmux.c
|
|
|
|
|
|
|
|
| |
This patch extends the RTEMS OFW API by adding
rtems_ofw_find_device_by_compat
This function checks if a node has the expected compatible
property.
|
|
|
|
|
| |
Makes it simpler to access the QTMR in an application via a FDT name or
link in an application specific FDT entry.
|
|
|
|
|
| |
Not used by the driver itself, but shuold be correct if used by
application.
|
| |
|
| |
|
|
|
|
| |
Allows user to set SpaceWire run clock divisor for an individual port.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without this smp05 and smpthreadlife01 tests may fail
depending on how the boot loader initialized the GPTIMER.
Before the time counter stopped counting when reaching
zero, but tests could work since it could take 2^32 us
before stopping.
The timer driver will potentially overwrite this, but it
happens later due to the initialization order having
RTEMS_SYSINIT_CPU_COUNTER very early.
|
| |
|
|
|
|
|
|
|
| |
Moves drvmgr_drivers[] from amba.c to a separate file in order
to avoid the dependecy on APBUART/GPTIMER drivers. This has
an effect when user configured not to use timer or uart
in their project.
|
|
|
|
|
|
|
|
|
|
| |
The descriptor table size is equal to its alignment and set when
configuring the HW IP through VHDL generics. This SW patch simply
probes the HW how large the RX/TX descriptor tables are and adjusts
accordingly.
The number of descriptors actual used are controlled by other
settings (rxDescs and txDescs) controlled by the user.
|