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
Structure Designated initializers must use ".field = value" instead
of obsolete "field : value" syntax.
The format of "field : value" is obsolete. The proper syntax is
".field = value"
In SMP systems, the interrupt handler may run concurrently with tasks
trying to transmit. Properly protect the transmit state through the
device lock. Simplify the transmit process.
Close#5552.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
GCC 16 flagged this while GCC 15 did not. On some targets, the
macros used to ensure the floating point context was fully in
use with task specific values would result in set but unused
warnings. Tweaked the tests and macros as needed to eliminate
the warnings.
GCC 16 flagged this while GCC 15 did not. Because the code was
using the "temp" variable in what appeared to be delay loops,
added the "(void) temp" hint to avoid the warning.
GCC 16 flagged this while GCC 15 did not. Because the code was
using the "temp" variable in what appeared to be delay loops,
added the "(void) temp" hint to avoid the warning.
This commit renames function rtems_ctucanfd_initialize to
rtems_can_ctucanfd_initialize. It standardizes the naming for CAN
controllers to always begin with rtems_can_ (similar to virtual
controller or sja1000 at the moment under review).
This is an API breaking change.
Signed-off-by: Michal Lenc <michallenc@seznam.cz>
GCC 16 flagged this while GCC 15 did not. Because the variable was
used only when ACPI_DEBUG_PRINT() was defined to print, there was
no way to conditionalize the presence of the variable.
Added the "(void) NumCarats" hint to avoid the warning.
GCC 16 flagged this while GCC 15 did not. Because the code was in
an area which was only enabled for debug, the modification disabled
the entire debug code block and added the "(void) gpr" hint.
Fix the this compiler error introduced by commit
d9de3dac5d:
bsps/sparc/leon3/start/amba.c: In function 'amba_initialize':
bsps/sparc/leon3/start/amba.c:221:32: error: passing argument 1 of
'grlib_store_32' makes pointer from integer without a cast
[-Wint-conversion]
221 | grlib_store_32(timer_regs->sreload, leon3_timer_prescaler);
Tested with the following config.ini:
[sparc/gr740]
LEON3_GPTIMER_BASE =
Update #5541.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
Commit 810b2d50c9 introduced a potential
NULL pointer access in the LEON3 timer initialization. Fix the
initialization order.
Update #5541.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
This adds a BSP for the ESP32-C3 with external flash. This BSP can use
the USB serial interface or UART0 as the debug console and supports
interrups along with the SYSTIMER clock source.
The MDT bit is defined by the Smdbltrp extension which is dependent on
the Zicsr extension, so if zicsr is not present then neither is
Smdbltrp. Smdbltrp also introduces mstatush on rv32, so this entire
block must be skipped if Zicsr is not present.
This adds a callback early in the RISC-V startup process that allows a
BSP to copy linker sections in situations where they may not be
automatically mapped.