[rtems commit] bsp/atsam: Port SAM Software Package to RTEMS

Sebastian Huber sebh at rtems.org
Tue Jan 19 07:38:40 UTC 2016


Module:    rtems
Branch:    master
Commit:    c354fac86ab27a3a6cbb1a3aac88e0fcad2ced2e
Changeset: http://git.rtems.org/rtems/commit/?id=c354fac86ab27a3a6cbb1a3aac88e0fcad2ced2e

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Jan 14 15:48:44 2016 +0100

bsp/atsam: Port SAM Software Package to RTEMS

Update #2529.

---

 .../libbsp/arm/atsam/libraries/libboard/board.h    |  3 ++
 .../arm/atsam/libraries/libboard/board_v71_xult.h  |  4 ++
 .../libboard/resources_v71/system_samv71.c         | 16 +++++-
 .../libraries/libboard/source/board_lowlevel.c     |  5 ++
 .../libraries/libboard/source/board_memories.c     | 11 ++++
 .../atsam/libraries/libboard/source/dbg_console.c  | 60 ++++++++++++++++++++++
 .../libbsp/arm/atsam/libraries/libchip/compiler.h  | 33 +++++++++++-
 .../arm/atsam/libraries/libchip/include/chip.h     |  1 +
 .../arm/atsam/libraries/libchip/include/qspi_dma.h |  2 +
 .../libraries/libchip/include/same70/same70j19.h   |  2 +
 .../libraries/libchip/include/same70/same70j20.h   |  2 +
 .../libraries/libchip/include/same70/same70j21.h   |  2 +
 .../libraries/libchip/include/same70/same70n19.h   |  2 +
 .../libraries/libchip/include/same70/same70n20.h   |  2 +
 .../libraries/libchip/include/same70/same70n21.h   |  2 +
 .../libraries/libchip/include/same70/same70q19.h   |  2 +
 .../libraries/libchip/include/same70/same70q20.h   |  2 +
 .../libraries/libchip/include/same70/same70q21.h   |  2 +
 .../libraries/libchip/include/sams70/sams70j19.h   |  2 +
 .../libraries/libchip/include/sams70/sams70j20.h   |  2 +
 .../libraries/libchip/include/sams70/sams70j21.h   |  2 +
 .../libraries/libchip/include/sams70/sams70n19.h   |  2 +
 .../libraries/libchip/include/sams70/sams70n20.h   |  2 +
 .../libraries/libchip/include/sams70/sams70n21.h   |  2 +
 .../libraries/libchip/include/sams70/sams70q19.h   |  2 +
 .../libraries/libchip/include/sams70/sams70q20.h   |  2 +
 .../libraries/libchip/include/sams70/sams70q21.h   |  2 +
 .../libraries/libchip/include/samv71/samv71.h      |  3 ++
 .../libraries/libchip/include/samv71/samv71j19.h   |  2 +
 .../libraries/libchip/include/samv71/samv71j20.h   |  2 +
 .../libraries/libchip/include/samv71/samv71j21.h   |  2 +
 .../libraries/libchip/include/samv71/samv71n19.h   |  2 +
 .../libraries/libchip/include/samv71/samv71n20.h   |  2 +
 .../libraries/libchip/include/samv71/samv71n21.h   |  2 +
 .../libraries/libchip/include/samv71/samv71q19.h   |  2 +
 .../libraries/libchip/include/samv71/samv71q20.h   |  2 +
 .../libraries/libchip/include/samv71/samv71q21.h   |  2 +
 .../arm/atsam/libraries/libchip/include/xdmac.h    |  2 +
 .../arm/atsam/libraries/libchip/source/mcan.c      |  8 +++
 .../arm/atsam/libraries/libchip/source/qspi_dma.c  | 10 ++--
 .../libbsp/arm/atsam/libraries/libchip/source/tc.c |  4 ++
 .../arm/atsam/libraries/libchip/source/usart.c     |  4 ++
 .../arm/atsam/libraries/libchip/source/xdmad.c     |  3 ++
 43 files changed, 216 insertions(+), 7 deletions(-)

diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libboard/board.h b/c/src/lib/libbsp/arm/atsam/libraries/libboard/board.h
index a77409d..d69d212 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libboard/board.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libboard/board.h
@@ -30,6 +30,9 @@
 #ifndef _BOARD_H_
 #define _BOARD_H_
 
+#ifdef __rtems__
+#include <bspopts.h>
+#endif /* __rtems__ */
 #if defined(BOARD_SAMV71_XULT)
 	#include "board_v71_xult.h"
 #elif defined(BOARD_SAME70_XPLD)
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libboard/board_v71_xult.h b/c/src/lib/libbsp/arm/atsam/libraries/libboard/board_v71_xult.h
index c98dbd2..be0c0f2 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libboard/board_v71_xult.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libboard/board_v71_xult.h
@@ -110,9 +110,11 @@
 #include "include/image_sensor_inf.h"
 #include "include/iso7816_4.h"
 
+#ifndef __rtems__
 #if defined (__GNUC__)
 	#include "include/syscalls.h"
 #endif
+#endif /* __rtems__ */
 /*----------------------------------------------------------------------------
  *        Definitions
  *----------------------------------------------------------------------------*/
@@ -129,6 +131,7 @@
 /** Name of the board */
 #define BOARD_NAME "SAM V71 Xplained Ultra"
 #define NO_PUSHBUTTON
+#ifndef __rtems__
 /*----------------------------------------------------------------------------*/
 /**
  *  \page samv7_Xplained_ultra_opfreq "SAM V71 Xplained Ultra - Operating frequencies"
@@ -150,6 +153,7 @@
 #else
 	#define BOARD_MCK    150000000
 #endif
+#endif /* __rtems__ */
 
 #if (BOARD_MCK==123000000)
 
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libboard/resources_v71/system_samv71.c b/c/src/lib/libbsp/arm/atsam/libraries/libboard/resources_v71/system_samv71.c
index 0dfcc95..9b4bd93 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libboard/resources_v71/system_samv71.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libboard/resources_v71/system_samv71.c
@@ -27,7 +27,11 @@
 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                           */
 /* ---------------------------------------------------------------------------- */
 
+#ifndef __rtems__
 #include "samv71.h"
+#else /* __rtems__ */
+#include <chip.h>
+#endif /* __rtems__ */
 
 /* @cond 0 */
 /**INDENT-OFF**/
@@ -41,7 +45,7 @@ extern "C" {
 	/* Clock Settings (600MHz PLL VDDIO 3.3V and VDDCORE 1.2V) */
 	/* Clock Settings (300MHz HCLK, 150MHz MCK)=> PRESC = 2, MDIV = 2 */
 #define SYS_BOARD_OSCOUNT   (CKGR_MOR_MOSCXTST(0x8U))
-#ifdef MCK_123MHZ
+#if BOARD_MCK == 123000000
 	/* For example usb_video, PLLA/HCLK/MCK clock is set to 492/246/123MHz to achieve
 	   the maximum performance, for other examples the clock is set to 300/300/150MHz */
 	#define SYS_BOARD_PLLAR     (CKGR_PLLAR_ONE | CKGR_PLLAR_MULA(0x28U) | \
@@ -50,16 +54,20 @@ extern "C" {
 #define SYS_BOARD_MCKR_MDIV (PMC_MCKR_MDIV_PCK_DIV2)
 	#define SYS_BOARD_MCKR      (PMC_MCKR_PRES_CLK_2 | PMC_MCKR_CSS_PLLA_CLK \
 								 | SYS_BOARD_MCKR_MDIV)
-#else
+#elif BOARD_MCK == 150000000
 	#define SYS_BOARD_PLLAR     (CKGR_PLLAR_ONE | CKGR_PLLAR_MULA(0x18U) | \
 								 CKGR_PLLAR_PLLACOUNT(0x3fU) | CKGR_PLLAR_DIVA(0x1U))
 
 #define SYS_BOARD_MCKR_MDIV (PMC_MCKR_MDIV_PCK_DIV2)
 	#define SYS_BOARD_MCKR      (PMC_MCKR_PRES_CLK_1 | PMC_MCKR_CSS_PLLA_CLK \
 								 | SYS_BOARD_MCKR_MDIV)
+#else
+	#error "unexpected Main Clock (MCK) frequency"
 #endif
 
+#ifndef __rtems__
 	uint32_t SystemCoreClock = CHIP_FREQ_MAINCK_RC_4MHZ;
+#endif /* __rtems__ */
 #define USBCLK_DIV          10
 
 	/**
@@ -131,9 +139,12 @@ extern "C" {
 	while (!(PMC->PMC_SR & PMC_SR_MCKRDY)) {
 	}
 
+#ifndef __rtems__
 	SystemCoreClock = CHIP_FREQ_CPU_MAX;
+#endif /* __rtems__ */
 }
 
+#ifndef __rtems__
 void SystemCoreClockUpdate(void)
 {
 	/* Determine clock frequency according to clock register values */
@@ -213,6 +224,7 @@ void SystemCoreClockUpdate(void)
 	else
 		SystemCoreClock >>= ((PMC->PMC_MCKR & PMC_MCKR_PRES_Msk) >> PMC_MCKR_PRES_Pos);
 }
+#endif /* __rtems__ */
 /**
  * Initialize flash.
  */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_lowlevel.c b/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_lowlevel.c
index a731ba4..254e529 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_lowlevel.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_lowlevel.c
@@ -37,7 +37,12 @@
  *        Headers
  *----------------------------------------------------------------------------*/
 
+#ifndef __rtems__
 #include "board.h"
+#else /* __rtems__ */
+#include <chip.h>
+#include <include/board_lowlevel.h>
+#endif /* __rtems__ */
 
 
 #if defined(ENABLE_TCM) && defined(__GNUC__)
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_memories.c b/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_memories.c
index e2a1097..01ecd8e 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_memories.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/board_memories.c
@@ -37,7 +37,12 @@
 /*----------------------------------------------------------------------------
  *        Headers
  *----------------------------------------------------------------------------*/
+#ifndef __rtems__
 #include "board.h"
+#else /* __rtems__ */
+#include <chip.h>
+#include <include/board_memories.h>
+#endif /* __rtems__ */
 
 /*----------------------------------------------------------------------------
  *        Exported functions
@@ -47,6 +52,7 @@
 #define SDRAM_BA1 (1 << 21)
 
 
+#ifndef __rtems__
 uint32_t BOARD_SdramValidation(uint32_t baseAddr, uint32_t size)
 {
 	uint32_t i;
@@ -135,6 +141,7 @@ uint32_t BOARD_SdramValidation(uint32_t baseAddr, uint32_t size)
 
 	return ret;
 }
+#endif /* __rtems__ */
 
 
 /**
@@ -144,12 +151,16 @@ uint32_t BOARD_SdramValidation(uint32_t baseAddr, uint32_t size)
 
 void BOARD_ConfigureSdram(void)
 {
+#ifndef __rtems__
 	const Pin pinsSdram[] = {BOARD_SDRAM_PINS};
+#endif /* __rtems__ */
 	volatile uint32_t i;
 	volatile uint8_t *pSdram = (uint8_t *) SDRAM_CS_ADDR;
 
 	/* Configure PIO */
+#ifndef __rtems__
 	PIO_Configure(pinsSdram, PIO_LISTSIZE(pinsSdram));
+#endif /* __rtems__ */
 	PMC_EnablePeripheral(ID_SDRAMC);
 	MATRIX->CCFG_SMCNFCS = CCFG_SMCNFCS_SDRAMEN;
 
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/dbg_console.c b/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/dbg_console.c
index a31dad1..852cd4f 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/dbg_console.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libboard/source/dbg_console.c
@@ -38,7 +38,12 @@
  *        Headers
  *----------------------------------------------------------------------------*/
 
+#ifndef __rtems__
 #include "board.h"
+#else /* __rtems__ */
+#include <chip.h>
+#include <include/dbg_console.h>
+#endif /* __rtems__ */
 
 #include <stdio.h>
 #include <stdint.h>
@@ -50,6 +55,7 @@
 /** Console baud rate always using 115200. */
 
 
+#ifndef __rtems__
 #define CONSOLE_BAUDRATE    115200
 
 /** EDBG used USART1 as the console, but LON support on USART1 only */
@@ -102,14 +108,58 @@
 
 #define CONSOLE_ID        ID_USART1
 #endif
+#else /* __rtems__ */
+#define CONSOLE_BAUDRATE ATSAM_CONSOLE_BAUD
+#if ATSAM_CONSOLE_DEVICE_TYPE == 1
+  #define CONSOLE_ON_UART
+  #if ATSAM_CONSOLE_DEVICE_INDEX == 4
+    #define CONSOLE_UART UART4
+    #define CONSOLE_ID ID_UART4
+  #elif ATSAM_CONSOLE_DEVICE_INDEX == 3
+    #define CONSOLE_UART UART3
+    #define CONSOLE_ID ID_UART3
+  #elif ATSAM_CONSOLE_DEVICE_INDEX == 2
+    #define CONSOLE_UART UART2
+    #define CONSOLE_ID ID_UART2
+  #elif ATSAM_CONSOLE_DEVICE_INDEX == 1
+    #define CONSOLE_UART UART1
+    #define CONSOLE_ID ID_UART1
+  #else
+    #define CONSOLE_UART UART0
+    #define CONSOLE_ID ID_UART0
+  #endif
+#else
+  #define CONSOLE_ON_USART
+  #if ATSAM_CONSOLE_DEVICE_INDEX == 4
+    #define CONSOLE_Usart USART4
+    #define CONSOLE_ID ID_USART4
+  #elif ATSAM_CONSOLE_DEVICE_INDEX == 3
+    #define CONSOLE_Usart USART3
+    #define CONSOLE_ID ID_USART3
+  #elif ATSAM_CONSOLE_DEVICE_INDEX == 2
+    #define CONSOLE_Usart USART2
+    #define CONSOLE_ID ID_USART2
+  #elif ATSAM_CONSOLE_DEVICE_INDEX == 1
+    #define CONSOLE_Usart USART1
+    #define CONSOLE_ID ID_USART1
+  #else
+    #define CONSOLE_Usart USART0
+    #define CONSOLE_ID ID_USART0
+  #endif
+#endif
+#endif /* __rtems__ */
 
 
 /*----------------------------------------------------------------------------
  *        Variables
  *----------------------------------------------------------------------------*/
 
+#ifndef __rtems__
 /** Is Console Initialized. */
 static uint8_t _ucIsConsoleInitialized = 0;
+#else /* __rtems__ */
+#define _ucIsConsoleInitialized 1
+#endif /* __rtems__ */
 
 /**
  * \brief Configures an USART peripheral with the specified parameters.
@@ -120,11 +170,15 @@ static uint8_t _ucIsConsoleInitialized = 0;
 extern void DBG_Configure(uint32_t baudrate, uint32_t masterClock)
 {
 
+#ifndef __rtems__
 	const Pin pPins[] = CONSOLE_PINS;
+#endif /* __rtems__ */
 #if defined CONSOLE_ON_UART
 	Uart *pUart = CONSOLE_UART;
 	/* Configure PIO */
+#ifndef __rtems__
 	PIO_Configure(pPins, PIO_LISTSIZE(pPins));
+#endif /* __rtems__ */
 
 	// Reset & disable receiver and transmitter, disable interrupts
 	pUart->UART_CR = UART_CR_RSTRX | UART_CR_RSTTX | UART_CR_RSTSTA;
@@ -142,10 +196,12 @@ extern void DBG_Configure(uint32_t baudrate, uint32_t masterClock)
 #if defined CONSOLE_ON_USART
 	Usart *pUsart = CONSOLE_Usart;
 	// Disable the MATRIX registers write protection
+#ifndef __rtems__
 	MATRIX->MATRIX_WPMR  = MATRIX_WPMR_WPKEY_PASSWD;
 	MATRIX->CCFG_SYSIO |= CCFG_SYSIO_SYSIO4;
 
 	PIO_Configure(pPins, PIO_LISTSIZE(pPins));
+#endif /* __rtems__ */
 
 	// Reset & disable receiver and transmitter, disable interrupts
 	pUsart->US_CR = US_CR_RSTRX | US_CR_RSTTX | US_CR_RSTSTA;
@@ -161,12 +217,14 @@ extern void DBG_Configure(uint32_t baudrate, uint32_t masterClock)
 	// Enable receiver and transmitter
 	pUsart->US_CR = US_CR_RXEN | US_CR_TXEN;
 #endif
+#ifndef __rtems__
 	_ucIsConsoleInitialized = 1;
 
 	/* Disable buffering for printf(). */
 #if (defined (__GNUC__) && !defined (__SAMBA__))
 	setvbuf(stdout, (char *)NULL, _IONBF, 0);
 #endif
+#endif /* __rtems__ */
 }
 
 /**
@@ -269,6 +327,7 @@ extern uint32_t DBG_IsRxReady(void)
 #endif
 }
 
+#ifndef __rtems__
 /**
  *  Displays the content of the given frame on the UART0.
  *
@@ -502,3 +561,4 @@ extern WEAK char *gets(char *ptr)
 }
 
 
+#endif /* __rtems__ */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/compiler.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/compiler.h
index 874ecae..f36013a 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/compiler.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/compiler.h
@@ -30,12 +30,41 @@
 #ifndef _COMPILER_H_
 #define _COMPILER_H_
 
+#ifdef __rtems__
+#include <bspopts.h>
+#endif /* __rtems__ */
 /*
  * Peripherals registers definitions
  */
-#if defined(__SAMV71Q21__)
+#if defined __SAMV71J19__ \
+	|| defined __SAMV71J20__ \
+	|| defined __SAMV71J21__ \
+	|| defined __SAMV71N19__ \
+	|| defined __SAMV71N20__ \
+	|| defined __SAMV71N21__ \
+	|| defined __SAMV71Q19__ \
+	|| defined __SAMV71Q20__ \
+	|| defined __SAMV71Q21__
 	#include "include/samv71/samv71.h"
-#elif defined(__SAME70Q21__)
+#elif defined __SAMS70J19__ \
+	|| defined __SAMS70J20__ \
+	|| defined __SAMS70J21__ \
+	|| defined __SAMS70N19__ \
+	|| defined __SAMS70N20__ \
+	|| defined __SAMS70N21__ \
+	|| defined __SAMS70Q19__ \
+	|| defined __SAMS70Q20__ \
+	|| defined __SAMS70Q21__
+	#include "include/sams70/sams70.h"
+#elif defined __SAME70J19__ \
+	|| defined __SAME70J20__ \
+	|| defined __SAME70J21__ \
+	|| defined __SAME70N19__ \
+	|| defined __SAME70N20__ \
+	|| defined __SAME70N21__ \
+	|| defined __SAME70Q19__ \
+	|| defined __SAME70Q20__ \
+	|| defined __SAME70Q21__
 	#include "include/same70/same70.h"
 #else
 	#error "please define correct macro for the chip first!"
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/chip.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/chip.h
new file mode 100644
index 0000000..a9f1f01
--- /dev/null
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/chip.h
@@ -0,0 +1 @@
+#include "../chip.h"
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/qspi_dma.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/qspi_dma.h
index b51c58e..8ee274e 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/qspi_dma.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/qspi_dma.h
@@ -42,7 +42,9 @@
  *----------------------------------------------------------------------------*/
 
 #include "chip.h"
+#ifndef __rtems__
 #include "../../../../utils/utility.h"
+#endif /* __rtems__ */
 
 /*----------------------------------------------------------------------------
  *        Definitions
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j19.h
index 602621f..a82d7c1 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j19.h
@@ -333,6 +333,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70J19 */
 /* ************************************************************************** */
@@ -386,6 +387,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70J19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j20.h
index 89af94b..a877891 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j20.h
@@ -336,6 +336,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70J20 */
 /* ************************************************************************** */
@@ -390,6 +391,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70J20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j21.h
index 88bad12..812c28c 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70j21.h
@@ -336,6 +336,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70J21 */
 /* ************************************************************************** */
@@ -390,6 +391,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70J21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n19.h
index 0afe214..ed565d4 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n19.h
@@ -338,6 +338,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70N19 */
 /* ************************************************************************** */
@@ -393,6 +394,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70N19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n20.h
index 1b0ac6a..84b1265 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n20.h
@@ -338,6 +338,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70N20 */
 /* ************************************************************************** */
@@ -393,6 +394,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70N20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n21.h
index f3889a5..ceaeef3 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70n21.h
@@ -338,6 +338,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70N21 */
 /* ************************************************************************** */
@@ -393,6 +394,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70N21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q19.h
index 2fb2e85..136ac0e 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q19.h
@@ -358,6 +358,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70Q19 */
 /* ************************************************************************** */
@@ -419,6 +420,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70Q19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q20.h
index 2310461..dc5858c 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q20.h
@@ -358,6 +358,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70Q20 */
 /* ************************************************************************** */
@@ -419,6 +420,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70Q20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q21.h
index 06adb73..3cd174e 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/same70/same70q21.h
@@ -362,6 +362,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAME70Q21 */
 /* ************************************************************************** */
@@ -423,6 +424,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAME70Q21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j19.h
index fe9c2b8..82e2d7f 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j19.h
@@ -328,6 +328,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70J19 */
 /* ************************************************************************** */
@@ -379,6 +380,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70J19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j20.h
index 8aa106a..e9f40dd 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j20.h
@@ -328,6 +328,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70J20 */
 /* ************************************************************************** */
@@ -379,6 +380,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70J20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j21.h
index 30720a2..db2dbb9 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70j21.h
@@ -328,6 +328,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70J21 */
 /* ************************************************************************** */
@@ -379,6 +380,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70J21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n19.h
index 3da562a..8a810f1 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n19.h
@@ -330,6 +330,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70N19 */
 /* ************************************************************************** */
@@ -382,6 +383,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70N19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n20.h
index 716cb4b..f95b970 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n20.h
@@ -330,6 +330,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70N20 */
 /* ************************************************************************** */
@@ -382,6 +383,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70N20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n21.h
index e53bfeb..61170b4 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70n21.h
@@ -330,6 +330,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70N21 */
 /* ************************************************************************** */
@@ -382,6 +383,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70N21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q19.h
index 160fcf9..67d465f 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q19.h
@@ -350,6 +350,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70Q19 */
 /* ************************************************************************** */
@@ -408,6 +409,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70Q19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q20.h
index f88973a..46c034c 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q20.h
@@ -350,6 +350,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70Q20 */
 /* ************************************************************************** */
@@ -408,6 +409,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70Q20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q21.h
index f59404f..1528f41 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/sams70/sams70q21.h
@@ -350,6 +350,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMS70Q21 */
 /* ************************************************************************** */
@@ -408,6 +409,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMS70Q21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71.h
index 892a020..4bdbce5 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71.h
@@ -30,6 +30,9 @@
 #ifndef _SAMV71_
 #define _SAMV71_
 
+#ifdef __rtems__
+#include <bspopts.h>
+#endif /* __rtems__ */
 #if defined __SAMV71J19__
   #include "samv71j19.h"
 #elif defined __SAMV71J20__
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j19.h
index 0707f5f..ad3c38f 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j19.h
@@ -339,6 +339,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71J19 */
 /* ************************************************************************** */
@@ -394,6 +395,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71J19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j20.h
index 86e5b8f..9df556c 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j20.h
@@ -339,6 +339,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71J20 */
 /* ************************************************************************** */
@@ -394,6 +395,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71J20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j21.h
index 1c01571..4c306b8 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71j21.h
@@ -339,6 +339,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71J21 */
 /* ************************************************************************** */
@@ -394,6 +395,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71J21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n19.h
index 09d62a5..8f2c0b9 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n19.h
@@ -341,6 +341,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71N19 */
 /* ************************************************************************** */
@@ -397,6 +398,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71N19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n20.h
index 2a010bc..e709e5f 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n20.h
@@ -341,6 +341,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71N20 */
 /* ************************************************************************** */
@@ -397,6 +398,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71N20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n21.h
index 619f602..dc1ef6e 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71n21.h
@@ -341,6 +341,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71N21 */
 /* ************************************************************************** */
@@ -397,6 +398,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71N21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q19.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q19.h
index 14c0930..e42381c 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q19.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q19.h
@@ -361,6 +361,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71Q19 */
 /* ************************************************************************** */
@@ -423,6 +424,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71Q19 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q20.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q20.h
index 57a2f43..cfc1780 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q20.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q20.h
@@ -361,6 +361,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71Q20 */
 /* ************************************************************************** */
@@ -423,6 +424,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71Q20 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q21.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q21.h
index 77bebbd..401ee9b 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q21.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/samv71/samv71q21.h
@@ -365,6 +365,7 @@ void XDMAC_Handler      ( void );
 #include "component/component_xdmac.h"
 /*@}*/
 
+#ifndef __rtems__
 /* ************************************************************************** */
 /*   REGISTER ACCESS DEFINITIONS FOR SAMV71Q21 */
 /* ************************************************************************** */
@@ -427,6 +428,7 @@ void XDMAC_Handler      ( void );
 #include "instance/instance_uart3.h"
 #include "instance/instance_uart4.h"
 /*@}*/
+#endif /* __rtems__ */
 
 /* ************************************************************************** */
 /*   PERIPHERAL ID DEFINITIONS FOR SAMV71Q21 */
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/xdmac.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/xdmac.h
index 1761358..34d4faa 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/xdmac.h
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/xdmac.h
@@ -74,7 +74,9 @@
 
 #include "chip.h"
 
+#ifndef __rtems__
 #include <../../../../utils/utility.h>
+#endif /* __rtems__ */
 #include <stdint.h>
 
 /*------------------------------------------------------------------------------
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/mcan.c b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/mcan.c
index 70ae12b..e91f73e 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/mcan.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/mcan.c
@@ -38,7 +38,9 @@
 /*----------------------------------------------------------------------------
  *        Headers
  *----------------------------------------------------------------------------*/
+#ifndef __rtems__
 #include "board.h"
+#endif /* __rtems__ */
 #include "chip.h"
 #include "mcan_config.h"
 #include <assert.h>
@@ -422,8 +424,10 @@
  *      Internal variables
  *---------------------------------------------------------------------------*/
 
+#ifndef __rtems__
 static const Pin pinsMcan0[] =  {PIN_MCAN0_TXD, PIN_MCAN0_RXD };
 static const Pin pinsMcan1[] =  {PIN_MCAN1_TXD, PIN_MCAN1_RXD };
+#endif /* __rtems__ */
 
 static uint32_t can0MsgRam[MCAN0_STD_FLTS_WRDS +
 						   MCAN0_EXT_FLTS_WRDS +
@@ -548,7 +552,9 @@ void MCAN_Init(const MCan_ConfigType *mcanConfig)
 	PMC->PMC_SCER = PMC_SCER_PCK5;
 
 	if (MCAN0 ==  mcan) {
+#ifndef __rtems__
 		PIO_Configure(pinsMcan0, PIO_LISTSIZE(pinsMcan0));
+#endif /* __rtems__ */
 		// Enable MCAN peripheral clock
 		PMC_EnablePeripheral(ID_MCAN0);
 		// Configure Message RAM Base Address
@@ -557,7 +563,9 @@ void MCAN_Init(const MCan_ConfigType *mcanConfig)
 							((uint32_t) mcanConfig->msgRam.pStdFilts & 0xFFFF0000);
 		mCanLine0Irq = MCAN0_IRQn;
 	} else if (MCAN1 ==  mcan) {
+#ifndef __rtems__
 		PIO_Configure(pinsMcan1, PIO_LISTSIZE(pinsMcan1));
+#endif /* __rtems__ */
 		// Enable MCAN peripheral clock
 		PMC_EnablePeripheral(ID_MCAN1);
 		// Configure Message RAM Base Address
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/qspi_dma.c b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/qspi_dma.c
index b465ac8..bac5378 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/qspi_dma.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/qspi_dma.c
@@ -47,6 +47,9 @@
  *----------------------------------------------------------------------------*/
 
 #include "chip.h"
+#ifdef __rtems__
+#include "../../../utils/utility.h"
+#endif /* __rtems__ */
 
 /*----------------------------------------------------------------------------
  *        Definitions
@@ -555,10 +558,11 @@ uint32_t QSPID_ReadWriteQSPI(QspiDma_t *pQspidma, Access_t const ReadWrite)
 	if (ReadWrite == WriteAccess) {
 		chanNum =  pQspidma->TxChNum;
 		SCB_CleanDCache_by_Addr((uint32_t *)pBuffer->pDataTx, pBuffer->TxDataSize);
-	} else if (ReadWrite == ReadAccess)
+	} else {
+		if (ReadWrite != ReadAccess)
+			TRACE_ERROR("%s QSPI Access Error\n\r", __FUNCTION__);
 		chanNum =  pQspidma->RxChNum;
-	else
-		TRACE_ERROR("%s QSPI Access Error\n\r", __FUNCTION__);
+	}
 
 	/* Start DMA 0(RX) && 1(TX) */
 	if (XDMAD_StartTransfer(pQspidma->pXdmad, chanNum))
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/tc.c b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/tc.c
index 1263a81..4ef9bd9 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/tc.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/tc.c
@@ -70,7 +70,11 @@
  *         Headers
  *-----------------------------------------------------------------------------*/
 
+#ifndef __rtems__
 #include "board.h"
+#else /* __rtems__ */
+#include <chip.h>
+#endif /* __rtems__ */
 
 #include <assert.h>
 
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/usart.c b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/usart.c
index 313d9c3..f438d31 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/usart.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/usart.c
@@ -68,6 +68,10 @@ void USART_SetBaudrate(Usart *pUsart,
 	/* Configure baudrate*/
 	BaudError = 10;
 	OverSamp = 0;
+#ifdef __rtems__
+	CD = 0;
+	FP = 0;
+#endif /* __rtems__ */
 
 	/*Asynchronous*/
 	if ((pUsart->US_MR & US_MR_SYNC) == 0) {
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/xdmad.c b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/xdmad.c
index e74fbb9..972b0e7 100644
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/xdmad.c
+++ b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/xdmad.c
@@ -62,6 +62,9 @@
  *----------------------------------------------------------------------------*/
 
 #include "chip.h"
+#ifdef __rtems__
+#include "../../../utils/utility.h"
+#endif /* __rtems__ */
 #include <assert.h>
 static uint8_t xDmad_Initialized = 0;
 



More information about the vc mailing list