Commit Graph

361 Commits

Author SHA1 Message Date
Sebastian Huber
63d9e840b7 bsps/irq: Add bsp_interrupt_check_and_lock()
Return RTEMS_INCORRECT_STATE instead of RTEMS_INTERNAL_ERROR in case the
interrupt support is not initialized.  This is similar to
rtems_timer_server_fire_after() for example.

Update #3269.
2021-07-26 19:57:31 +02:00
Sebastian Huber
73fcbf4cff bsps/irq: Use rtems_interrupt_entry
Update #3269.
2021-07-26 19:57:31 +02:00
Sebastian Huber
fe6ce5ac9c bsps/irq: Implement new directives for GICv2/3
Update #3269.
2021-07-26 19:57:31 +02:00
Sebastian Huber
85a378510d bsps/irq: bsp_interrupt_set_affinity()
Return a status code for bsp_interrupt_set_affinity().

Update #3269.
2021-07-26 19:57:31 +02:00
Sebastian Huber
23ec04c48c bsps/irq: bsp_interrupt_get_affinity()
Return a status code for bsp_interrupt_get_affinity().

Update #3269.
2021-07-26 19:57:31 +02:00
Sebastian Huber
32f5a195d7 bsps/irq: bsp_interrupt_vector_disable()
Return a status code for bsp_interrupt_vector_disable().

Update #3269.
2021-07-26 19:57:31 +02:00
Sebastian Huber
bc86a5fa84 bsps/irq: bsp_interrupt_vector_enable()
Return a status code for bsp_interrupt_vector_enable().

Update #3269.
2021-07-26 19:57:30 +02:00
Sebastian Huber
deb5afb2f2 bsps/irq: Add rtems_interrupt_is_pending()
Add a default implementation which just returns RTEMS_UNSATISFIED.

Update #3269.
2021-07-26 17:08:42 +02:00
Sebastian Huber
eebecd09fa bsps/irq: Add rtems_interrupt_get_attributes()
Add a default implementation which clears the attributes to zero and
just returns RTEMS_SUCCESSFUL for valid parameters.

Update #3269.
2021-07-26 17:08:42 +02:00
Sebastian Huber
9832652c53 bsps/irq: Add rtems_interrupt_raise()
Add rtems_interrupt_raise_on() and rtems_interrupt_clear().

Add a default implementation which just returns RTEMS_UNSATISFIED for
valid parameters.

Update #3269.
2021-07-26 07:54:25 +02:00
Sebastian Huber
781213f9ec bsps/irq: Add rtems_interrupt_vector_is_enabled()
Add a default implementation which just returns RTEMS_UNSATISFIED for
valid parameters.

Update #3269.
2021-07-26 07:54:25 +02:00
Sebastian Huber
4969af4102 rtems: Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT
Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT as the fatal source for
spurious interrupts.  Use the interrupt vector number of the spurious
interrupt for the fatal code.

Update #3269.
2021-07-26 07:54:25 +02:00
Sebastian Huber
96265c87a3 rtems: Add rtems_interrupt_vector_enable()
Add rtems_interrupt_vector_disable().

Update #3269.
2021-07-26 07:54:25 +02:00
Sebastian Huber
04c2c0804b bsps/irq: Move handler iterate to separate file
Update #3269.
2021-07-26 07:54:25 +02:00
Sebastian Huber
1b3b5b8428 bsps/irq: Canonicalize get/set affinity errors
Bring the error conditions and status in line with
rtems_task_get_affinity() and rtems_task_set_affinity().

Update #3269.
2021-07-26 07:54:25 +02:00
Sebastian Huber
efb3fc284a bsps/irq: Move get/set affinity to separate file
Update #3269.
2021-07-26 07:54:25 +02:00
Sebastian Huber
78b8360163 bsps: Fix bsp_fatal_extension()
The heap protection is conditional.
2021-07-23 16:01:30 +02:00
Chris Johns
350f501a39 bsp: Remove fatal from exit(0). Add extended heap error output 2021-07-23 08:56:14 +10:00
Sebastian Huber
f2b0877642 bsps: Fix GICv3 support for AArch32
The GICv3 support is shared between AArch32 and AArch64.  For AArch32,
the new AARCH64_IS_NONSECURE is never defined.  Use ARM_MULTILIB_ARCH_V4
instead.

This issue was introduced by 76c6caad52.

There is still a change in bsp_interrupt_vector_enable() for AArch32
compared to the version before 76c6caad52.
2021-06-30 16:28:52 +02:00
Kinsey Moore
26d61c8670 bsps/zynq-uart: Make post baud change kick global
The existing fix for the ZynqMP UART hardware bug only caught the vast
majority of instances where it could occur. To fully fix the data
corruption, this fix must be applied after every baud rate change. This
makes the logic reset and kick apply in any locations where the baud
rate could be changed.
2021-06-29 11:42:06 -05:00
Gedare Bloom
76c6caad52 bsps/aarch64: add non-secure mode and versal support 2021-06-24 09:37:31 -06:00
Gedare Bloom
bcad0aaee6 bsps/aarch64: add mnemonic for ICC_IGRPEN1_EL3 2021-06-24 09:37:31 -06:00
Sebastian Huber
3fee662093 bsps/irq: Use BSP_INTERRUPT_VECTOR_COUNT
Use BSP_INTERRUPT_VECTOR_COUNT instead of BSP_INTERRUPT_VECTOR_MAX.

Update #3269.
2021-06-24 11:36:25 +02:00
Sebastian Huber
049e2b64e1 bsps/irq: Remove BSP_INTERRUPT_VECTOR_NUMBER
Replace it with BSP_INTERRUPT_VECTOR_COUNT.

Update #3269.
2021-06-24 11:35:49 +02:00
Sebastian Huber
af73b7b64b bsps/irq: Remove BSP_INTERRUPT_VECTOR_MIN
Remove BSP_INTERRUPT_VECTOR_MIN and unconditionally let interrupt vector
numbers start with zero.

The BSP_INTERRUPT_VECTOR_MIN == 0 invariant was tested by the previous commit
and building all BSPs.

Update #3269.
2021-06-24 11:35:49 +02:00
Sebastian Huber
61d0be7214 bsps/irq: Remove BSP_INTERRUPT_NO_HEAP_USAGE
Remove the support for BSP_INTERRUPT_NO_HEAP_USAGE.  This was only used
by one BSP and provides no real benefit.

Update #3269.
2021-06-24 08:27:21 +02:00
Sebastian Huber
499a89b11d grlib: Register system console as /dev/console
Close #4461.
2021-06-24 08:27:21 +02:00
Vijay Kumar Banerjee
8416e7c322 bsps/powerpc, bsps/shared: Move remaining legacy networking header files 2021-06-23 13:20:38 -06:00
Sebastian Huber
3ee19b7ac3 bsps/irq: Change license to BSD-2-Clause
Change license to BSD-2-Clause according to file history and
re-licensing agreement.

Update #3053.
2021-06-17 17:24:32 +02:00
Sebastian Huber
11cf6ae3e2 grlib: Simplify apbuart_inbyte_nonblocking() 2021-06-17 12:58:33 +02:00
Sebastian Huber
3af1e5e735 grlib: Fix apbuart_outbyte_polled() prototype
Callers usually want to output a character.
2021-06-17 12:58:33 +02:00
Sebastian Huber
af69a8693b grlib: Add apbuart_outbyte_wait() 2021-06-17 12:58:33 +02:00
Sebastian Huber
85febe7b10 grlib: Remove NL -> CR in apbuart_outbyte_polled()
This is already done in rtems_putc().
2021-06-17 12:58:33 +02:00
Sebastian Huber
2c07f24af2 grlib: Add ambapp_plb()
Replace the global variable ambapp_plb with a function to allow an automatic on
demand initialization.
2021-06-17 12:58:33 +02:00
Sebastian Huber
c4c8d3fd50 grlib: Customizable allocation in ambapp_scan()
Make the memory allocations in ambapp_scan() customizable via the new struct
ambapp_context parameter which generalizes the memory copy handler.
2021-06-17 12:58:33 +02:00
Sebastian Huber
523867de9d rtems: Constify rtems_task_wake_when()
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.
2021-05-12 21:25:37 +02:00
Frank Kühndel
3af2dc7802 _TOD_Validate(): Fix incorrect return code
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
2021-05-12 06:41:10 +02:00
G S Niteesh Babu
b391affc36 bsps/shared/ofw: Fix coverity defects
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.
2021-05-06 16:44:38 -06:00
Vijay Kumar Banerjee
e29d5cd01d Makefile.am: Remove legacy networking files 2021-04-26 07:59:08 -06:00
Kinsey Moore
3ea43bc9e7 bsps/xilinx-zynqmp: Avoid constant UART reinit
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.
2021-04-19 10:51:02 -05:00
Moyano, Gabriel
5728e8e356 grlib/genirq: Taking into account that it could be more than one ISR enabled/disabled 2021-04-16 08:46:17 +02:00
Ryan Long
3cd58bdf2c disp_hcms29xx.c: Unused value (CID #1399752)
CID 1399752: Unused value in disp_hcms29xx_update_task().

Closes #4342
2021-04-08 17:58:19 -05:00
Vijay Kumar Banerjee
c90fa83041 bsps: Remove networking drivers
Update #3850
2021-04-07 16:15:38 -06:00
Jan Sommer
70667b5527 bsps/xilinx_zynq: Add SPI driver for xilinx-axi-spi
Updates #4321
2021-03-30 17:01:36 +02:00
G S Niteesh Babu
56074644a7 bsp/beagle: Ported Beagle pinmux driver to RTEMS
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
2021-03-21 12:30:48 +01:00
G S Niteesh Babu
5c656ead88 bsp/beagle: Import Beagle pinmux from FreeBSD
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
2021-03-21 12:30:48 +01:00
G S Niteesh Babu
fc7129067d bsps/shared/ofw: Add rtems_ofw_is_node_compatible
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.
2021-03-21 12:30:47 +01:00
Martin Aberg
4e0735c650 leon, l2cache: prevent unused diagnostic access 2021-03-11 17:35:28 +01:00
Martin Aberg
51564f6383 leon, ahbstat: register definitions for AHBSTAT version 1 2021-03-11 17:35:27 +01:00
Martin Aberg
8660602ae2 leon, grspw_router: added router_port_link_div()
Allows user to set SpaceWire run clock divisor for an individual port.
2021-03-11 17:35:27 +01:00