Added security configuration

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11280 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
edolomb 2018-01-15 20:19:48 +00:00
parent c70771c57b
commit fc79c25a35
2 changed files with 32 additions and 1 deletions

View File

@ -183,6 +183,9 @@ static void spi_lld_serve_tx_interrupt(SPIDriver *spip, uint32_t flags) {
void spi_lld_init(void) { void spi_lld_init(void) {
#if SAMA_SPI_USE_SPI0 #if SAMA_SPI_USE_SPI0
#if SAMA_HAL_IS_SECURE
mtxConfigPeriphSecurity(MATRIX1, ID_SPI0, SECURE_PER);
#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/ /* Driver initialization.*/
spiObjectInit(&SPID0); spiObjectInit(&SPID0);
SPID0.spi = SPI0; SPID0.spi = SPI0;
@ -213,6 +216,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_SPI0 */ #endif /* SAMA_SPI_USE_SPI0 */
#if SAMA_SPI_USE_SPI1 #if SAMA_SPI_USE_SPI1
#if SAMA_HAL_IS_SECURE
mtxConfigPeriphSecurity(MATRIX1, ID_SPI1, SECURE_PER);
#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/ /* Driver initialization.*/
spiObjectInit(&SPID1); spiObjectInit(&SPID1);
SPID1.spi = SPI1; SPID1.spi = SPI1;
@ -243,6 +249,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_SPI1 */ #endif /* SAMA_SPI_USE_SPI1 */
#if SAMA_SPI_USE_FLEXCOM0 #if SAMA_SPI_USE_FLEXCOM0
#if SAMA_HAL_IS_SECURE
mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM0, SECURE_PER);
#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/ /* Driver initialization.*/
spiObjectInit(&FSPID0); spiObjectInit(&FSPID0);
FSPID0.spi = FCOMSPI0; FSPID0.spi = FCOMSPI0;
@ -274,6 +283,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM0 */ #endif /* SAMA_SPI_USE_FLEXCOM0 */
#if SAMA_SPI_USE_FLEXCOM1 #if SAMA_SPI_USE_FLEXCOM1
#if SAMA_HAL_IS_SECURE
mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM1, SECURE_PER);
#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/ /* Driver initialization.*/
spiObjectInit(&FSPID1); spiObjectInit(&FSPID1);
FSPID1.spi = FCOMSPI1; FSPID1.spi = FCOMSPI1;
@ -305,6 +317,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM1 */ #endif /* SAMA_SPI_USE_FLEXCOM1 */
#if SAMA_SPI_USE_FLEXCOM2 #if SAMA_SPI_USE_FLEXCOM2
#if SAMA_HAL_IS_SECURE
mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM2, SECURE_PER);
#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/ /* Driver initialization.*/
spiObjectInit(&FSPID2); spiObjectInit(&FSPID2);
FSPID2.spi = FCOMSPI2; FSPID2.spi = FCOMSPI2;
@ -336,6 +351,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM2 */ #endif /* SAMA_SPI_USE_FLEXCOM2 */
#if SAMA_SPI_USE_FLEXCOM3 #if SAMA_SPI_USE_FLEXCOM3
#if SAMA_HAL_IS_SECURE
mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM3, SECURE_PER);
#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/ /* Driver initialization.*/
spiObjectInit(&FSPID3); spiObjectInit(&FSPID3);
FSPID3.spi = FCOMSPI3; FSPID3.spi = FCOMSPI3;
@ -367,6 +385,9 @@ void spi_lld_init(void) {
#endif /* SAMA_SPI_USE_FLEXCOM3 */ #endif /* SAMA_SPI_USE_FLEXCOM3 */
#if SAMA_SPI_USE_FLEXCOM4 #if SAMA_SPI_USE_FLEXCOM4
#if SAMA_HAL_IS_SECURE
mtxConfigPeriphSecurity(MATRIX1, ID_FLEXCOM4, SECURE_PER);
#endif /* SAMA_HAL_IS_SECURE */
/* Driver initialization.*/ /* Driver initialization.*/
spiObjectInit(&FSPID4); spiObjectInit(&FSPID4);
FSPID4.spi = FCOMSPI4; FSPID4.spi = FCOMSPI4;

View File

@ -31,6 +31,11 @@
/* Driver constants. */ /* Driver constants. */
/*===========================================================================*/ /*===========================================================================*/
/**
* @brief Circular mode support flag.
*/
#define SPI_SUPPORTS_CIRCULAR FALSE
/*===========================================================================*/ /*===========================================================================*/
/* Driver pre-compile time settings. */ /* Driver pre-compile time settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -149,7 +154,6 @@
/*===========================================================================*/ /*===========================================================================*/
/* Derived constants and error checks. */ /* Derived constants and error checks. */
/*===========================================================================*/ /*===========================================================================*/
/** /**
* @brief At least an SPI unit is in use. * @brief At least an SPI unit is in use.
*/ */
@ -243,6 +247,12 @@ typedef void (*spicallback_t)(SPIDriver *spip);
* @brief Driver configuration structure. * @brief Driver configuration structure.
*/ */
typedef struct { 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. * @brief Operation complete callback or @p NULL.
*/ */