aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports
diff options
context:
space:
mode:
authoredolomb <none@example.com>2018-01-15 20:19:48 +0000
committeredolomb <none@example.com>2018-01-15 20:19:48 +0000
commitfc79c25a3539dce82945e7fe909ad681f533c770 (patch)
treeba46d16c77b972982498d841d0d8d1bb13f54487 /os/hal/ports
parentc70771c57bcfcd13063308be7eb61cf4b3546469 (diff)
downloadChibiOS-fc79c25a3539dce82945e7fe909ad681f533c770.tar.gz
ChibiOS-fc79c25a3539dce82945e7fe909ad681f533c770.tar.bz2
ChibiOS-fc79c25a3539dce82945e7fe909ad681f533c770.zip
Added security configuration
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11280 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/ports')
-rw-r--r--os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.c21
-rw-r--r--os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.h12
2 files changed, 32 insertions, 1 deletions
diff --git a/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.c b/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.c
index fffdb390c..a450f261b 100644
--- a/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.c
+++ b/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.c
@@ -183,6 +183,9 @@ static void spi_lld_serve_tx_interrupt(SPIDriver *spip, uint32_t flags) {
void spi_lld_init(void) {
#if SAMA_SPI_USE_SPI0
+#if SAMA_HAL_IS_SECURE
+ mtxConfigPeriphSecurity(MATRIX1, ID_SPI0, SECURE_PER);
+#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/
spiObjectInit(&SPID0);
SPID0.spi = SPI0;
@@ -213,6 +216,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_SPI0 */
#if SAMA_SPI_USE_SPI1
+#if SAMA_HAL_IS_SECURE
+ mtxConfigPeriphSecurity(MATRIX1, ID_SPI1, SECURE_PER);
+#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/
spiObjectInit(&SPID1);
SPID1.spi = SPI1;
@@ -243,6 +249,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_SPI1 */
#if SAMA_SPI_USE_FLEXCOM0
+#if SAMA_HAL_IS_SECURE
+ mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM0, SECURE_PER);
+#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/
spiObjectInit(&FSPID0);
FSPID0.spi = FCOMSPI0;
@@ -274,6 +283,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM0 */
#if SAMA_SPI_USE_FLEXCOM1
+#if SAMA_HAL_IS_SECURE
+ mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM1, SECURE_PER);
+#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/
spiObjectInit(&FSPID1);
FSPID1.spi = FCOMSPI1;
@@ -305,6 +317,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM1 */
#if SAMA_SPI_USE_FLEXCOM2
+#if SAMA_HAL_IS_SECURE
+ mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM2, SECURE_PER);
+#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/
spiObjectInit(&FSPID2);
FSPID2.spi = FCOMSPI2;
@@ -336,6 +351,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM2 */
#if SAMA_SPI_USE_FLEXCOM3
+#if SAMA_HAL_IS_SECURE
+ mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM3, SECURE_PER);
+#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/
spiObjectInit(&FSPID3);
FSPID3.spi = FCOMSPI3;
@@ -367,6 +385,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM3 */
#if SAMA_SPI_USE_FLEXCOM4
+#if SAMA_HAL_IS_SECURE
+ mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM4, SECURE_PER);
+#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/
spiObjectInit(&FSPID4);
FSPID4.spi = FCOMSPI4;
diff --git a/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.h b/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.h
index ab2c7f2ad..d5df35dac 100644
--- a/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.h
+++ b/os/hal/ports/SAMA/LLD/SPIv1/hal_spi_lld.h
@@ -31,6 +31,11 @@
/* Driver constants. */
/*===========================================================================*/
+/**
+ * @brief Circular mode support flag.
+ */
+#define SPI_SUPPORTS_CIRCULAR FALSE
+
/*===========================================================================*/
/* Driver pre-compile time settings. */
/*===========================================================================*/
@@ -149,7 +154,6 @@
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
-
/**
* @brief At least an SPI unit is in use.
*/
@@ -243,6 +247,12 @@ typedef void (*spicallback_t)(SPIDriver *spip);
* @brief Driver configuration structure.
*/
typedef struct {
+#if (SPI_SUPPORTS_CIRCULAR == TRUE) || defined(__DOXYGEN__)
+ /**
+ * @brief Enables the circular buffer mode.
+ */
+ bool circular;
+#endif
/**
* @brief Operation complete callback or @p NULL.
*/