Commit Graph

29 Commits

Author SHA1 Message Date
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
Christian Mauderer
7b968a2eb4 bsps/atsam: Add NULL pointer protection 2022-12-15 09:20:52 +01:00
Joel Sherrill
6fc04f4cfd bsps/arm/atsamv: Change license to BSD-2
Updates #3053.
2022-07-08 08:42:42 -05:00
Joel Sherrill
ba619b7f36 bsps/arm/: Scripted embedded brains header file clean up
Updates #4625.
2022-03-10 08:43:50 +01:00
Christian Mauderer
0074c9ecf3 bsp/atsam/i2c: Add error return and fix edge cases
The driver didn't return with an error on (for example) a NACK on the
bus. This adds the expected error return. Due to the new case that a
transfer can be interrupted on an error, there were some new edge cases.
This patch therefore also fixes these edge cases by removing the
transfer_state that more or less duplicated the interrupt states.

Fixes #4592
2022-02-10 09:08:03 +01:00
Christian Mauderer
974d24f8a8 bsp/atsam/i2c: Simplify driver
Do some clean ups. Remove superfluous variables. Eliminate some overly
complex logic (information about transfer and remaining bytes has been
tracked redundantly in multiple variables).

This patch doesn't change the behavior of the driver.

Update #4592
2022-02-10 09:07:46 +01:00
Christian Mauderer
aa95122c17 bsp/atsam: Optionally use DMA for UART Rx
If the system is busy with other interrupts and the UART is set to a
fast baud rate, it's possible to loose UART interrupts and therefore
characters. This allows to optionally enable a DMA for the UARTs so that
a number of lost interrupts can be tolerated.

The number of DMAs on this chip is limited and not not all applications
need that feature. Therefore the DMA is disabled by default.

Close #4578
2022-01-18 08:41:15 +01:00
Sebastian Huber
6b7a38589a bsp/atsam: Fix BSP_INTERRUPT_VECTOR_COUNT
Fix an off by one error.

Update #3269.
2021-06-24 11:36:27 +02:00
Sebastian Huber
94cf67ca66 bsps/irq: Remove BSP_INTERRUPT_VECTOR_MAX
This define is no longer used.

Update #3269.
2021-06-24 11:36:27 +02:00
Sebastian Huber
cd5573c09d bsps/irq: Add BSP_INTERRUPT_VECTOR_COUNT
Assert BSP_INTERRUPT_VECTOR_MAX + 1 == BSP_INTERRUPT_VECTOR_COUNT.

After building all BSPs with this patch, BSP_INTERRUPT_VECTOR_MAX can be
removed and replaced by BSP_INTERRUPT_VECTOR_COUNT.  The
BSP_INTERRUPT_VECTOR_COUNT allows a default implementation which supports no
interrupt vector at all.  Using COUNT instead of MAX may avoid some
interpretation issues, for example is the maximum value a valid vector number
or not.

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
Christian Mauderer
cab11b5b80 bsp/atsam: Fix XDMAD status
In "bsp/atsam: Simplify XDMAD_Handler()" (5f813694f6) the interrupt
callback has been made unconditional. That allowed to avoid some special
deadlock situations in error cases. But it removed part of the XDMAD
status handling.

This patch adds the ability to update the XDMAD status from the
callback if that is necessary for the driver.

Fixes #4173
2020-11-12 08:30:20 +01:00
Sebastian Huber
1b42158588 arm/atsam: Make interrupt server configurable
The external UART over SPI device SC16IS752 uses the interrupt server
for interrupt processing. The interrupt server is also heavily used by
libbsd. The interrupt processing for the SC16IS752 is time critical and
doesn't work if network traffic is processed at the same priority.
With #4033 custom interrupt servers are available. Change
atsam_sc16is752_spi_create() to support user-defined interrupt servers.
Introduced atsam_sc16is752_spi_config to cut down the argument count of
this function.

Close #4039.
2020-08-05 07:00:36 +02:00
Christian Mauderer
9620dfa49e bsp/atsam: Use PIO for SC16IS752.
This allows to mix SC16IS752 chips with other interrupts.
2019-10-23 10:41:34 +02:00
Christian Mauderer
d60b6d7c33 bsp/atsam: Add additional PIO helper. 2019-10-23 10:41:34 +02:00
Sebastian Huber
dc581f29ab bsp/atsam: Enable configuration of SDRAMC_LPR 2019-06-21 06:58:48 +02:00
Sebastian Huber
a67b9b06a1 atsam: Add ATSAM_POWER_WAIT_MODE 2019-06-18 12:52:53 +02:00
Sebastian Huber
ee36616804 bsp/atsam: Improve RTC power driver
Accept a time interval up to 24h.
2019-06-13 08:48:50 +02:00
Sebastian Huber
5f813694f6 bsp/atsam: Simplify XDMAD_Handler()
Remove the channel status evaluation from XDMAD_Handler() and simply
hand over the status to the callbacks.
2019-03-19 11:29:24 +01:00
Sebastian Huber
c991eeeccc bsps: Adjust bsp.h Doxygen groups
Update #3706.
2019-03-08 07:42:54 +01:00
Sebastian Huber
b934898562 bsp/atsam: Make SPI CS delays configurable 2019-03-06 13:07:16 +01:00
Sebastian Huber
68799dac67 bsp/atsam: Add const qualifier to AES_SetInput() 2018-10-18 07:23:29 +02:00
Sebastian Huber
5cb23f4b88 bsp/atsam: Use binary semaphore for I2C
Remove superfluous sleep before each I2C transfer.  Reset I2C module
after transfer timeouts.

Update #3534.
2018-10-01 09:01:29 +02:00
Christian Mauderer
ef61d892a4 bsp/atsam: Reserve one region for applications.
This allows a user to overwrite some MPU settings. That can for example
be usefull for devices with special requirements that are connected to
the external bus interface.
2018-05-25 07:09:09 +02:00
Christian Mauderer
4c36a525d3 bsp/atsam: Fix GMAC Rx Descriptor fields. 2018-03-21 09:06:29 +01:00
Christian Mauderer
71c5552f9a bsp/atsam: Allow setting the drive strength.
This adds a simple function for setting the PIO drive strength.
2018-03-13 15:04:28 +01:00
Christian Mauderer
6878519aea bsp/atsam: Fix cache / DMA handling in SPI.
This patch fixes the cache handling for the atsam SPI driver. Note that
this solution might doesn't have the best performance for small packets.
2018-02-12 14:25:02 +01:00
Christian Mauderer
538a0a836a bsp/atsam: Allow to use a decoder for SPI CS.
The SPI controller supports a decoder connected to the chip select
lines. This patch allows to use this mode.
2018-02-12 14:25:02 +01:00
Chris Johns
2afb22b7e1 Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step.  It
copied header files from arbitrary locations into the build tree.  The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

* The make preinstall step itself needs time and disk space.

* Errors in header files show up in the build tree copy.  This makes it
  hard for editors to open the right file to fix the error.

* There is no clear relationship between source and build tree header
  files.  This makes an audit of the build process difficult.

* The visibility of all header files in the build tree makes it
  difficult to enforce API barriers.  For example it is discouraged to
  use BSP-specifics in the cpukit.

* An introduction of a new build system is difficult.

* Include paths specified by the -B option are system headers.  This
  may suppress warnings.

* The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step.   All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc.  Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

* cpukit/include

* cpukit/score/cpu/@RTEMS_CPU@/include

* cpukit/libnetworking

The new BSP include directories are:

* bsps/include

* bsps/@RTEMS_CPU@/include

* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed.  The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.
2018-01-25 08:45:26 +01:00