Commit Graph

55 Commits

Author SHA1 Message Date
Sebastian Huber
f6c8726cb7 bsps/arm: Move BSP-specific header file 2024-05-10 13:20:45 +00:00
Sebastian Huber
7024401d76 bsps/arm: Add Doxygen group for Armv7-M SysTick
Change license to BSD-2-Clause according to file history and contributor
agreements.
2024-05-07 11:16:49 +02:00
Sebastian Huber
bc7e6ae550 dev/irq: Improve Doxgyen group assignments
Make the GIC interrupt controller support a subgroup of the generic interrupt
controller support.
2024-04-30 01:39:06 -04:00
Sebastian Huber
39584528e9 bsps/arm: Improve GICv2 support
In addtion to 1023, the GICC_IAR register may return 1022 as a special value.
Simply check for a valid interrupt vector for the dispatching.

Check the GICC_IAR again after the dispatch to quickly process a next interrupt
without having to go through the interrupt prologue and epiloge.
2024-04-30 01:39:05 -04:00
Christian Mauderer
a38f9c57f9 bsps/imx*: imx_gpio from pointer to fdt property
Device trees allow mixing different kinds of GPIOs in one property. For
that it is usefull to only provide a pointer to an arbitrary location in
the property and initialize a GPIO from that.
2023-11-28 13:36:41 +01:00
Karel Gardas
49c296b324 bsps/arm: fix nested extern decl. warnings brought by CMSIS files update 2023-07-28 22:15:10 +02:00
Karel Gardas
6b2318acef bsps/arm: replace CMSIS v4 with CMSIS v5 files
CAVEAT: license change from BSD to Apache2 license!

Explanation:
The imported files come from CMSIS v5 project available on:

https://github.com/ARM-software/CMSIS_5/tree/develop

The files imported are located inside the CMSIS/Core/Include
project sub-directory.

The project does not provide any NOTICE file in its root directory nor
in the directory of the imported files.
The NOTICE file and its usage in the Apache 2 license was/is
so far the only issue mentioned in discussion of RTEMS developers/users
when considering inclusion of the code under Apache 2 license
into the RTEMS project.
Since the CMSIS v5 project is free from this legal hinder, we may freely
use it and update files to the latest version.

Technical: the patch replaces code from 2015 with the latest version
which brings quite a lot of bug fixes and most importantly opens
possibilities to support MCUs based on new ARM cores.
2023-07-21 17:30:14 +02:00
Sebastian Huber
ebe4224dce bsps/arm: Improve Doxygen groups 2023-05-26 06:56:11 +02:00
Sebastian Huber
f69326d0c2 bsps: Improve Doxygen file comments 2023-05-26 06:56:11 +02:00
Sebastian Huber
bcef89f236 Update company name
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
2023-05-20 11:05:26 +02:00
Sebastian Huber
3edf9cba67 bsps/arm: Move bsp_start_hook_0_done()
Declare bsp_start_hook_0_done() in <bsp/start.h>.
2022-09-22 07:59:05 +02:00
Joel Sherrill
03cb6e819c bsps/arm/include: Change license to BSD-2
Updates #3053.
2022-07-08 08:42:42 -05:00
Karel Gardas
ed814cd8bc bsps/arm: add CMSIS Cortex-M4 Core Peripheral Access Layer Header File 2022-05-30 01:34:24 +02:00
Joel Sherrill
ba619b7f36 bsps/arm/: Scripted embedded brains header file clean up
Updates #4625.
2022-03-10 08:43:50 +01:00
Sebastian Huber
e10dec0fe7 bsps: Support RTEMS_NOINIT in linkcmds
Update #3866.
2021-05-02 18:41:21 +02:00
Sebastian Huber
263e00b26a bsps/arm: ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX
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.
2021-04-29 13:42:24 +02:00
Sebastian Huber
016bcb3f9d bsps/arm: Rely on initialized vector table
The arm_cp15_set_exception_handler() is a complicated function which
should be avoided if possible.

Update #4202.
2020-12-23 09:24:49 +01:00
Sebastian Huber
9f3a08ef2d bsps: Use header file for GIC architecture support
This avoids a function call overhead in the interrupt dispatching.

Update #4202.
2020-12-23 09:24:49 +01:00
Sebastian Huber
b32fd22732 bsps/arm: Add arm-data-cache-loop-set-way.h
This makes it possible to reuse this loop.

Update #4202.
2020-12-23 09:19:28 +01:00
Sebastian Huber
46a3c0446f bsps/arm: Remove optional start hook arguments
The start hook arguments are not used by a BSP.  Removing them avoids
the need for a stack during the very early system initialization.

Update #4202.
2020-12-23 09:19:28 +01:00
Sebastian Huber
76a1a53780 bsps/arm: Invalidate branch predictors earlier
Make sure the branch predictors are invalidated before the first branch
is executed.

Update #4202.
2020-12-23 09:19:28 +01:00
Sebastian Huber
272534eb72 bsps/arm: Set VBAR in start.S
Set the VBAR to the vector table in the start section before
bsp_start_hook_0() is called to earlier handle exceptions in RTEMS.

Set the VBAR to the normal vector table in start.S for the main
processor.  Secondary processors set it in bsp_start_hook_0().

Update #4202.
2020-12-23 09:19:17 +01:00
Sebastian Huber
0deeb02527 bsps/arm: Fix MMU configuration
Update #4184.
2020-12-15 11:25:44 +01:00
Christian Mauderer
9b3def237a bsps/arm/imx*: Fix location of shared headers
When moving the headers from the imx BSP to the shared area, the wrong
directory has been selected. This patch fixes that problem.

Update #4180
2020-12-14 11:29:36 +01:00
Jan Sommer
1a7afb55a3 bsps/arm: Fix MMU small pages support
- For small tables only round to the next 4kiB instead of 1MiB

Close #4184.
2020-12-11 06:54:14 +01:00
Kinsey Moore
f0859573f9 bsps: Move zynq-uart to bsps/shared
This moves the zynq-uart driver from bsps/arm/shared to bsps/shared to
accomodate use by AArch64 BSPs.
2020-12-02 18:51:40 -06:00
Sebastian Huber
cf1682130c bsps/arm: Add workaround for Errata 794072
Add a workaround for Cortex-A9 Errata 845369: A short loop including a DMB
instruction might cause a denial of service on another which executes a CP15
broadcast operation.

Close #4115.
2020-10-16 06:36:53 +02:00
Sebastian Huber
e7b878e42f bsps/arm: Workaround for Errata 845369
Add a workaround for Cortex-A9 Errata 845369: Under Very Rare Timing
Circumstances Transition into Streaming Mode Might Create Data Corruption.

Update #4115.
2020-10-16 06:36:06 +02:00
Kinsey Moore
f8ad5bb2a4 bsps: Break out AArch32 GICv3 support
This breaks out AArch32-specific code so that the shared GICv3 code can
be reused by other architectures.
2020-10-05 16:11:39 -05:00
Kinsey Moore
1c03649312 Move ARM PL011 UART driver
This UART driver is now needed for BSPs other than ARM.
2020-10-05 16:11:39 -05:00
Sebastian Huber
4b767bd343 bsps/arm: Use RTEMS_SECTION() 2020-09-17 08:36:45 +02:00
Kinsey Moore
ebf0f8f13f bsps/arm/shared: Add GICv3 implementation
This adds support for the GICv3 interrupt controller along with the
redistributor to control SGIs and PPIs which wasn't present in GICv2
implementations. GICv3 implementations only optionally support
memory-mapped GICC interface interaction and require system register
access be implemented, so the GICC interface is accessed only
through system registers.
2020-01-17 16:17:42 -06:00
Christian Mauderer
c51f1fc526 bsps/arm: Define index of the workspace entry.
The imx BSP contained a hack to change the workspace entry of the MMU
table. This makes the used define visible for other BSPs too so that the
same hack can be used for example in raspberry pi too.
2020-01-07 17:55:13 +01:00
Sebastian Huber
f9648baf65 bsps/arm: Add support for small pages MMU
The small page MMU support reduces the granularity for memory settings
through the MMU from 1MiB sections to 4KiB small pages.

Enable it by default on the realview_pbx_a9_qemu BSP.
2019-10-31 09:48:05 +01:00
Christian Mauderer
b89d6cc5e4 bsp/beagle: Partial re-write of I2C driver.
The old driver worked well for EEPROMS with the RTEMS EEPROM driver. But
it had problems with a lot of other situations. Although it's not a
direct port, the new driver is heavily modeled after the FreeBSD ti_i2c
driver.

Closes #3764.
2019-06-29 09:37:24 +02:00
Jeff Kubascik
b0044305a6 bsp/zynq-uart: Move Zynq UART driver to shared directory
This driver will be shared with the xilinx-zynqmp BSP.

Update #3682.
2019-04-11 07:29:06 +02:00
Sebastian Huber
222570a61b bsps/arm: Optimize ARMv7-M CPU counter
Update #3456.
2019-04-09 08:06:46 +02:00
Sebastian Huber
b8a0a49672 bsps/arm: Fix ARMv7-M CPU counter
Read the current counter value again after we know that we had an
underflow.

Update #3456.
2019-04-09 07:31:25 +02:00
Sebastian Huber
15359bb6cb bsps/arm: Adjust CMSIS Doxygen groups
Update #3706.
2019-03-08 07:42:54 +01:00
Sebastian Huber
828276b081 bsps: Adjust shared Doxygen groups
Update #3706.
2019-03-08 07:42:54 +01:00
Sebastian Huber
c991eeeccc bsps: Adjust bsp.h Doxygen groups
Update #3706.
2019-03-08 07:42:54 +01:00
Sebastian Huber
76918e180a bsps/arm: Add BSP_ARM_GIC_ENABLE_FIQ_FOR_GROUP_0
The following variants

 * GICv1 with Security Extensions,
 * GICv2 without Security Extensions, or
 * within Secure processor mode

have the ability to assign group 0 or 1 to individual interrupts.  Group
0 interrupts can be configured to raise an FIQ exception.  This enables
the use of NMIs with respect to RTEMS.

BSPs can enable this feature with the BSP_ARM_GIC_ENABLE_FIQ_FOR_GROUP_0
define.  Use arm_gic_irq_set_group() to change the group of an
interrupt (default group is 1, if BSP_ARM_GIC_ENABLE_FIQ_FOR_GROUP_0 is
defined).
2019-02-28 11:52:30 +01:00
Sebastian Huber
8e8e269b3e bsps/arm: Fix typo 2019-02-28 11:50:52 +01:00
Sebastian Huber
e33be09cfb bsps/arm: Support GIC group 0/1 2019-02-28 11:50:18 +01:00
Sebastian Huber
feea03b625 Remove explicit file names from @file
This makes the @file documentation independent of the actual file name.

Update #3707.
2019-02-28 11:47:33 +01:00
Pierre-Louis Garnier
ecf62845d4 arm/beagle: SPI driver 2019-02-27 07:45:12 +01:00
Sebastian Huber
2cd3716103 bsps/arm: Fix PL111 register define re-definition
Close #3502.
2018-08-20 08:36:31 +02:00
Sebastian Huber
406dd62c99 _SMP_Start_multitasking_on_secondary_processor()
Pass current processor control as first parameter to make dependency
more explicit.
2018-07-25 10:07:42 +02:00
Sebastian Huber
caccc5bfc6 bsps: Fix function declaration warnings 2018-07-24 13:00:56 +02:00
Sebastian Huber
fc5cc9af10 bsps/arm: Include missing header file 2018-07-05 08:54:57 +02:00