Fix parity handling in zynq_uart_set_attributes() by clearing existing
parity bits before setting a new mode instead of always ORing PAR_NONE,
which caused incorrect or ignored parity; also fix inverted PARODD logic
and add ZYNQ_UART_MODE_PAR_MASK to manage the parity field correctly.
Fixes#5554
The rtems_test_spin_for_ticks( x ) executes one partial tick and the
remaining x - 1 as complete ticks. Some tests assumed it executed x
complete ticks. Fix those tests.
Fixes#5575.
Fix incorrect comparison between fdt_getprop() length (bytes)
and address cells count.
The check now uses ac * sizeof(uint32_t) to avoid
reading invalid data.
Also change FDT pointer type from const char * to const void *
to match libfdt API.
No functional changes.
CAN controllers need a running worker task to function. Check if
the task is actually started and return NULL (and free already allocated
resources) if it fails.
Also assert if cleanup functions fail.
Signed-off-by: Michal Lenc <michallenc@seznam.cz>
- leon3 interrupt vector 15 is non-maskable and should
not be reported as disable-capable.
- added leon3_interrupt_is_maskable function, and
used it to set can_disable and maybe_disable in
bsp_interrupt_get_attributes().
- added verification for non-maskable vectors in
bsp_interrupt_vector_disable(), which is rejected
with error RTEMS_UNSATISFIED.
Updates #4830.
shared/vme/README.md had references to set_vector() for installing
isr during vme driver setup. They have been replaced by
rtems_interrupt_handler_install().
Updates #5215
This code was flagged as maybe-uninitialized when compiling at -Og.
The underlying problem was functional code in an assert(). If
compiled with asserts disabled, there would have been no mutex
lock/unlock. Changed the macros to obtain and release the mutex
independent of assert() being enabled or not and switched to using
the RTEMS assert _Assert() which lets this check follow the
RTEMS_DEBUG setting.
The variables start and size were used in the return statement
even if none of the if's set them. Defaulted them to zero which
results in returning NULL on error which was expected anyway.
Creates level-2 mappings for the configured RAM region and for the
MMIO device region. Each of these two regions is configured as a
level-1 table with 2 MiB superpages.
Updates #5540.
The comparison of a register to see if it holds a number less than
3 needs to be unsigned since the register is otherwise expected to
hold an address that could have the most significant bit set.
Fixes#5561
Include contrib/riscv-opcodes/encoding.h from riscv-utility.h and
remove outdated contents from riscv-utility.h
This will allow the include guards to work properly for users (or HAL code)
that also use the encoding.h file, while still allowing us to provide
additional customization or extension of encoding.h macros.
Disable PCI/PCIe and other buses I/O mapped access
because rtems/cpukit build is not allowed to access
BSP specific headers during build.
rtems/bsps/i386/include/i386_io.h
Cannot be used.
This is temporal workaround for
rtems/rtos/rtems#5563
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
Noticed TMS570_CRC_REGH1 was mislabeled as a low registers, and
decided to clean up the other out-of-date comments along the way.
No code changes - documentation only.
Issue: no issues opened for minor documentation change
This commit adds support for a stand alone SJA1000 CAN controller. This
is classical CAN only capable controller, so no FD support here. The
driver's implementation is similar to CTU CAN FD, thus interrupt handler
triggers a semaphore in main worker thread that takes care of handling
interrupts and receiving and sending messages.
The controller utilizes its one TX buffer for sending messages with
abort function available if higher priority message is present in
the software queue.
Signed-off-by: Michal Lenc <michallenc@seznam.cz>
Co-authored-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
- clkirq is used as an interrupt vector number.
- clkirq is now of type rtems_vector_number instead
of int and the now-unneeded cast in irqmp_ts->control
has been removed.
- This aligns the variable type with
the RTEMS interrupt API and avoids signed/width
conversion issues.
Update #4816.
tms570_sci_set_attributes has no protection against 0 baud rate
rtems_termios_baud_to_number documentation shows it can return 0
Can result in divide by zero inside tms570_sci_set_attributes in
at least one or two locations (and then also
tms570_sci_interrupt_last_close).
Also adds defensive final break in switch in parity bit switch.
Removes the unnecessary wait for TX EMPTY in the printk out path.
According to the documentation, TXRDY indicates the output buffer is ready
to receive data.
This change saves a bit of time in printk's but more so just removes an
unnessesary check not required by the hardware.
- Constify bsp_interrupt_entry_find()
- bsp_interrupt_entry_find does not modify
the object referenced by arg, it only compares
pointer values against it.
- changed the parameter type from void* to
const void* in both declaration and
definition to make it correct and safer.
Update #4816