summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5c9d087)
raw | patch | inline | side by side (parent: 5c9d087)
author | Jacob Stiffler <j-stiffler@ti.com> | |
Fri, 1 Nov 2019 18:55:48 +0000 (14:55 -0400) | ||
committer | Jacob Stiffler <j-stiffler@ti.com> | |
Fri, 1 Nov 2019 18:55:48 +0000 (14:55 -0400) |
Development of uart-lld has been relocated here from:
* Repo: https://git.ti.com/keystone-rtos/uart-lld
* Branch: master
* Commit ID: db6f0ffecf762e519c01f112a284651546043d9e
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
* Repo: https://git.ti.com/keystone-rtos/uart-lld
* Branch: master
* Commit ID: db6f0ffecf762e519c01f112a284651546043d9e
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
370 files changed:
diff --git a/packages/ti/drv/uart/.gitignore b/packages/ti/drv/uart/.gitignore
--- /dev/null
@@ -0,0 +1,27 @@
+*.swp
+*~
+.dlls
+.executables
+.interfaces
+.libraries
+.xdcenv.mak
+Settings.h
+Settings.xdc
+build/c66/
+build/k2[heklg]/
+build/am57*/
+build/am335x/
+build/am437x/
+build/m4/
+build/armv7/
+docs/Doxyfile
+docs/doxygen/
+example/sample/*/*/bios/src
+test/*/*/bios/src
+uartver.h
+lib/
+package.mak
+package/
+packages/
+*.o
+*.dep
diff --git a/packages/ti/drv/uart/COPYING.txt b/packages/ti/drv/uart/COPYING.txt
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2014-present, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
diff --git a/packages/ti/drv/uart/Settings.xdc.xdt b/packages/ti/drv/uart/Settings.xdc.xdt
--- /dev/null
@@ -0,0 +1,77 @@
+\r
+%%{\r
+/*!\r
+ * This template implements the Settings.xdc\r
+ */ \r
+ /* Versioning */\r
+ var ver = this;\r
+ for each(i=0;i<ver.length;i++)\r
+ {\r
+ if(String(ver[i]).length < 2)\r
+ {\r
+ ver[i]="0"+ver[i];\r
+ }\r
+ }\r
+ \r
+ var packageVersion = "\""+ver[0]+"."+ver[1]+"."+ver[2]+"."+ver[3]+"\"";\r
+\r
+%%}\r
+\r
+module Settings\r
+{\r
+ config string uartVersionString = `packageVersion`;\r
+ /*! This variable is to control the SoC type selection.\r
+ * By default this variable is set to NULL.\r
+ * \r
+ * To use UART for the selected device, add the following lines to config\r
+ * file and set the deviceType correctly:\r
+ *\r
+ * var uartSettings = xdc.useModule ('ti.drv.uart.Settings');\r
+ * uartSettings.socType = "am572x";\r
+ * \r
+ */\r
+ metaonly config string socType = "";\r
+ /*! This variable is to control the DMA type selection.\r
+ * By default this variable is set to false.\r
+ * \r
+ * To use DMA SoC LIbrary for the selected device, add the following lines to config\r
+ * file and set the useSocDma correctly:\r
+ *\r
+ * var uartSettings = xdc.useModule ('ti.drv.uart.Settings');\r
+ * uartSettings.useDma = "true";\r
+ * \r
+ */\r
+ metaonly config string useDma = "false"; \r
+ /*! This flag is used to indicate whether or not the benchmarking code\r
+ * (defined in the profilingHooks class) will be used in the project.\r
+ * Note that a separate library has been compiled and will be used\r
+ * ($NAME).profiling.a($SUFFIX). This is set in the *.cfg file.\r
+ */\r
+ config Bool enableProfiling = false;\r
+ \r
+ /*! This variable is to control the device library type selection.\r
+ * By default this variable is set to release.\r
+ * \r
+ * To use CSL to use the debug/release library, add the following lines to config\r
+ * file and set the library profile accordingly:\r
+ * \r
+ * var Uart Settings = xdc.useModule ('ti.Uart.Settings');\r
+ * UartSettings.libProfile = "debug";\r
+ * \r
+ */\r
+ metaonly config string libProfile = "release"; \r
+\r
+ /*! This variable controls whether or not UART SW IP (PRU firmware) will be \r
+ * used in the project.\r
+ * \r
+ * By default this variable is set to false.\r
+ * \r
+ * To use UART SW IP for the selected device, add the following lines to config\r
+ * file and set the enableSwIp correctly:\r
+ *\r
+ * var uartSettings = xdc.useModule ('ti.drv.uart.Settings');\r
+ * uartSettings.enableSwIp = true;\r
+ * \r
+ */\r
+ config Bool enableSwIp = false;\r
+}\r
diff --git a/packages/ti/drv/uart/UART.h b/packages/ti/drv/uart/UART.h
--- /dev/null
@@ -0,0 +1,762 @@
+/*
+ * Copyright (c) 2014-2019, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * \defgroup DRV_UART_MODULE UART Driver
+ *
+ * @{
+ */
+/* @} */
+
+/**
+ * \ingroup DRV_UART_MODULE
+ * \defgroup DRV_UART_API_MODULE UART Driver API
+ * UART driver interface
+ *
+ * @{
+ */
+
+/** ============================================================================
+ * @file UART.h
+ *
+ * @brief UART driver interface
+ *
+ * The UART header file should be included in an application as follows:
+ * @code
+ * #include <ti/drv/uart/UART.h>
+ * @endcode
+ *
+ * # Operation #
+ * The UART driver simplifies reading and writing to any of the UART
+ * peripherals on the board with multiple modes of operation and performance.
+ * These include blocking, non-blocking, and polling as well as text/binary
+ * mode, echo and return characters. The boards UART peripheral and pins must
+ * be configured before initializing the UART driver. The application
+ * initializes the UART driver by calling UART_init() and is then ready to
+ * open a UART by calling UART_open() and passing in a UART parameters data
+ * structure.
+ *
+ * The APIs in this driver serve as an interface to a typical TI-RTOS
+ * application. The specific peripheral implementations are responsible to
+ * create all the OS specific primitives to allow for thread-safe
+ * operation.
+ *
+ * ## Opening the driver #
+ *
+ * @code
+ * UART_Handle handle;
+ * UART_Params params;
+ *
+ * UART_Params_init(¶ms);
+ * params.baudRate = someNewBaudRate;
+ * params.writeDataMode = UART_DATA_BINARY;
+ * params.readDataMode = UART_DATA_BINARY;
+ * params.readReturnMode = UART_RETURN_FULL;
+ * params.readEcho = UART_ECHO_OFF;
+ * handle = UART_open(someUART_configIndexValue, ¶ms);
+ * if (!handle) {
+ * System_printf("UART did not open");
+ * }
+ * @endcode
+ *
+ * ## Writing data #
+ *
+ * @code
+ * const unsigned char hello[] = "Hello World\n";
+ *
+ * ret = UART_write(handle, hello, sizeof(hello));
+ * System_printf("The UART wrote %d bytes\n", ret);
+ * @endcode
+ *
+ * ## Reading data #
+ *
+ * @code
+ * unsigned char rxBuffer[20];
+ *
+ * ret = UART_read(handle, rxBuffer, sizeof(rxBuffer));
+ * System_printf("The UART read %d bytes\n", ret);
+ * @endcode
+ *
+ * # Implementation #
+ *
+ * This module serves as the main interface for TI-RTOS
+ * applications. Its purpose is to redirect the module's APIs to specific
+ * peripheral implementations which are specified using a pointer to a
+ * UART_FxnTable.
+ *
+ * The UART driver interface module is joined (at link time) to a
+ * NULL-terminated array of UART_Config data structures named *UART_config*.
+ * *UART_config* is implemented in the application with each entry being an
+ * instance of a UART peripheral. Each entry in *UART_config* contains a:
+ * - (UART_FxnTable *) to a set of functions that implement a UART peripheral
+ * - (void *) data object that is associated with the UART_FxnTable
+ * - (void *) hardware attributes that are associated to the UART_FxnTable
+ *
+ *
+ * ============================================================================
+ */
+
+#ifndef ti_drivers_UART__include
+#define ti_drivers_UART__include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stddef.h>
+
+
+#define UART_SUCCESS ((int32_t)(0))
+#define UART_ERROR (-((int32_t)1))
+
+/*!
+ * @brief A handle that is returned from a UART_open() call.
+ */
+typedef struct UART_Config_s *UART_Handle;
+
+/*!
+ * @brief The definition of a callback function used by the UART driver
+ * when used in ::UART_MODE_CALLBACK
+ *
+ * @param UART_Handle UART_Handle
+ *
+ * @param buf Pointer to read/write buffer
+ *
+ * @param count Number of elements read/written
+ */
+typedef void (*UART_Callback) (UART_Handle handle, void *buf, size_t count);
+
+/*!
+ * @brief UART transaction timeout define
+ */
+#define UART_NO_WAIT ((uint32_t)0U)
+#define UART_WAIT_FOREVER (~((uint32_t)0U))
+
+/*!
+ * @brief Transfer API version.
+ */
+typedef enum UART_TransferApiVer_s {
+ UART_TRANSFER_API_VER_1 = 1,
+ UART_TRANSFER_API_VER_2 = 2
+
+} UART_TransferApiVer;
+
+/*!
+ * @brief Transfer status codes that are set by the UART driver.
+ */
+typedef enum UART_TransferStatus_s {
+ UART_TRANSFER_STATUS_SUCCESS = 0,
+ UART_TRANSFER_STATUS_TIMEOUT, /* Time out error */
+ UART_TRANSFER_STATUS_ERROR_BI, /* Break condition error */
+ UART_TRANSFER_STATUS_ERROR_FE, /* Framing error */
+ UART_TRANSFER_STATUS_ERROR_PE, /* Parity error */
+ UART_TRANSFER_STATUS_ERROR_OE, /* Overrun error */
+ UART_TRANSFER_STATUS_ERROR_OTH /* Other error */
+
+} UART_TransferStatus;
+
+/*!
+ * @brief
+ * A ::UART_Transaction data structure is used with UART_read2(), UART_write2() and UART_Callback2()
+ */
+typedef struct UART_Transaction_s {
+ /* User input (write-only) fields */
+ void *buf; /**< void * to a buffer with data to be transferred */
+ uint32_t timeout; /**< Timeout for this transaction */
+
+ /* User input (write-only) and output (read-only) fields */
+ uint32_t count; /**< Number of bytes for this transaction */
+
+ /* User output (read-only) fields */
+ UART_TransferStatus status; /**< Status code set by UART_read2() and UART_write2() */
+
+ /* Driver-use only fields */
+} UART_Transaction;
+
+/*!
+ * @brief The definition of a callback2 function used by the UART driver
+ * when used in ::UART_MODE_CALLBACK
+ *
+ * @param UART_Handle UART_Handle
+ *
+ * @param transaction A pointer to a UART_Transaction. All of the fields within
+ * transaction except UART_Transaction.count and
+ * UART_Transaction.status are WO (write-only) unless
+ * otherwise noted in the driver implementations. If a
+ * transaction timeout or error has occured,
+ * UART_Transaction.count will contain the number of bytes
+ * that were transferred.
+ */
+typedef void (*UART_Callback2) (UART_Handle handle, UART_Transaction *transaction);
+
+/*!
+ * @brief UART mode settings
+ *
+ * This enum defines the read and write modes for the
+ * configured UART.
+ */
+typedef enum UART_Mode_e {
+ /*!
+ * Uses a semaphore to block while data is being sent. Context of the call
+ * must be a Task.
+ */
+ UART_MODE_BLOCKING,
+
+ /*!
+ * Non-blocking and will return immediately. When the transfer by the Hwi
+ * is finished the configured callback function is called.
+ */
+ UART_MODE_CALLBACK,
+} UART_Mode;
+
+/*!
+ * @brief UART return mode settings
+ *
+ * This enumeration defines the return modes for UART_read and UART_readPolling.
+ * UART_RETURN_FULL unblocks or performs a callback when the read buffer has
+ * been filled.
+ * UART_RETURN_NEWLINE unblocks or performs a callback whenever a newline
+ * character has been received.
+ */
+typedef enum UART_ReturnMode_e {
+ /*! Unblock/callback when buffer is full. */
+ UART_RETURN_FULL,
+
+ /*! Unblock/callback when newline character is received. */
+ UART_RETURN_NEWLINE
+} UART_ReturnMode;
+
+/*!
+ * @brief UART data mode settings
+ *
+ * This enumeration defines the data mode for read and write.
+ * If the DataMode is text for write, write will add a return before a newline
+ * character. If the DataMode is text for a read, read will replace a return
+ * with a newline. This effectively treats all device line endings as LF and
+ * all host PC line endings as CRLF.
+ */
+typedef enum UART_DataMode_e {
+ UART_DATA_BINARY, /*!< Data is not processed */
+ UART_DATA_TEXT /*!< Data is processed according to above */
+} UART_DataMode;
+
+/*!
+ * @brief UART echo settings
+ *
+ * This enumeration defines if the driver will echo data.
+ */
+typedef enum UART_Echo_e {
+ UART_ECHO_OFF = 0, /*!< Data is not echoed */
+ UART_ECHO_ON = 1 /*!< Data is echoed */
+} UART_Echo;
+
+/*!
+ * @brief UART data length settings
+ *
+ * This enumeration defines the UART data lengths.
+ */
+
+typedef enum UART_LEN_e {
+ UART_LEN_5 = 0, /*!< Data length is 5 */
+ UART_LEN_6 = 1, /*!< Data length is 6 */
+ UART_LEN_7 = 2, /*!< Data length is 7 */
+ UART_LEN_8 = 3, /*!< Data length is 8 */
+#ifdef PRU_ICSS_FW // PRU UART FW SW IP only
+ UART_LEN_9 = 4 /*!< Data length is 9 */
+#endif
+} UART_LEN;
+
+/*!
+ * @brief UART stop bit settings
+ *
+ * This enumeration defines the UART stop bits.
+ */
+typedef enum UART_STOP_e {
+ UART_STOP_ONE = 0, /*!< One stop bit */
+ UART_STOP_TWO = 1, /*!< Two stop bits */
+#ifdef PRU_ICSS_FW // PRU UART FW SW IP only, currently unsupported by HW IP driver
+ UART_STOP_ONEP5 = 2 /*!< One plus one half stop bits */
+#endif
+} UART_STOP;
+
+/*!
+ * @brief UART parity type settings
+ *
+ * This enumeration defines the UART parity types.
+ */
+typedef enum UART_PAR_e {
+ UART_PAR_NONE = 0, /*!< No parity */
+ UART_PAR_EVEN = 1, /*!< Parity bit is even */
+ UART_PAR_ODD = 2, /*!< Parity bit is odd */
+ UART_PAR_ZERO = 3, /*!< Parity bit is always zero */
+ UART_PAR_ONE = 4 /*!< Parity bit is always one */
+} UART_PAR;
+
+#ifdef PRU_ICSS_FW // PRU UART FW only
+/*!
+ * @brief UART flow control settings
+ *
+ * This enumeration defines the UART parity types.
+ */
+typedef enum UART_FC_TYPE_e {
+ UART_FC_NONE = 0, /*!< No flow control */
+ UART_FC_HW = 1 /*!< Hardware flow control */
+} UART_FC_TYPE;
+#endif
+
+/*!
+ * @brief Basic UART Parameters
+ */
+typedef struct UART_Params_s {
+ UART_Mode readMode; /*!< Mode for all read calls */
+ UART_Mode writeMode; /*!< Mode for all write calls */
+ uint32_t readTimeout; /*!< Timeout for read semaphore */
+ uint32_t writeTimeout; /*!< Timeout for write semaphore */
+ UART_Callback readCallback; /*!< Pointer to read callback */
+ UART_Callback writeCallback; /*!< Pointer to write callback */
+ UART_ReturnMode readReturnMode; /*!< Receive return mode */
+ UART_DataMode readDataMode; /*!< Type of data being read */
+ UART_DataMode writeDataMode; /*!< Type of data being written */
+ UART_Echo readEcho; /*!< Echo received data back */
+ uint32_t baudRate; /*!< Baud rate for UART */
+ UART_LEN dataLength; /*!< Data length for UART */
+ UART_STOP stopBits; /*!< Stop bits for UART */
+ UART_PAR parityType; /*!< Parity bit type for UART */
+ UART_Callback2 readCallback2; /**< Pointer to read callback2 */
+ UART_Callback2 writeCallback2; /**< Pointer to write callback2 */
+#ifdef PRU_ICSS_FW // PRU UART FW only, currently unsupported by HW IP driver
+ UART_FC_TYPE flowControlType; /*!< Flow Control type */
+ uint8_t hwFlowControlThr; /*!< Hardware flow Control threshold, 0-0x100 */
+#endif
+} UART_Params;
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_CloseFxn().
+ */
+typedef void (*UART_CloseFxn) (UART_Handle handle);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_control().
+ */
+typedef int32_t (*UART_ControlFxn) (UART_Handle handle,
+ uint32_t cmd,
+ void *arg);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_init().
+ */
+typedef void (*UART_InitFxn) (UART_Handle handle);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_OpenFxn().
+ */
+typedef UART_Handle (*UART_OpenFxn) (UART_Handle handle,
+ const UART_Params *params);
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_ReadFxn().
+ */
+typedef int32_t (*UART_ReadFxn) (UART_Handle handle, void *buffer,
+ size_t size);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_ReadPollingFxn().
+ */
+typedef int32_t (*UART_ReadPollingFxn) (UART_Handle handle, void *buffer,
+ size_t size);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_ReadCancelFxn().
+ */
+typedef void (*UART_ReadCancelFxn) (UART_Handle handle);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_CloseFxn().
+ */
+typedef int32_t (*UART_WriteFxn) (UART_Handle handle,
+ const void *buffer,
+ size_t size);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_WritePollingFxn().
+ */
+typedef int32_t (*UART_WritePollingFxn) (UART_Handle handle,
+ const void *buffer,
+ size_t size);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_WriteCancelFxn().
+ */
+typedef void (*UART_WriteCancelFxn) (UART_Handle handle);
+
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_ReadFxn2().
+ */
+typedef int32_t (*UART_ReadFxn2) (UART_Handle handle,
+ UART_Transaction *transaction);
+/*!
+ * @brief A function pointer to a driver specific implementation of
+ * UART_WriteFxn2().
+ */
+typedef int32_t (*UART_WriteFxn2) (UART_Handle handle,
+ UART_Transaction *transaction);
+
+/*!
+ * @brief The definition of a UART function table that contains the
+ * required set of functions to control a specific UART driver
+ * implementation.
+ */
+typedef struct UART_FxnTable_s {
+ /*! Function to close the specified peripheral */
+ UART_CloseFxn closeFxn;
+ /*! Function to implementation specific control function */
+ UART_ControlFxn controlFxn;
+ /*! Function to initialize the given data object */
+ UART_InitFxn uartInitFxn;
+ /*! Function to open the specified peripheral */
+ UART_OpenFxn openFxn;
+ /*! Function to read from the specified peripheral */
+ UART_ReadFxn readFxn;
+ /*! Function to read via polling from the specified peripheral */
+ UART_ReadPollingFxn readPollingFxn;
+ /*! Function to cancel a read from the specified peripheral */
+ UART_ReadCancelFxn readCancelFxn;
+ /*! Function to write from the specified peripheral */
+ UART_WriteFxn writeFxn;
+ /*! Function to write via polling from the specified peripheral */
+ UART_WritePollingFxn writePollingFxn;
+ /*! Function to cancel a write from the specified peripheral */
+ UART_WriteCancelFxn writeCancelFxn;
+ /*! Function to read from the specified peripheral */
+ UART_ReadFxn2 readFxn2;
+ /*! Function to write from the specified peripheral */
+ UART_WriteFxn2 writeFxn2;
+
+} UART_FxnTable;
+
+
+/*! @brief UART Global configuration */
+typedef struct UART_Config_s {
+ /*! Pointer to a table of a driver-specific implementation of UART functions */
+ UART_FxnTable const *fxnTablePtr;
+
+ /*! Pointer to a driver specific data object */
+ void *object;
+
+ /*! Pointer to a driver specific hardware attributes structure */
+ void const *hwAttrs;
+} UART_Config;
+
+#define UART_MAX_CONFIG_CNT (14U)
+typedef UART_Config UART_config_list[UART_MAX_CONFIG_CNT];
+
+
+/*!
+ * @brief Function to closes a given UART peripheral specified by the UART
+ * handle.
+ *
+ * @pre UART_open() had to be called first.
+ *
+ * @param uartHnd A UART_Handle returned from UART_open
+ *
+ * @sa UART_open
+ */
+extern void UART_close(UART_Handle uartHnd);
+
+/*!
+ * @brief Function performs implementation specific features on a given
+ * UART_Handle.
+ *
+ * @pre UART_open() has to be called first.
+ *
+ * @param uartHnd A UART handle returned from UART_open()
+ *
+ * @param cmd A command value defined by the driver specific implementation
+ *
+ * @param arg An optional argument that is accompanied with cmd
+ *
+ * @return Implementation specific return codes. Negative values indicate
+ * unsuccessful operations.
+ *
+ * @sa UART_open()
+ */
+extern int32_t UART_control(UART_Handle uartHnd, uint32_t cmd, void *arg);
+
+/*!
+ * @brief Function to initializes the UART module
+ *
+ * @pre The UART controller needs to be powered up and clocked. The
+ * UART_config structure must exist and be persistent before this
+ * function can be called. This function must also be called before
+ * any other UART driver APIs.
+ */
+extern void UART_init(void);
+
+/*!
+ * @brief Function to initialize a given UART peripheral specified by the
+ * particular index value. The parameter specifies which mode the UART
+ * will operate.
+ *
+ * @pre UART controller has been initialized
+ *
+ * @param idx Logical peripheral number indexed into the HWAttrs
+ * table
+ *
+ * @param uartParams Pointer to an parameter block, if NULL it will use
+ * default values
+ *
+ * @return A UART_Handle on success or a NULL on an error or if it has been
+ * already opened
+ *
+ * @sa UART_close
+ */
+extern UART_Handle UART_open(uint32_t idx, UART_Params *uartParams);
+
+/*!
+ * @brief Function to initialize the UART_Params struct to its defaults
+ *
+ * Defaults values are:
+ * readMode = UART_MODE_BLOCKING;
+ * writeMode = UART_MODE_BLOCKING;
+ * readTimeout = BIOS_WAIT_FOREVER;
+ * writeTimeout = BIOS_WAIT_FOREVER;
+ * readCallback = NULL;
+ * writeCallback = NULL;
+ * readReturnMode = UART_RETURN_NEWLINE;
+ * writeDataMode = UART_DATA_TEXT;
+ * readDataMode = UART_DATA_TEXT;
+ * readEcho = UART_ECHO_ON;
+ * baudRate = 115200;
+ * stopBits = UART_STOP_ONE;
+ * parityType = UART_PAR_NONE;
+ *
+ * @param uartParams Parameter structure to initialize
+ */
+extern void UART_Params_init(UART_Params *uartParams);
+
+
+/*!
+ * @brief Function that writes data to a UART
+ *
+ * This function initiates an operation to write data to a UART controller.
+ *
+ * In UART_MODE_BLOCKING, UART_write will block task execution until all
+ * the data in buffer has been written.
+ *
+ * In UART_MODE_CALLBACK, UART_write does not block task execution an calls a
+ * callback function specified by writeCallback.
+ *
+ * @param uartHnd A UART_Handle
+ *
+ * @param buffer A pointer to buffer containing data to be written
+ *
+ * @param size The number of bytes in buffer that should be written
+ * onto the UART.
+ *
+ * @return Returns the number of bytes that have been written to the UART,
+ * UART_ERROR on an error.
+ */
+extern int32_t UART_write(UART_Handle uartHnd, const void *buffer, size_t size);
+
+/*!
+ * @brief Function that writes data to a UART
+ *
+ * This function initiates an operation to write data to a UART controller.
+ *
+ * UART_write will not return until all the data was written to the UART.
+ *
+ * @param uartHnd A UART_Handle
+ *
+ * @param buffer A pointer to buffer containing data to be written
+ *
+ * @param size The number of bytes in buffer that should be written
+ * onto the UART.
+ *
+ * @return Returns the number of bytes that have been written to the UART,
+ * UART_ERROR on an error.
+ */
+extern int32_t UART_writePolling(UART_Handle uartHnd, const void *buffer,
+ size_t size);
+
+/*!
+ * @brief Function that cancels a UART_write function call.
+ *
+ * This function cancels an operation to write data to a UART controller
+ * when in UART_MODE_CALLBACK.
+ *
+ * @param handle A UART_Handle
+ */
+extern void UART_writeCancel(UART_Handle handle);
+
+/*!
+ * @brief Function that read data from a UART
+ *
+ * This function initiates an operation to read data from a UART controller.
+ *
+ * In UART_MODE_BLOCKING, UART_read will block task execution until all
+ * the data in buffer has been read.
+ *
+ * In UART_MODE_CALLBACK, UART_read does not block task execution an calls a
+ * callback function specified by readCallback.
+ *
+ * @param handle A UART_Handle
+ *
+ * @param buffer A pointer to an empty buffer in which data should be
+ * written to
+ *
+ * @param size The number of bytes to be written into buffer
+ *
+ * @return Returns the number of bytes that have been read from the UART,
+ * UART_ERROR on an error.
+ */
+extern int32_t UART_read(UART_Handle handle, void *buffer, size_t size);
+
+/*!
+ * @brief Function that reads data from a UART
+ *
+ * This function initiates an operation to read data from a UART controller.
+ *
+ * UART_readPolling will not return until size data was read to the UART.
+ *
+ * @param handle A UART_Handle
+ *
+ * @param buffer A pointer to an empty buffer in which data should be
+ * written to
+ *
+ * @param size The number of bytes to be written into buffer
+ *
+ * @return Returns the number of bytes that have been read from the UART,
+ * UART_ERROR on an error.
+ */
+extern int32_t UART_readPolling(UART_Handle handle, void *buffer, size_t size);
+
+/*!
+ * @brief Function that cancels a UART_read function call.
+ *
+ * This function cancels an operation to read data from a UART controller
+ * when in UART_MODE_CALLBACK.
+ *
+ * @param handle A UART_Handle
+ */
+extern void UART_readCancel(UART_Handle handle);
+
+/*!
+ * @brief Extended function that read data from a UART
+ *
+ * This function initiates an operation to read data from a UART controller.
+ *
+ * In UART_MODE_BLOCKING, UART_read2 will block task execution until all
+ * the data in buffer has been read.
+ *
+ * In UART_MODE_CALLBACK, UART_read2 does not block task execution an calls a
+ * callback function specified by readCallback.
+ *
+ * @param handle A UART_Handle
+ *
+ * @param uartTrans A pointer to a UART_Transaction. All of the fields within
+ * transaction except UART_Transaction.count and
+ * UART_Transaction.status are WO (write-only) unless
+ * otherwise noted in the driver implementations. If a
+ * transaction timeout or error has occured,
+ * UART_Transaction.count will contain the number of bytes
+ * that were transferred. In the callback mode, the application
+ * allocates transaction memory and UART driver owns the pointer
+ * unitil it is returned to the application via the callback
+ * function, thus the memory should not be allocated on the
+ * stack, and dynamic free must occur in the callback (not
+ * immediately after calling read2/write2)
+ *
+ * @return Returns UART_SUCCESS or UART_ERROR on an error.
+ */
+extern int32_t UART_read2(UART_Handle handle, UART_Transaction *uartTrans);
+
+/*!
+ * @brief Extended function that writes data to a UART
+ *
+ * This function initiates an operation to write data to a UART controller.
+ *
+ * In UART_MODE_BLOCKING, UART_write will block task execution until all
+ * the data in buffer has been written.
+ *
+ * In UART_MODE_CALLBACK, UART_write does not block task execution an calls a
+ * callback function specified by writeCallback.
+ *
+ * @param handle A UART_Handle
+ *
+ * @param uartTrans A pointer to a UART_Transaction. All of the fields within
+ * transaction except UART_Transaction.count and
+ * UART_Transaction.status are WO (write-only) unless
+ * otherwise noted in the driver implementations. If a
+ * transaction timeout or error has occured,
+ * UART_Transaction.count will contain the number of bytes
+ * that were transferred. In the callback mode, the application
+ * allocates transaction memory and UART driver owns the pointer
+ * unitil it is returned to the application via the callback
+ * function, thus the memory should not be allocated on the
+ * stack, and dynamic free must occur in the callback (not
+ * immediately after calling read2/write2)
+ *
+ * @return Returns UART_SUCCESS or UART_ERROR on an error.
+ */
+extern int32_t UART_write2(UART_Handle handle, UART_Transaction *uartTrans);
+
+/*!
+ * @brief Function to initialize the UART_Transaction struct to its defaults
+ *
+ * @param uartTrans A pointer to a UART_Transaction to be initialized.
+ *
+ * @return uartTrans initialized with default values such as:
+ * uartTrans->buf = NULL;
+ * uartTrans->timeout = UART_WAIT_FOREVER;
+ * uartTrans->count = 0;
+ * uartTrans->status = UART_TRANSFER_STATUS_SUCCESS;
+ */
+extern void UART_transactionInit(UART_Transaction *uartTrans);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ti_drivers_UART__include */
+
+/* @} */
diff --git a/packages/ti/drv/uart/UART_stdio.h b/packages/ti/drv/uart/UART_stdio.h
--- /dev/null
@@ -0,0 +1,270 @@
+/**
+ * @file UART_stdio.h
+ *
+ * @brief This header file contains function prototypes which interface
+ * interactively with the user through the serial console to perform
+ * some utility operations.
+ */
+/*
+ * Copyright (c) 2014-2015, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef UARTSTDIO_H_
+#define UARTSTDIO_H_
+
+#include <stdint.h>
+#include <stdarg.h>
+
+#include <ti/drv/uart/UART.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/****************************************************************************
+** MACRO DEFINITIONS
+****************************************************************************/
+
+#ifndef E_PASS
+#define E_PASS ((int32_t)(0))
+#endif
+#ifndef E_FAIL
+#define E_FAIL (-((int32_t)1))
+#endif
+
+#define S_PASS (0)
+/****************************************************************************
+** FUNCTION PROTOTYPES
+****************************************************************************/
+
+/**
+ * @brief This function writes data from a specified buffer onto the
+ * transmitter FIFO of UART.
+ *
+ * @param pTxBuffer Pointer to a buffer in the transmitter.
+ * @param numBytesToWrite Number of bytes to be transmitted to the
+ * transmitter FIFO. The user has the freedom to not
+ * specify any valid value for this if he wants to
+ * print until the occurence of a NULL character.
+ * In this case, he has to pass a negative value as
+ * this parameter.
+ *
+ * @return Number of bytes written to the transmitter FIFO.
+ *
+ * @note 1> Whenever a null character(\\0) is encountered in the
+ * data to be transmitted, the transmission is stopped. \n
+ * 2> - Whenever the transmitter data has a new line character(\\n),
+ * it is interpreted as a new line(\\n) + carraige return(\\r)
+ * characters. This is because the serial console interprets a
+ * new line character as it is and does not introduce a carraige
+ * return. \n
+ *
+ * Some example function calls of this function are: \n
+ *
+ * UARTPuts(txArray, -2): This shall print the contents of txArray[]
+ * until the occurence of a NULL character. \n
+ *
+ * UARTPuts("Hello World", 8): This shall print the first 8 characters
+ * of the string shown. \n
+ *
+ * UARTPuts("Hello World", 20): This shall print the string shown until
+ * the occurence of the NULL character. Here, the NULL character is
+ * encountered earlier than the length of 20 bytes.\n
+ *
+ */
+uint32_t UART_puts(const char *pTxBuffer, int32_t numBytesToWrite);
+
+/**
+ * @brief This function reads data from the receiver FIFO to a buffer
+ * in the receiver.
+ *
+ * @param pRxBuffer Pointer to a buffer in the receiver.
+ * @param numBytesToRead The number of bytes the receiver buffer can hold.
+ * However, if the user wishes not to specify this
+ * parameter, he has freedom to do so. In that case,
+ * the user has to pass a negative value for this
+ * parameter.
+ *
+ * @return Number of bytes read from the receiver FIFO.
+ *
+ * @note The two exit points for this function are:
+ * 1> To enter an ESC character or a carraige return character('Enter'
+ * key on the Keyboard).\n
+ * 2> Specify a limit to the number of bytes to be read. \n
+ *
+ * Some example function calls of this function are:
+ *
+ * UARTGets(rxBuffer, -2): This reads characters from
+ * the receiver FIFO of UART until the occurence of a carriage return
+ * ('Enter' key on the keyboard pressed) or an ESC character.
+ *
+ * UARTGets(rxBuffer, 12): This reads characters until
+ * 12 characters have been read or until an occurence of a carriage
+ * return or an ESC character, whichever occurs first.
+ */
+uint32_t UART_gets(char *pRxBuffer, int32_t numBytesToRead);
+
+
+/**
+ * Writes a string of characters to the UART output.
+ *
+ * @param pcBuf points to a buffer containing the string to transmit.
+ * @param ulLen is the length of the string to transmit.
+ *
+ * This function will transmit the string to the UART output. The number of
+ * characters transmitted is determined by the \e ulLen parameter. This
+ * function does no interpretation or translation of any characters. Since
+ * the output is sent to a UART, any LF (/n) characters encountered will be
+ * replaced with a CRLF pair.
+ *
+ * Besides using the \e ulLen parameter to stop transmitting the string, if a
+ * null character (0) is encountered, then no more characters will be
+ * transmitted and the function will return.
+ *
+ * In non-buffered mode, this function is blocking and will not return until
+ * all the characters have been written to the output FIFO. In buffered mode,
+ * the characters are written to the UART transmit buffer and the call returns
+ * immediately. If insufficient space remains in the transmit buffer,
+ * additional characters are discarded.
+ *
+ * @return Returns the count of characters written.
+ */
+int32_t UART_dataWrite(const char *pcBuf, uint32_t ulLen);
+
+/**
+ * A simple UART based printf function supporting \%c, \%d, \%p, \%s, \%u,
+ * \%x, and \%X.
+ *
+ * @param pcString is the format string.
+ * @param ... are the optional arguments, which depend on the contents of the
+ * format string.
+ *
+ * This function is very similar to the C library <tt>fprintf()</tt> function.
+ * All of its output will be sent to the UART. Only the following formatting
+ * characters are supported:
+ *
+ * - \%c to print a character
+ * - \%d to print a decimal value
+ * - \%s to print a string
+ * - \%u to print an unsigned decimal value
+ * - \%x to print a hexadecimal value using lower case letters
+ * - \%X to print a hexadecimal value using lower case letters (not upper case
+ * letters as would typically be used)
+ * - \%p to print a pointer as a hexadecimal value
+ * - \%\% to print out a \% character
+ *
+ * For \%s, \%d, \%u, \%p, \%x, and \%X, an optional number may reside
+ * between the \% and the format character, which specifies the minimum number
+ * of characters to use for that value; if preceded by a 0 then the extra
+ * characters will be filled with zeros instead of spaces. For example,
+ * ``\%8d'' will use eight characters to print the decimal value with spaces
+ * added to reach eight; ``\%08d'' will use eight characters as well but will
+ * add zeroes instead of spaces.
+ *
+ * The type of the arguments after \e pcString must match the requirements of
+ * the format string. For example, if an integer was passed where a string
+ * was expected, an error of some kind will most likely occur.
+ *
+ * @return None.
+ */
+void UART_printf(const char *pcString, ...);
+
+void UART_putc(uint8_t byteTx);
+
+
+uint8_t UART_getc(void);
+
+/**
+ * @brief This function initializes the specified UART instance for use for
+ * console operations , with a configuration specified by 'uartParams'
+ *
+ * @param instance - uart instance ID.
+ *
+ * @param uartParams - Configuration parameters.
+ *
+ * @return None.
+ *
+ */
+void UART_stdioInit2(uint32_t instance,UART_Params *uartParams);
+
+/**
+ * @brief This function initializes the specified UART instance for use for
+ * console operations.
+ *
+ * @param value - the UART instance number
+ *
+ * @return None.
+ *
+ */
+void UART_stdioInit(uint32_t value);
+
+
+/**
+ * @brief This function shall read the formatted input from UART console.
+ * Format specifier follows %[fill][width]specifier
+ * Following formatting specifier are supported.
+ * - %c to input a character.
+ * - %d to input a decimal value.
+ * - %s to input a string.
+ * - %u to input an unsigned decimal value.
+ * - %x, \%X to input a hexadecimal value using lower case letters.
+ * - %p to input a pointer as a hexadecimal value.
+ *
+ * @param pString Pointer to the format string.
+ *
+ * @retval S_PASS Sucessfully executed.
+ * @retval E_FAIL If an error occurred.
+ */
+int32_t UART_scanFmt(const char *pString, ...);
+
+/**
+ * @brief This function de-initializes the UART instance
+ * that is opened for console operations.
+ *
+ * @return None.
+ *
+ */
+void UART_stdioDeInit(void);
+
+/**
+ * @brief This function prints the status on the UART instance
+ * that is opened for console operations.
+ *
+ * @param statusString - string pointer.
+ *
+ * @return None.
+ *
+ */
+void UART_printStatus(const char *statusString);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/packages/ti/drv/uart/UART_ver.h b/packages/ti/drv/uart/UART_ver.h
--- /dev/null
@@ -0,0 +1,68 @@
+#ifndef _UARTVER_H
+#define _UARTVER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ============================================================= */
+/**
+ * @file UART_ver.h
+ *
+ * path ti/drv/uart/UART_ver.h
+ *
+ * @brief uart Driver Version Definitions
+ *
+ * ============================================================
+ * Copyright (c) Texas Instruments Incorporated 2009-2019
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+/**
+ * @brief This is the uart Driver Version. Versions numbers are encoded in the following
+ * format:
+ * 0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)
+ */
+#define UART_DRV_VERSION_ID (0x01000010)
+
+/**
+ * @brief This is the version string which describes the UART driver along with the
+ * date and build information.
+ */
+#define UART_DRV_VERSION_STR "uart Driver Revision: 01.00.00.16"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UARTVER_H */
diff --git a/packages/ti/drv/uart/UART_ver.h.xdt b/packages/ti/drv/uart/UART_ver.h.xdt
--- /dev/null
@@ -0,0 +1,100 @@
+%%{
+/*!
+ * This template implements the UART_ver.h
+ */
+ /* Versioning */
+ var ver = this;
+ var ver1 = [00,00,00,00];
+ var ver2 = [00,00,00,00];
+
+ for each(i=0;i<ver.length;i++)
+ {
+ if(String(ver[i]).length < 2)
+ {
+ ver1[i]="0"+ver[i];
+ }
+ else
+ {
+ ver1[i] = ver[i];
+ }
+
+ ver2[i] = Number(ver[i]).toString(16).toUpperCase();
+
+ if(String(ver2[i]).length < 2)
+ {
+ ver2[i]="0"+ver2[i];
+ }
+ }
+
+ var versionStr = "\""+"uart Driver Revision: "+ver1[0]+"."+ver1[1]+"."+ver1[2]+"."+ver1[3]+"\"";
+ var versionID = "(0x"+ver2[0]+ver2[1]+ver2[2]+ver2[3]+")";
+
+%%}
+#ifndef _UARTVER_H
+#define _UARTVER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ============================================================= */
+/**
+ * @file UART_ver.h
+ *
+ * path ti/drv/uart/UART_ver.h
+ *
+ * @brief uart Driver Version Definitions
+ *
+ * ============================================================
+ * Copyright (c) Texas Instruments Incorporated 2009-2017
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+/**
+ * @brief This is the uart Driver Version. Versions numbers are encoded in the following
+ * format:
+ * 0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)
+ */
+#define UART_DRV_VERSION_ID `versionID`
+
+/**
+ * @brief This is the version string which describes the UART driver along with the
+ * date and build information.
+ */
+#define UART_DRV_VERSION_STR `versionStr`
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UARTVER_H */
diff --git a/packages/ti/drv/uart/build/buildlib.xs b/packages/ti/drv/uart/build/buildlib.xs
--- /dev/null
@@ -0,0 +1,630 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Build Library Utilities\r
+ ******************************************************************************\r
+ * FILE NAME: buildlib.xs\r
+ *\r
+ * DESCRIPTION: \r
+ * This file contains common routines that are used by the various LLD\r
+ * components.\r
+ *\r
+ * Copyright (C) 2014-2015, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : listAllFiles\r
+ **************************************************************************\r
+ * DESCRIPTION :\r
+ * Utility function which lists all files with a specific extension \r
+ * present in a directory and any directory inside it.\r
+ **************************************************************************/\r
+function listAllFiles(ext, dir, recurse)\r
+{ \r
+ var srcFile = [];\r
+ var d;\r
+\r
+ /* If recurse parameter is not specified we default to recursive search. */\r
+ if (recurse == null)\r
+ recurse = true;\r
+\r
+ if (dir == undefined) \r
+ d = ".";\r
+ else \r
+ d = dir;\r
+\r
+ /* Get access to the current directory. */\r
+ var file = new java.io.File(d);\r
+\r
+ /* Check if the file exists and it is a directory. */\r
+ if (file.exists() && file.isDirectory()) \r
+ {\r
+ /* Get a list of all files in the specific directory. */\r
+ var fileList = file.listFiles();\r
+ for (var i = 0; i < fileList.length; i++) \r
+ {\r
+ /* Dont add the generated directory 'package' and any of its files \r
+ * to the list here. */\r
+ if (fileList[i].getName().matches("package") == false)\r
+ {\r
+ /* Check if the detected file is a directory */\r
+ if (fileList[i].isDirectory())\r
+ {\r
+ /* We will recurse into the subdirectory only if required to do so. */\r
+ if (recurse == true)\r
+ {\r
+ /* Generate the directory Name in which we will recurse. */ \r
+ var directoryName = d + "/" + fileList[i].getName();\r
+\r
+ /* Get a list of all files in this directory */\r
+ var fileListing = listAllFiles (ext, directoryName, recurse);\r
+ if (fileListing != null)\r
+ {\r
+ /* Return a list of all file names in the directory. */\r
+ for (var j = 0 ; j < fileListing.length; j++) \r
+ srcFile[srcFile.length++] = fileListing[j];\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /* This was a file. Check if the file name matches the extension */\r
+ if (fileList[i].getName().endsWith(ext) == true)\r
+ srcFile[srcFile.length++] = d + "/" + fileList[i].getName();\r
+ }\r
+ }\r
+ }\r
+\r
+ return srcFile;\r
+ }\r
+ return null;\r
+}\r
+\r
+\r
+function createMake(makefile)\r
+{\r
+ /* Create the main make file */\r
+ var fileModule = xdc.module('xdc.services.io.File');\r
+ if(makefile==undefined)\r
+ {\r
+ try{\r
+ makefile = fileModule.open("makefile", "w");\r
+ } catch (ex)\r
+ {\r
+ print("makefile cannot be written to. Please check Writing Permissions.");\r
+ java.lang.System.exit(1);\r
+ } \r
+ \r
+ Pkg.makePrologue += "\ninclude makefile\n"; \r
+ \r
+ Pkg.makeEpilogue += "\nclean::\n\t-$(RM) makefile\n";\r
+ makefile.writeLine("#*******************************************************************************");\r
+ makefile.writeLine("#* FILE PURPOSE: Top level makefile for Creating Component Libraries");\r
+ makefile.writeLine("#*******************************************************************************");\r
+ makefile.writeLine("#* FILE NAME: makefile");\r
+ makefile.writeLine("#*");\r
+ makefile.writeLine("#* DESCRIPTION: Defines Compiler tools paths, libraries , Build Options ");\r
+ makefile.writeLine("#*");\r
+ makefile.writeLine("#*");\r
+ makefile.writeLine("#*******************************************************************************");\r
+ makefile.writeLine("#*");\r
+ makefile.writeLine("# (Mandatory) Specify where various tools are installed.");\r
+\r
+ var file = xdc.module('xdc.services.io.File');\r
+ \r
+ \r
+ makefile.writeLine("\n# Output for prebuilt generated libraries");\r
+ makefile.writeLine("export LIBDIR ?= ./lib");\r
+ /* use sectti.exe from path */\r
+ makefile.writeLine("export SECTTI ?= sectti");\r
+\r
+ /* Create INCDIR from XDCPATH */\r
+ \r
+ /* copy the environment array from the current environment */\r
+ var env = java.lang.System.getenv();\r
+ var getxdcpath=String(java.lang.System.getenv("XDCPATH"));\r
+ getxdcpath= getxdcpath.replace(/\\/g,"/");\r
+ var keys = env.keySet().toArray();\r
+ var key;\r
+ var stat={};\r
+ var env_j=[];\r
+ var listxdcpath = new Array();\r
+ for (var i = 0; i < keys.length; i++) {\r
+ key = String(keys[i]);\r
+ if((key.match("INSTALL_PATH")) || (key.match("INSTALLDIR")))\r
+ {\r
+ var keyPath=String(env.get(key));\r
+ keyPath=keyPath.replace(/\\/g,"/");\r
+ var file = xdc.module('xdc.services.io.File');\r
+ keyPath=file.getDOSPath(keyPath);\r
+ if(getxdcpath.toString().match(keyPath))\r
+ {\r
+ listxdcpath.push({keyname: key,keypath: keyPath});\r
+ while(getxdcpath.toString().match(keyPath))\r
+ {\r
+ getxdcpath=getxdcpath.toString().replace(keyPath,"$("+key+")");\r
+ }\r
+ }\r
+ }\r
+ \r
+ }\r
+ var pkgroot="..";\r
+ for (var i = Pkg.name.split('.').length; i > 1; i--) {\r
+ pkgroot+="/..";\r
+ }\r
+ \r
+ makefile.writeLine("\n# ROOT Directory"); \r
+ makefile.writeLine("export ROOTDIR := "+pkgroot);\r
+ \r
+ makefile.writeLine("\n# INCLUDE Directory");\r
+ makefile.writeLine("export INCDIR := "+getxdcpath+";$(ROOTDIR)"); \r
+ \r
+ makefile.writeLine("\n# Common Macros used in make"); \r
+ makefile.writeLine("\nifndef RM"); \r
+ makefile.writeLine("export RM = rm -f");\r
+ makefile.writeLine("endif"); \r
+ \r
+ makefile.writeLine("\nifndef CP"); \r
+ makefile.writeLine("export CP = cp -p"); \r
+ makefile.writeLine("endif"); \r
+ \r
+ makefile.writeLine("\nexport MKDIR = mkdir -p");\r
+ \r
+ makefile.writeLine("\nifndef RMDIR"); \r
+ makefile.writeLine("export RMDIR = rm -rf");\r
+ makefile.writeLine("endif"); \r
+ \r
+ makefile.writeLine("\nifndef SED"); \r
+ makefile.writeLine("export SED = sed"); \r
+ makefile.writeLine("endif"); \r
+ \r
+ makefile.writeLine("\nifndef MAKE"); \r
+ makefile.writeLine("export MAKE = make"); \r
+ makefile.writeLine("endif"); \r
+\r
+ makefile.writeLine("\n# PHONY Targets"); \r
+ makefile.writeLine(".PHONY: all clean cleanall "); \r
+ \r
+ makefile.writeLine("\n# FORCE Targets"); \r
+ makefile.writeLine("FORCE: "); \r
+ \r
+ makefile.writeLine("\n# all rule"); \r
+ makefile.writeLine("all: .executables"); \r
+ makefile.writeLine(".executables: .libraries");\r
+ makefile.writeLine(".libraries:");\r
+ \r
+ makefile.writeLine("\n# Clean Rule"); \r
+ makefile.writeLine("clean:: clean_package"); \r
+ makefile.writeLine("# Clean Top Level Object Directory "); \r
+ makefile.writeLine("clean_package :\n\t$(RMDIR) $(LIBDIR)/*/"); \r
+ makefile.writeLine("\t$(RMDIR) package/cfg"); \r
+ }\r
+ else\r
+ {\r
+ try{\r
+ makefile = fileModule.open("makefile", "a");\r
+ } catch (ex)\r
+ {\r
+ print("makefile cannot be written to. Please check Writing Permissions.");\r
+ java.lang.System.exit(1);\r
+ } \r
+ \r
+ }\r
+\r
+ return makefile;\r
+}\r
+\r
+function createLibMake(device, objExtDir, makelibname,targetname, objectPath, useProfiling)\r
+{\r
+ var tooldir;\r
+ var cmdprefix;\r
+ var targetDir;\r
+ var stringname=String(targetname).replace("(xdc.bld.ITarget.Module)","");\r
+ var benchSuffix = "";\r
+\r
+ if (useProfiling == true) {\r
+ benchSuffix = "_bench";\r
+ }\r
+ \r
+ switch(stringname)\r
+ {\r
+ case String(C66LE):\r
+ tooldir="C6X_GEN_INSTALL_PATH";\r
+ cmdprefix="";\r
+ targetDir="c66/release";\r
+ targetname=C66LE;\r
+ break;\r
+ case String(C66BE):\r
+ tooldir="C6X_GEN_INSTALL_PATH";\r
+ cmdprefix="";\r
+ targetDir="c66/release";\r
+ targetname=C66BE;\r
+ break;\r
+ case String(A15LE):\r
+ tooldir="TOOLCHAIN_PATH_A15"; \r
+ cmdprefix="CROSS_TOOL_PRFX";\r
+ targetDir="a15/release";\r
+ targetname=A15LE;\r
+ break;\r
+ case String(A9LE):\r
+ tooldir="TOOLCHAIN_PATH_A9";\r
+ cmdprefix="CROSS_TOOL_PRFX";\r
+ targetDir="a9/release";\r
+ targetname=A9LE;\r
+ break;\r
+ case String(A8LE):\r
+ tooldir="TOOLCHAIN_PATH_A8";\r
+ cmdprefix="CROSS_TOOL_PRFX";\r
+ targetDir="a8/release";\r
+ targetname=A8LE;\r
+ break;\r
+ case String(M4LE):\r
+ tooldir="TOOLCHAIN_PATH_M4";\r
+ cmdprefix="";\r
+ targetDir="m4/release";\r
+ targetname=M4LE;\r
+ break;\r
+ }\r
+ \r
+ var fileModule = xdc.module('xdc.services.io.File');\r
+ try{\r
+ var dstFile = new java.io.File(makelibname);\r
+ dstFile.getParentFile().mkdirs(); \r
+ libmakefile = fileModule.open(makelibname, "w");\r
+ /* Add to Archive list */\r
+ } catch (ex)\r
+ {\r
+ print(makelibname+" cannot be written to. Please check Writing Permissions.");\r
+ java.lang.System.exit(1);\r
+ } \r
+ libmakefile.writeLine("#*******************************************************************************");\r
+ libmakefile.writeLine("#* FILE PURPOSE: Lower level makefile for Creating Component Libraries");\r
+ libmakefile.writeLine("#*******************************************************************************");\r
+ libmakefile.writeLine("#* FILE NAME: "+makelibname);\r
+ libmakefile.writeLine("#*");\r
+ libmakefile.writeLine("#* DESCRIPTION: Defines Source Files, Compilers flags and build rules");\r
+ libmakefile.writeLine("#*");\r
+ libmakefile.writeLine("#*");\r
+ libmakefile.writeLine("#*******************************************************************************");\r
+ libmakefile.writeLine("#");\r
+ libmakefile.writeLine("");\r
+ libmakefile.writeLine("#");\r
+ libmakefile.writeLine("# Macro definitions referenced below");\r
+ libmakefile.writeLine("#");\r
+ libmakefile.writeLine("empty =");\r
+ libmakefile.writeLine("space =$(empty) $(empty)");\r
+ \r
+ if ((targetname.name == "A15F") || (targetname.name == "A9F") || (targetname.name == "A8F"))\r
+ {\r
+ \r
+ if(stringname.match("gnu.targets"))\r
+ {\r
+ libmakefile.writeLine("CC = $("+tooldir+")/bin/$("+cmdprefix+")gcc");\r
+ libmakefile.writeLine("AC = $("+tooldir+")/bin/$("+cmdprefix+")as"); \r
+ libmakefile.writeLine("ARIN = $("+tooldir+")/bin/$("+cmdprefix+")ar"); \r
+ libmakefile.writeLine("LD = $("+tooldir+")/bin/$("+cmdprefix+")gcc"); \r
+ }\r
+ else\r
+ {\r
+ print("Error: Non-GNU targets are not currently supported ");\r
+ java.lang.System.exit(1);\r
+\r
+ }\r
+ \r
+ libmakefile.writeLine("INCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\\$(space),$(INCDIR)))) -I$("+tooldir+")/include");\r
+ libmakefile.writeLine("OBJEXT = o"+targetname.suffix); \r
+ libmakefile.writeLine("AOBJEXT = s"+targetname.suffix); \r
+ if (useProfiling == true){\r
+ libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts+" -finstrument-functions -gdwarf-3 -g -D_ENABLE_BM");\r
+ }else{\r
+ libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts);\r
+ }\r
+ libmakefile.writeLine("ASFLAGS_INTERNAL = " +targetname.asmOpts.prefix+" "+targetname.asm.opts);\r
+ libmakefile.writeLine("ARFLAGS_INTERNAL = " +targetname.ar.opts);\r
+ libmakefile.writeLine("LNKFLAGS_INTERNAL = " +targetname.lnk.opts);\r
+ libmakefile.writeLine("INTERNALDEFS = -MD -MF $@.dep");\r
+ libmakefile.writeLine("INTERNALLINKDEFS = -o $@ -m $@.map"); /* TBD */\r
+ libmakefile.writeLine("OBJDIR = ./obj/obj_" +targetname.suffix +"/" + device.toString() + "/" + targetDir +"/obj" + "/" + objExtDir + benchSuffix); \r
+ \r
+ }\r
+ else\r
+ {\r
+ \r
+ if(stringname.match("ti.targets"))\r
+ {\r
+\r
+ var rtslibtemp = targetname.lnkOpts.suffix.toString().split("/");\r
+ var rtslib;\r
+ for(n=0;n<rtslibtemp.length;n++)\r
+ {\r
+ if(rtslibtemp[n].match(".lib"))\r
+ { \r
+ rtslib=rtslibtemp[n];\r
+ }\r
+ }\r
+\r
+ libmakefile.writeLine("CC = $("+tooldir+")/bin/"+targetname.cc.cmd);\r
+ libmakefile.writeLine("AC = $("+tooldir+")/bin/"+targetname.asm.cmd); \r
+ libmakefile.writeLine("ARIN = $("+tooldir+")/bin/"+targetname.ar.cmd); \r
+ libmakefile.writeLine("LD = $("+tooldir+")/bin/"+targetname.lnk.cmd); \r
+ libmakefile.writeLine("RTSLIB = -l $("+tooldir+")/lib/"+rtslib); \r
+ }\r
+ else\r
+ {\r
+ print("Error: Non-TI targets are not currently supported ");\r
+ java.lang.System.exit(1);\r
+\r
+ }\r
+ \r
+ libmakefile.writeLine("INCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\\$(space),$(INCDIR)))) -I$("+tooldir+")/include");\r
+ libmakefile.writeLine("OBJEXT = o"+targetname.suffix); \r
+ libmakefile.writeLine("AOBJEXT = s"+targetname.suffix); \r
+ if (useProfiling == true){\r
+ libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts+" --entry_parm=address --exit_hook=ti_utils_exit --exit_parm=address --entry_hook=ti_utils_entry -g -D_ENABLE_BM");\r
+ }else{\r
+ libmakefile.writeLine("CFLAGS_INTERNAL = " +targetname.ccOpts.prefix+" "+targetname.cc.opts);\r
+ }\r
+ libmakefile.writeLine("ASFLAGS_INTERNAL = " +targetname.asmOpts.prefix+" "+targetname.asm.opts);\r
+ libmakefile.writeLine("ARFLAGS_INTERNAL = " +targetname.ar.opts);\r
+ libmakefile.writeLine("LNKFLAGS_INTERNAL = " +targetname.lnk.opts);\r
+ /* libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+" -Dxdc_target_types__=ti/targets/std.h -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");*/\r
+ libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+" -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");\r
+ libmakefile.writeLine("INTERNALLINKDEFS = -o $@ -m $@.map");\r
+ libmakefile.writeLine("OBJDIR = ./obj/obj_" +targetname.suffix +"/" + device.toString() + "/" + targetDir +"/obj" + "/" + objExtDir + benchSuffix); \r
+ }\r
+ \r
+ return libmakefile;\r
+\r
+}\r
+\r
+function makeAddObjects(srcString, makefilename, srcfiles, flags,fileExt, targetName, objDir)\r
+{\r
+ var sourcestring = (srcString + fileExt).toString().toUpperCase();\r
+ var compileflagstring = sourcestring + "FLAGS";\r
+ var objectliststring = sourcestring + "OBJS";\r
+ /* List all the source files */\r
+ makefilename.writeLine("\n#List the "+srcString+" Files"); \r
+ makefilename.writeLine(sourcestring + "= \\");\r
+ for(var i=0;i<srcfiles.length-1;i++)\r
+ {\r
+ makefilename.writeLine(" "+srcfiles[i]+"\\");\r
+ }\r
+ makefilename.writeLine(" "+srcfiles[i]+"\n");\r
+ \r
+ /* Flags for the source files */\r
+ makefilename.writeLine("# FLAGS for the "+srcString+" Files"); \r
+ var compileflags="";\r
+ if(fileExt == "asm" && flags.aopts != undefined)\r
+ {\r
+ compileflags+=" "+flags.aopts;\r
+ }\r
+ else if((fileExt == "c" || fileExt == "sa")&& flags.copts != undefined)\r
+ {\r
+ compileflags+=" "+flags.copts;\r
+ } \r
+\r
+ if(flags.incs != undefined)\r
+ {\r
+ compileflags+=" "+flags.incs;\r
+ }\r
+\r
+\r
+ makefilename.writeLine(compileflagstring+" = "+compileflags +" \n"); \r
+ makefilename.writeLine("# Make Rule for the "+srcString+" Files"); \r
+ \r
+ makefilename.writeLine(objectliststring +" = $(patsubst %."+fileExt+", "+objDir+"/%.$(OBJEXT), $(" + sourcestring + "))"); \r
+ makefilename.writeLine("\n$("+objectliststring+"): "+objDir+"/%.$(OBJEXT): %."+fileExt); \r
+ if(fileExt == "c")\r
+ { \r
+ makefilename.writeLine("\t-@echo cl"+targetName.suffix +" $< ..."); \r
+ }\r
+ else\r
+ {\r
+ makefilename.writeLine("\t-@echo asm"+targetName.suffix +" $< ..."); \r
+ }\r
+ makefilename.writeLine("\tif [ ! -d $(@D) ]; then $(MKDIR) $(@D) ; fi;"); \r
+ \r
+ if(fileExt == "c")\r
+ {\r
+ if ((targetName.name == "A15F") || (targetName.name == "A9F") || (targetName.name == "A8F"))\r
+ {\r
+ makefilename.writeLine("\t$(RM) $@.dep");\r
+ makefilename.writeLine("\t$(CC) $(CFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< -o $@");\r
+ /* \r
+ TBD\r
+ */\r
+ }\r
+ else\r
+ {\r
+ makefilename.writeLine("\t$(RM) $@.dep");\r
+ makefilename.writeLine("\t$(CC) $(CFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fc $< ");\r
+ makefilename.writeLine("\t-@$(CP) $@.dep $@.pp; \\");\r
+ makefilename.writeLine(" $(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\\\$$//' \\");\r
+ makefilename.writeLine(" -e '/^$$/ d' -e 's/$$/ :/' < $@.pp >> $@.dep; \\");\r
+ makefilename.writeLine(" $(RM) $@.pp ");\r
+ }\r
+ }\r
+ else if(fileExt == "asm")\r
+ {\r
+ makefilename.writeLine("\t$(AC) $(ASFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fa $< ");\r
+ }\r
+ else if(fileExt == "sa")\r
+ {\r
+ makefilename.writeLine("\t$(AC) $(ASFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< ");\r
+ }\r
+ \r
+ makefilename.writeLine("\n#Create Empty rule for dependency");\r
+ makefilename.writeLine("$("+objectliststring+"):"+makefilename.$private.fd);\r
+ makefilename.writeLine(makefilename.$private.fd+":");\r
+ makefilename.writeLine("\n#Include Depedency for "+srcString+" Files");\r
+ makefilename.writeLine("ifneq (clean,$(MAKECMDGOALS))");\r
+ makefilename.writeLine(" -include $("+objectliststring+":%.$(OBJEXT)=%.$(OBJEXT).dep)");\r
+ makefilename.writeLine("endif");\r
+ \r
+}\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : buildLibrary\r
+ **************************************************************************\r
+ * DESCRIPTION :\r
+ * Utility function which will build a specific library\r
+ **************************************************************************/\r
+var makefilelocal;\r
+function buildLibrary (socName, isDmaSoc, isSoc, libOptions, libName, target, libFiles, useProfiling) \r
+{\r
+ var targetDir;\r
+ var objExtDir;\r
+ \r
+ if (useProfiling == true)\r
+ {\r
+ libName += ".profiling"\r
+ }\r
+\r
+ if (target.name == "A15F")\r
+ {\r
+ targetDir = "a15/release";\r
+ }\r
+ else if (target.name == "A9F")\r
+ {\r
+ targetDir = "a9/release";\r
+ }\r
+ else if (target.name == "A8F")\r
+ {\r
+ targetDir = "a8/release";\r
+ }\r
+ else if (target.name == "M4")\r
+ {\r
+ targetDir = "m4/release";\r
+ }\r
+ else\r
+ {\r
+ targetDir = "c66/release";\r
+ }\r
+ \r
+ /* Derive the operating system and soc names */\r
+ if (isDmaSoc == "true") {\r
+ var libNameExp = libName+".dma";\r
+ targetDir = socName+"/"+targetDir;\r
+ objExtDir ="dma";\r
+ }\r
+ else if (isSoc == "true") {\r
+ var libNameExp = libName;\r
+ targetDir = socName+"/"+targetDir;\r
+ objExtDir = "soc";\r
+ }\r
+ else {\r
+ var libNameExp = libName;\r
+ objExtDir = "all";\r
+ }\r
+\r
+ var lldFullLibraryPath = "./lib/" + targetDir +"/" + libNameExp;\r
+ var lldFullBuildPath = "./build/" + targetDir +"/" + libNameExp;\r
+ var lldFullLibraryPathMake = "$(LIBDIR)/" + targetDir +"/" + libNameExp;\r
+\r
+ /* Create Main make file in the root of package folder */\r
+ makefilelocal = createMake(makefilelocal);\r
+\r
+ /* Write the rule to make library in main makefile */\r
+ lib = lldFullBuildPath+".a"+target.suffix;\r
+ libMake = lldFullLibraryPathMake+".a"+target.suffix;\r
+ var objectPath= "./package/"+lldFullBuildPath;\r
+ \r
+ makefilelocal.writeLine("\n\n# Make rule to create "+libMake+" library");\r
+ makefilelocal.writeLine(".libraries: "+ libMake);\r
+ makefilelocal.writeLine(libMake+": FORCE\n\t$(MAKE) -f "+lib+".mk $@"); \r
+\r
+ /* Create Library make file in the lib folder */\r
+ var makefilelib= createLibMake(socName, objExtDir, lib+".mk",target,objectPath, useProfiling); \r
+\r
+ /* Rule to clean library in main makefile */\r
+ makefilelocal.writeLine("# Rule to clean "+libMake+" library"); \r
+ makefilelocal.writeLine("clean ::\n\t$(RM) "+ libMake); \r
+ librule="\n\n"+libMake+" :";\r
+\r
+ /* Add files to be compiled */\r
+ /* Separate out the C and assembly files */\r
+ var cfiles= new Array();\r
+ var afiles= new Array();\r
+ var safiles= new Array();\r
+ for each(var srcFile in libFiles)\r
+ {\r
+ var srcFile=String(srcFile);\r
+ var dot = srcFile.lastIndexOf(".");\r
+ var extension = srcFile.substr(dot,srcFile.length); \r
+ if(extension == ".c")\r
+ {\r
+ cfiles.push(srcFile);\r
+ }\r
+ else if(extension == ".sa")\r
+ {\r
+ safiles.push(srcFile);\r
+ }\r
+ else if(extension == ".asm")\r
+ {\r
+ afiles.push(srcFile);\r
+ }\r
+ else\r
+ {\r
+ print("ERROR: Unsupported file extension");\r
+ java.lang.System.exit(1);\r
+ }\r
+ }\r
+ if(cfiles.length > 0)\r
+ { \r
+ makeAddObjects("COMMONSRC",makefilelib,cfiles,libOptions,"c",target, "$(OBJDIR)");\r
+ librule += " $(COMMONSRCCOBJS)"; \r
+ }\r
+ if(afiles.length > 0)\r
+ { \r
+ makeAddObjects("COMMONSRC",makefilelib,afiles,libOptions,"asm",target, "$(OBJDIR)");\r
+ librule += " $(COMMONSRCASMOBJS)"; \r
+ }\r
+ if(safiles.length > 0)\r
+ { \r
+ makeAddObjects("COMMONSRC",makefilelib,safiles,libOptions,"sa",target, "$(OBJDIR)");\r
+ librule += " $(COMMONSRCSAOBJS)"; \r
+ }\r
+\r
+ makefilelib.writeLine(librule);\r
+ makefilelib.writeLine("\t@echo archiving $? into $@ ...");\r
+ makefilelib.writeLine("\tif [ ! -d $(LIBDIR)/"+targetDir+" ]; then $(MKDIR) $(LIBDIR)/"+targetDir+" ; fi;"); \r
+ makefilelib.writeLine("\t$(ARIN) $(ARFLAGS_INTERNAL) $@ $?");\r
+ makefilelib.close(); \r
+\r
+ /* Create the Epilogue; which executes after all the builds are completed. \r
+ * This is used to generate the benchmark information for the built library. \r
+ * Also add the benchmarking information file to the package. */\r
+ /* Put the temp file in object directory since javascript doesn't have a built in tmpname, \r
+ * and don't want --jobs=# with # > 1 to result in collisions */\r
+ var libFullName = lldFullLibraryPath + ".a" + target.suffix;\r
+ var tempFile = libFullName + ".xml";\r
+ Pkg.makeEpilogue += ".libraries: " + libFullName + "_size.txt\n";\r
+ Pkg.makeEpilogue += libFullName + "_size.txt: " + libFullName + "\n";\r
+ if ( java.lang.String(target.name).contains('66') )\r
+ { \r
+ Pkg.makeEpilogue += "\n\t $(C6X_GEN_INSTALL_PATH)/bin/ofd6x -x " + libFullName + " > " + tempFile;\r
+ Pkg.makeEpilogue += "\n\t $(SECTTI) " + tempFile + " > " + libFullName + "_size.txt";\r
+ Pkg.makeEpilogue += "\n\t $(RM) " + tempFile + "\n\n";\r
+ } \r
+ else if (target.name == "M4")\r
+ {\r
+ Pkg.makeEpilogue += "\n\t $(TOOLCHAIN_PATH_M4)/bin/armofd -x " + libFullName + " > " + tempFile;\r
+ Pkg.makeEpilogue += "\n\t $(SECTTI) " + tempFile + " > " + libFullName + "_size.txt";\r
+ Pkg.makeEpilogue += "\n\t $(RM) " + tempFile + "\n\n";\r
+ }\r
+ else\r
+ {\r
+ Pkg.makeEpilogue += "\n\t $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)size " + libFullName + " > " + libFullName + "_size.txt";\r
+ } \r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + "_size.txt";\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullBuildPath + ".a" + target.suffix + ".mk";\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix;\r
+\r
+ /* We need to clean after ourselves; extend the 'clean' target to take care of this. */\r
+ Pkg.makeEpilogue += "\nclean::\n";\r
+ Pkg.makeEpilogue += "\t$(RM) " + lldFullBuildPath + ".a" + target.suffix + "_size.txt\n"; \r
+ Pkg.makeEpilogue += "\t$(RMDIR) " + "$(LIBDIR)/" + targetDir + "/ \n\n";\r
+\r
+ return lib;\r
+}\r
+\r
+\r
+\r
diff --git a/packages/ti/drv/uart/build/makefile.mk b/packages/ti/drv/uart/build/makefile.mk
--- /dev/null
@@ -0,0 +1,75 @@
+#
+# Copyright (c) 2016 - 2019, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+include $(PDK_UART_COMP_PATH)/src/src_files_common.mk
+
+MODULE_NAME = uart
+
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 am65xx j721e))
+include $(PDK_UART_COMP_PATH)/src/src_files_uart_console.mk
+endif
+
+SRCDIR += soc/$(SOC)
+INCDIR += soc
+# Common source files across all platforms and cores
+SRCS_COMMON += UART_soc.c
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk edma
+
+PACKAGE_SRCS_COMMON += soc/$(SOC) soc/UART_soc.h
+
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS)
+
+# For all FW supporting devices source files in library and package
+ifeq ($(SOC),$(filter $(SOC), am335x))
+ SRCDIR += src/v2
+ INCDIR += src/v2
+ SRCS_COMMON += UART_v2.c
+ PACKAGE_SRCS_COMMON += src/v2
+ CFLAGS_LOCAL_COMMON += -DPRU_ICSS_FW
+endif
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/build/makefile_console.mk b/packages/ti/drv/uart/build/makefile_console.mk
--- /dev/null
@@ -0,0 +1,59 @@
+#
+# Copyright (c) 2016, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+MODULE_NAME = uart_console
+
+SRCDIR = . src
+INCDIR = . src
+
+include $(PDK_UART_COMP_PATH)/src/src_files_uart_console.mk
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk edma
+
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS)
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/build/makefile_dma.mk b/packages/ti/drv/uart/build/makefile_dma.mk
--- /dev/null
@@ -0,0 +1,87 @@
+#
+# Copyright (c) 2017, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+include $(PDK_UART_COMP_PATH)/src/src_files_common.mk
+
+MODULE_NAME = uart_dma
+
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 am65xx j721e))
+include $(PDK_UART_COMP_PATH)/src/src_files_uart_console.mk
+endif
+
+SRCDIR += soc/$(SOC)
+ifeq ($(SOC),$(filter $(SOC), k2h k2k k2l k2e k2g c6678 c6657 omapl137 omapl138))
+ SRCDIR += soc/dma/v0
+else
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x am437x am335x))
+ SRCDIR += soc/dma/v1
+else
+ SRCDIR += soc/dma/v2
+endif
+endif
+INCDIR += soc
+# Common source files across all platforms and cores
+SRCS_COMMON += UART_soc.c UART_dma.c
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138))
+INCLUDE_EXTERNAL_INTERFACES += edma
+endif
+
+PACKAGE_SRCS_COMMON += soc/$(SOC)
+ifeq ($(SOC),$(filter $(SOC), k2h k2k k2l k2e k2g c6678 c6657 omapl137 omapl138))
+ PACKAGE_SRCS_COMMON += soc/dma/v0
+else
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x am437x am335x))
+ PACKAGE_SRCS_COMMON += soc/dma/v1
+else
+ PACKAGE_SRCS_COMMON += soc/dma/v2
+endif
+endif
+
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -DUART_DMA_ENABLE
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/build/makefile_dma_profile.mk b/packages/ti/drv/uart/build/makefile_dma_profile.mk
--- /dev/null
@@ -0,0 +1,93 @@
+#
+# Copyright (c) 2017 - 2018, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+include $(PDK_UART_COMP_PATH)/src/src_files_common.mk
+
+MODULE_NAME = uart_dma_profile
+
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 am65xx j721e))
+include $(PDK_UART_COMP_PATH)/src/src_files_uart_console.mk
+endif
+
+SRCDIR += soc/$(SOC)
+ifeq ($(SOC),$(filter $(SOC), k2h k2k k2l k2e k2g c6678 c6657 omapl137 omapl138))
+ SRCDIR += soc/dma/v0
+else
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x am437x am335x))
+ SRCDIR += soc/dma/v1
+else
+ SRCDIR += soc/dma/v2
+endif
+endif
+INCDIR += soc
+# Common source files across all platforms and cores
+SRCS_COMMON += UART_soc.c UART_dma.c
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138))
+INCLUDE_EXTERNAL_INTERFACES += edma
+else
+INCLUDE_EXTERNAL_INTERFACES += udma
+endif
+
+PACKAGE_SRCS_COMMON += soc/$(SOC)
+ifeq ($(SOC),$(filter $(SOC), k2h k2k k2l k2e k2g c6678 c6657 omapl137 omapl138))
+ PACKAGE_SRCS_COMMON += soc/dma/v0
+else
+ifeq ($(SOC),$(filter $(SOC), am571x am572x am574x dra72x dra75x dra78x am437x am335x))
+ PACKAGE_SRCS_COMMON += soc/dma/v1
+else
+ PACKAGE_SRCS_COMMON += soc/dma/v2
+endif
+endif
+
+ifeq ($(CORE),$(filter $(CORE), mpu1_0 a15_0 a9host a8host))
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -finstrument-functions -gdwarf-3 -g -D_ENABLE_BM -DUART_DMA_ENABLE
+else
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) --entry_parm=address --exit_hook=ti_utils_exit --exit_parm=address --entry_hook=ti_utils_entry -g -D_ENABLE_BM -DUART_DMA_ENABLE
+endif
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/build/makefile_icss_uart.mk b/packages/ti/drv/uart/build/makefile_icss_uart.mk
--- /dev/null
@@ -0,0 +1,64 @@
+# Copyright (c) 2019, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+MODULE_NAME = icss_uart
+
+SRCDIR += src/ $(PDK_CSL_COMP_PATH)/ $(PDK_INSTALL_PATH)/
+INCDIR += src/ $(PDK_CSL_COMP_PATH)/ $(PDK_INSTALL_PATH)/
+# Common source files across all platforms and cores
+SRCS_ASM_COMMON += PRU_SW_UART.asm
+
+LNKFLAGS_LOCAL_COMMON = --entry_point=UART_entry
+
+LNKCMD_FILE = $($(MODULE_NAME)_PATH)/src/AM335x_PRU.cmd
+
+PACKAGE_SRCS_COMMON += src/ build/makefile_icss_uart.mk
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES =
+
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -DPRU
+
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# Nothing beyond this point
+
+
diff --git a/packages/ti/drv/uart/build/makefile_indp.mk b/packages/ti/drv/uart/build/makefile_indp.mk
--- /dev/null
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 2016, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+include $(PDK_UART_COMP_PATH)/src/src_files_common.mk
+include $(PDK_UART_COMP_PATH)/src/src_files_uart_console.mk
+
+MODULE_NAME = uart_indp
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk edma
+
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS)
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/build/makefile_profile.mk b/packages/ti/drv/uart/build/makefile_profile.mk
--- /dev/null
@@ -0,0 +1,78 @@
+#
+# Copyright (c) 2017 - 2019, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+include $(PDK_UART_COMP_PATH)/src/src_files_common.mk
+
+MODULE_NAME = uart_profile
+
+ifeq ($(SOC),$(filter $(SOC), dra72x dra75x dra78x am571x am572x am574x k2h k2k k2l k2e k2g c6678 c6657 am437x am335x omapl137 omapl138 am65xx j721e))
+include $(PDK_UART_COMP_PATH)/src/src_files_uart_console.mk
+endif
+
+SRCDIR += soc/$(SOC)
+INCDIR += soc
+# Common source files across all platforms and cores
+SRCS_COMMON += UART_soc.c
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk edma
+
+PACKAGE_SRCS_COMMON += soc/$(SOC) soc/UART_soc.h
+
+ifeq ($(CORE),$(filter $(CORE), mpu1_0 a15_0 a9host a8host))
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -finstrument-functions -gdwarf-3 -g -D_ENABLE_BM
+else
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) --entry_parm=address --exit_hook=ti_utils_exit --exit_parm=address --entry_hook=ti_utils_entry -g -D_ENABLE_BM
+endif
+
+ifeq ($(SOC),$(filter $(SOC), am335x))
+ SRCDIR += src/v2
+ INCDIR += src/v2
+ SRCS_COMMON += UART_v2.c
+ PACKAGE_SRCS_COMMON += src/v2
+ CFLAGS_LOCAL_COMMON += -DPRU_ICSS_FW
+endif
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/build/makefile_profile_indp.mk b/packages/ti/drv/uart/build/makefile_profile_indp.mk
--- /dev/null
@@ -0,0 +1,60 @@
+ #
+# Copyright (c) 2016 - 2018, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Texas Instruments Incorporated nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+include $(PDK_UART_COMP_PATH)/src/src_files_common.mk
+include $(PDK_UART_COMP_PATH)/src/src_files_uart_console.mk
+
+MODULE_NAME = uart_profile_indp
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = pdk edma
+
+ifeq ($(CORE),$(filter $(CORE), mpu1_0 a15_0 a9host a8host))
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) -finstrument-functions -gdwarf-3 -g -D_ENABLE_BM
+else
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) --entry_parm=address --exit_hook=ti_utils_exit --exit_parm=address --entry_hook=ti_utils_entry -g -D_ENABLE_BM
+endif
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/config.bld b/packages/ti/drv/uart/config.bld
--- /dev/null
@@ -0,0 +1,420 @@
+/******************************************************************************
+ * FILE PURPOSE: Build configuration Script for the uart Driver
+ ******************************************************************************
+ * FILE NAME: config.bld
+ *
+ * DESCRIPTION:
+ * This file contains the build configuration script for the uart driver
+ * and is responsible for configuration of the paths for the various
+ * tools required to build the driver.
+ *
+ * Copyright (C) 2016, Texas Instruments, Inc.
+ *****************************************************************************/
+
+/* Get the Tools Base directory from the Environment Variable. */
+var c66ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var c674ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var m4ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_M4");
+var a15ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A15");
+var a9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A9");
+var arm9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_ARM9");
+var a8ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A8");
+
+/* Get the extended debug flags for C66x,
+ * did not change the name for backwards compatibilty */
+var extDbgFlags = java.lang.System.getenv("EXTDBGFLAGS");
+
+/* Get the extended debug flags for A15 */
+var extDbgFlags_a15 = java.lang.System.getenv("EXTDBGFLAGS_A15");
+
+/* Get the extended debug flags for A8 */
+var extDbgFlags_a8 = java.lang.System.getenv("EXTDBGFLAGS_A8");
+
+/* Get the extended debug flags for A9 */
+var extDbgFlags_a9 = java.lang.System.getenv("EXTDBGFLAGS_A9");
+
+/* Get the extended debug flags for ARM9 */
+var extDbgFlags_arm9 = java.lang.System.getenv("EXTDBGFLAGS_ARM9");
+
+/* Get the extended debug flags for ARM9 */
+var extDbgFlags_c674x = java.lang.System.getenv("EXTDBGFLAGS_C674");
+
+/* Get the extended debug flags for M4 */
+var extDbgFlags_m4 = java.lang.System.getenv("EXTDBGFLAGS_M4");
+
+/* Get the base directory for the uart Socket Driver Package */
+var driverPath = new java.io.File(".//").getPath();
+
+/* Include Path */
+var lldIncludePath = " -I" + driverPath + "/src" + " -I" + driverPath;
+
+/* Configure the uart Socket Release Version Information */
+/* 3 steps: remove SPACE and TAB, convert to string and split to make array */
+var driverReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');
+
+/* Print the Compiler Options */
+var pOpts = 1;
+
+/* C66 ELF compiler configuration for Little Endian Mode. */
+var C66LE = xdc.useModule('ti.targets.elf.C66');
+C66LE.rootDir = c66ToolsBaseDir;
+C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
+if(extDbgFlags)
+ C66LE.ccOpts.prefix = C66LE.ccOpts.prefix + " " + extDbgFlags;
+
+/* C67 ELF compiler configuration for Little Endian Mode. */
+var C67LE = xdc.useModule('ti.targets.elf.C67');
+C67LE.rootDir = c66ToolsBaseDir;
+C67LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
+if(extDbgFlags)
+ C67LE.ccOpts.prefix = C67LE.ccOpts.prefix + " " + extDbgFlags;
+
+/* C66 ELF compiler configuration for Big Endian Mode. */
+var C66BE = xdc.useModule('ti.targets.elf.C66_big_endian');
+C66BE.rootDir = c66ToolsBaseDir;
+C66BE.ccOpts.prefix = "-mo -o3 -q -k -eo.o -DBIGENDIAN";
+if(extDbgFlags)
+ C66BE.ccOpts.prefix = C66BE.ccOpts.prefix + " " + extDbgFlags;
+
+/* C674 ELF compiler configuration for Little Endian Mode. */
+var C674LE = xdc.useModule('ti.targets.elf.C674');
+C674LE.rootDir = c674ToolsBaseDir;
+C674LE.asmOpts.prefix = "--strip_coff_underscore";
+C674LE.ccOpts.prefix = "--strip_coff_underscore -mo -o3 -q -k -eo.o " + "-D" + cslPartNumber;
+if(extDbgFlags)
+ C674LE.ccOpts.prefix = C674LE.ccOpts.prefix + " " + extDbgFlags_c674x;
+
+/* ARMv7 A15 compiler configuration */
+var A15LE = xdc.useModule('gnu.targets.arm.A15F');
+A15LE.rootDir = a15ToolsBaseDir;
+A15LE.ccOpts.prefix = "-mno-unaligned-access -c -mtune=cortex-a15 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_a15)
+ A15LE.ccOpts.prefix = A15LE.ccOpts.prefix + " " + extDbgFlags_a15;
+
+/* ARMv7 A9 compiler configuration */
+var A9LE = xdc.useModule('gnu.targets.arm.A9F');
+A9LE.rootDir = a9ToolsBaseDir;
+A9LE.ccOpts.prefix = "-mno-unaligned-access -c -mtune=cortex-a9 -marm -DDRA7xx -DSOC_AM437X -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_a9)
+ A9LE.ccOpts.prefix = A9LE.ccOpts.prefix + " " + extDbgFlags_a9;
+
+/* ARMv5 ARM9 compiler configuration */
+var ARM9LE = xdc.useModule('ti.targets.arm.elf.Arm9');
+ARM9LE.rootDir = arm9ToolsBaseDir;
+ARM9LE.ccOpts.prefix = "-mno-unaligned-access -c -marm -DDRA7xx -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=Arm9 -gstrict-dwarf -Wall -D__ARMv5 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_arm9)
+ ARM9LE.ccOpts.prefix = ARM9LE.ccOpts.prefix + " " + extDbgFlags_arm9;
+
+/* ARMv7 A8 compiler configuration */
+var A8LE = xdc.useModule('gnu.targets.arm.A8F');
+A8LE.rootDir = a8ToolsBaseDir;
+A8LE.ccOpts.prefix = "-mno-unaligned-access -c -mtune=cortex-a8 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
+if(extDbgFlags_a8)
+ A8LE.ccOpts.prefix = A8LE.ccOpts.prefix + " " + extDbgFlags_a8;
+
+/* M4 ELF compiler configuration for Little Endian Mode. */
+var M4LE = xdc.useModule('ti.targets.arm.elf.M4');
+M4LE.rootDir = m4ToolsBaseDir;
+M4LE.ccOpts.prefix = "-o4 -qq -pdsw255 -DMAKEFILE_BUILD";
+if(extDbgFlags_m4)
+ M4LE.ccOpts.prefix = M4LE.ccOpts.prefix + " " + extDbgFlags_m4;
+
+/* soc name (am?) is inserted between first an second element of this
+ list to construct device file name for each device */
+var deviceConstruct = [ "soc/", "/UART_soc.c" ];
+
+/* soc name (am?) is inserted between first an second element of this
+ list to construct device file name for each device */
+var deviceDmaConstruct = [ "soc/", "/UART_soc_dma.c" ];
+
+/* Create the SoC List */
+var socs = {
+ /* device independent libraries */
+ all :
+ {
+ /* Build this library */
+ build: "true",
+ /* SoC lib enabled */
+ socDevLib: "false",
+ /* dma lib enabled */
+ dmaDevLib: "false",
+ /* Library options */
+ copts: "",
+ /* target lists, kept blank now, would be updated based on argument lists */
+ targets: []
+ },
+ am335x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains am335x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "false",
+ /* Library options */
+ copts: " -DSOC_AM335x",
+ /* target list */
+ targets: [ A8LE ]
+ },
+ am437x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains am437x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "false",
+ /* Library options */
+ copts: " -DSOC_AM437x",
+ /* target list */
+ targets: [ A9LE ]
+ },
+ am572x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains am572x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_AM572x",
+ /* target list */
+ targets: [ C66LE, M4LE, A15LE]
+ },
+ am574x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains am574x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_AM574x",
+ /* target list */
+ targets: [ C66LE, M4LE, A15LE]
+ },
+ am574x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains am574x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_AM574x",
+ /* target list */
+ targets: [ C66LE, M4LE, A15LE]
+ },
+ dra75x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains dra75x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_DRA75x",
+ /* target list */
+ targets: [ C66LE, M4LE, A15LE]
+ },
+ am571x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains am571x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_AM571x",
+ /* target list */
+ targets: [ C66LE, M4LE, A15LE]
+ },
+ k2h :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains k2h */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_K2H",
+ /* target list */
+ targets: [ C66LE, C66BE, A15LE]
+ },
+ k2k :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains k2k */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_K2H",
+ /* target list */
+ targets: [ C66LE, C66BE, A15LE]
+ },
+ k2e :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains k2e */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_K2E",
+ /* target list */
+ targets: [ C66LE, C66BE, A15LE]
+ },
+ k2l :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains k2l */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_K2L",
+ /* target list */
+ targets: [ C66LE, C66BE, A15LE]
+ },
+ k2g :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains k2g */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_K2G",
+ /* target list */
+ targets: [ C66LE, C66BE, A15LE]
+ },
+ omapl137 :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains omapl137 */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_OMAPL137",
+ /* target list */
+ targets: [ C674LE, ARM9LE]
+ },
+ omapl138 :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains omapl138 */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_OMAPL138",
+ /* target list */
+ targets: [ C674LE, ARM9LE]
+ },
+ c6678 :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains c6678 */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_C6678",
+ /* target list */
+ targets: [ C66LE, C66BE]
+ },
+ c6657 :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains c6657 */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* dma lib enabled */
+ dmaDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_C6657",
+ /* target list */
+ targets: [ C66LE, C66BE]
+ }
+};
+
+/**************************************************************************
+ * FUNCTION NAME : merge
+ **************************************************************************
+ * DESCRIPTION :
+ * The function is used to merge two arrarys
+ **************************************************************************/
+function merge() {
+ var args = arguments;
+ var hash = {};
+ var arr = [];
+ for (var i = 0; i < args.length; i++) {
+ for (var j = 0; j < args[i].length; j++) {
+ if (hash[args[i][j]] !== true) {
+ arr[arr.length] = args[i][j];
+ hash[args[i][j]] = true;
+ }
+ }
+ }
+ return arr;
+}
+
+/* Grab input from XDCARGS */
+var buildArguments = [];
+
+/* Construct the build arguments */
+for (var tmp=0; arguments[tmp] != undefined; tmp++)
+{
+
+ /* If no arguments are provided, override for building all */
+ if ( ( arguments.length == 1) && (arguments[tmp].equals("./config.bld")) )
+ buildArguments[buildArguments.length++] = "all";
+ else
+ buildArguments[buildArguments.length++] = arguments[tmp];
+}
+
+/* Build targets on this build */
+var build_targets = [];
+var soc_names = Object.keys(socs);
+
+for (var i=0; i < buildArguments.length; i++ ) {
+ /* Build it for all targets */
+ if (buildArguments[i] == "all") {
+ for (var j = 0; j < soc_names.length; j++) {
+ build_targets = merge (build_targets.slice(0), socs[soc_names[j]].targets.slice(0));
+ /* Set build to "true" for that SoC */
+ socs[soc_names[j]].build = "true";
+ }
+ }
+ else {
+ /* Skip the first argument, which is ./config.bld to get to next SoCs */
+ if (i == 0) continue;
+ /* Set that build to true if it is found in supported build socs */
+ for (j = 0; j < soc_names.length; j++) {
+ if (buildArguments[i] == soc_names[j]) {
+ socs[buildArguments[i]].build = "true";
+ build_targets = merge (build_targets.slice(0), socs[buildArguments[i]].targets.slice(0));
+ break;
+ }
+ }
+ }
+}
+
+/* Update the Build target generated list */
+socs["all"].targets = build_targets;
+Build.targets = build_targets;
diff --git a/packages/ti/drv/uart/config_mk.bld b/packages/ti/drv/uart/config_mk.bld
--- /dev/null
@@ -0,0 +1,44 @@
+/******************************************************************************
+ * FILE PURPOSE: Build configuration Script for the uart Driver
+ ******************************************************************************
+ * FILE NAME: config.bld
+ *
+ * DESCRIPTION:
+ * This file contains the build configuration script for the uart driver
+ * and is responsible for configuration of the paths for the various
+ * tools required to build the driver.
+ *
+ * Copyright (C) 2014-2016, Texas Instruments, Inc.
+ *****************************************************************************/
+/* Get the Tools Base directory from the Environment Variable. */
+var c66ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var c674ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
+var m4ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_M4");
+var a15ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A15");
+var a9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A9");
+var arm9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_ARM9");
+var a8ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A8");
+
+
+/* Get the base directory for the uart Socket Driver Package */
+var driverPath = new java.io.File(".//").getPath();
+
+/* Include Path */
+var lldIncludePath = " -I" + driverPath + "/src" + " -I" + driverPath;
+
+/* Configure the uart Socket Release Version Information */
+/* 3 steps: remove SPACE and TAB, convert to string and split to make array */
+var driverReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');
+
+/* Do not print the compiler options */
+var pOpts = 0;
+
+/* List of all devices that needs to be build via XDC
+ * As the build happens through makefile, there is nothing to build via XDC
+ * using the below for packaging infrastructure
+ */
+var socs = [];
+var devices = [];
+var build_devices = [];
+Build.targets = []
+
diff --git a/packages/ti/drv/uart/docs/Module.xs b/packages/ti/drv/uart/docs/Module.xs
--- /dev/null
@@ -0,0 +1,63 @@
+/******************************************************************************\r
+ * FILE PURPOSE: UART Driver DOCS Module specification file.\r
+ ******************************************************************************\r
+ * FILE NAME: module.xs\r
+ *\r
+ * DESCRIPTION: \r
+ * This file contains the module specification for the UART Driver Documentation .\r
+ *\r
+ * Copyright (C) 2008, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* Load the library utility. */\r
+var libUtility = xdc.loadCapsule ("../build/buildlib.xs");\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : modBuild\r
+ **************************************************************************\r
+ * DESCRIPTION :\r
+ * The function is used to build the LLD documentation and add it to the\r
+ * package.\r
+ **************************************************************************/\r
+function modBuild() \r
+{\r
+ /* Create the actual PROLOGUE Section for the Documentation.*/\r
+ Pkg.makePrologue += "release: uart_document_generation\n";\r
+ Pkg.makePrologue += "uart_document_generation:\n";\r
+ Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+ Pkg.makePrologue += "\t @echo Generating UART Driver Documentation\n";\r
+ Pkg.makePrologue += "\t doxygen docs/Doxyfile\n";\r
+ Pkg.makePrologue += "\t @echo UART Driver Documentation Generated \n";\r
+ Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+\r
+ /* Add the documentation file to the package. */\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tifooter.htm";\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tiheader.htm";\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/tilogo.gif";\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/titagline.gif";\r
+\r
+ /* Add the UART Design Document to the package */\r
+ /* Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/UART_SDS.pdf";*/\r
+\r
+ /* Add the UART Software Manifest to the package */\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/UART_LLD_SoftwareManifest.html";\r
+\r
+ /* Add the HTML documentation to the package */\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/doxygen";\r
+\r
+ /* Add the release notes to the package */\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = "docs/ReleaseNotes_UART_LLD.pdf";\r
+\r
+ /* Generate the ECLIPSE Plugin Generation: Only for SETUP Releases. */\r
+ if (driverInstallType == "SETUP")\r
+ {\r
+ Pkg.makePrologue += "all: eclipse_plugin_generation\n";\r
+ Pkg.makePrologue += "eclipse_plugin_generation:\n";\r
+ Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+ Pkg.makePrologue += "\t @echo UART Eclipse Plugin Generation\n";\r
+ Pkg.makePrologue += "\t xs xdc.tools.eclipsePluginGen -o . -x ./eclipseDocs/sample.xml -c ./eclipseDocs/toc_cdoc_sample.xml\n";\r
+ Pkg.makePrologue += "\t @echo UART Eclipse Plugin Generated \n";\r
+ Pkg.makePrologue += "\t @echo ----------------------------\n";\r
+ }\r
+}\r
+\r
diff --git a/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.doc b/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.doc
new file mode 100644 (file)
index 0000000..7f6e37d
Binary files /dev/null and b/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.doc differ
index 0000000..7f6e37d
Binary files /dev/null and b/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.doc differ
diff --git a/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.pdf b/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.pdf
new file mode 100644 (file)
index 0000000..c79bfde
Binary files /dev/null and b/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.pdf differ
index 0000000..c79bfde
Binary files /dev/null and b/packages/ti/drv/uart/docs/ReleaseNotes_UART_LLD.pdf differ
diff --git a/packages/ti/drv/uart/docs/UART_FW_DESIGN_GUIDE.docx b/packages/ti/drv/uart/docs/UART_FW_DESIGN_GUIDE.docx
new file mode 100644 (file)
index 0000000..87b61f7
Binary files /dev/null and b/packages/ti/drv/uart/docs/UART_FW_DESIGN_GUIDE.docx differ
index 0000000..87b61f7
Binary files /dev/null and b/packages/ti/drv/uart/docs/UART_FW_DESIGN_GUIDE.docx differ
diff --git a/packages/ti/drv/uart/docs/UART_LLD_SoftwareManifest.html b/packages/ti/drv/uart/docs/UART_LLD_SoftwareManifest.html
--- /dev/null
@@ -0,0 +1,328 @@
+<!--\r\r
+Texas Instruments Manifest Format 2.0\r\r
+-->\r\r
+\r\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r\r
+<html>\r\r
+\r\r
+<head>\r\r
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />\r\r
+<!-- @Start Style -->\r\r
+<!-- Default style in case someone doesnt have Internet Access -->\r\r
+<style type="text/css" id="internalStyle">\r\r
+ body, div, p {\r\r
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\r\r
+ font-size: 13px;\r\r
+ line-height: 1.3;\r\r
+ }\r\r
+ body {\r\r
+ margin: 20px; \r\r
+ }\r\r
+ h1 {\r\r
+ font-size: 150%;\r\r
+ }\r\r
+ h2 {\r\r
+ font-size: 120%;\r\r
+ }\r\r
+ h3 {\r\r
+ font-size: 100%;\r\r
+ }\r\r
+ img {\r\r
+ border: 0px;\r\r
+ vertical-align: middle;\r\r
+ }\r\r
+ table, th, td, tr {\r\r
+ border: 1px solid black; \r\r
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\r\r
+ font-size: 13px;\r\r
+ line-height: 1.3;\r\r
+ empty-cells: show; \r\r
+ padding: 5px;\r\r
+ }\r\r
+ table {\r\r
+ border-collapse: collapse; \r\r
+ width: 100%;\r\r
+ }\r\r
+ tr {\r\r
+ page-break-inside: avoid;\r\r
+ }\r\r
+ #TIlogoLeft {\r\r
+ background-color: black; \r\r
+ padding: 0;\r\r
+ width: 20%;\r\r
+ }\r\r
+ #TIlogoRight {\r\r
+ background-color: red; \r\r
+ padding: 0;\r\r
+ }\r\r
+ #ProductName {\r\r
+ text-align: center;\r\r
+ }\r\r
+ #ReleaseDate {\r\r
+ text-align: center;\r\r
+ }\r\r
+ .LogoSection {\r\r
+ margin: 0;\r\r
+ padding: 0;\r\r
+ }\r\r
+ .HeaderSection {\r\r
+ margin: 25px 0 25px 0;\r\r
+ padding: 0;\r\r
+ }\r\r
+ .LegendSection {\r\r
+ margin: 25px 0 25px 0;\r\r
+ }\r\r
+ .ExportSection {\r\r
+ margin: 25px 0 25px 0;\r\r
+ }\r\r
+ .DisclaimerSection {\r\r
+ margin: 25px 0 25px 0; \r\r
+ }\r\r
+ .CreditSection {\r\r
+ margin: 25px 0 25px 0; \r\r
+ }\r\r
+ .LicenseSection {\r\r
+ margin: 25px 0 25px 0; \r\r
+ }\r\r
+ .ManifestTable {\r\r
+ margin: 25px 0 25px 0; \r\r
+ }\r\r
+</style> \r\r
+<!-- Override style from TI if they have Internet Access -->\r\r
+<link type="text/css" rel="stylesheet" href="timanifeststyle.css">\r\r
+<!-- @End Style -->\r\r
+<title>Texas Instruments Manifest</title>\r\r
+</head>\r\r
+\r\r
+<body><!-- Logo display, will need to fix up the URLs, this is just for testing.. Image alternate display not wporking well yet -->\r\r
+<div class="LogoSection">\r\r
+<table>\r\r
+ <tbody>\r\r
+ <tr>\r\r
+ <td id="TIlogoLeft">\r\r
+ <a href="http://www.ti.com/">\r\r
+ <!-- img src="tilogo.gif" alt="Texas Instruments Incorporated" -->\r\r
+ <img alt="" src="data:image/gif;base64,R0lGODlh3gA2AKIAAAAAAP///7u7u29vbz8/PwYGBujo6BgYGCH5BAAAAAAALAAAAADeADYAAAP/CLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodHorDALYLIHKJVqz2q44eAUHtoDB4DBu48rgLQErcNtnX7NhMDcICIB3gix5ZmtqAAZZew8EAo+QkQIDNVZqiIM1cHGKZ4YPAmaiAWw0c1gFmZqjB3SbZ6kNe6WhsAeOlDV0qjSFAXUAp7lwuREFtVsFgMvLB7fNAM+BCs+lDLd8BNYOuxfV22PL0RiWlwO1u3kDqejAEsjR6GB86FsHoYwA6gxWnVgGEegUuIelWJk6jswAGlXQ36J1xBSoQwfulIEDr/6l+VeK/+AehrAGOHRnAWRBbbWegckXAV6wk4AeRQtDQBEaBYsYlMl2hUCsBt0iKgilT9EfAlfO7SmzdKkrkQUT/fqZSECqLCSlntH375IAA1tqGUilLIBSNVnU+NmJNBRVChlF1QwAdlRWBy5P3QymwCLBYhs73cTHYBq3X33nDQ2wcWuBgef0FRD4GK3jU3VCZZUJAIw1OGg0P+4bFiubOWoOsEP1+KvZn3wurDbZ6lfcuw3yYkFjRSeYzRe7ARAbW0K3PmGIMi0OFDG1Mmha+RnufAHn3xL9ha6uTZ/rXagZ1GKAtTsHeWb+FEQvHILuX4+mLzj2j2r4TrFesTwMbE5Cuv8JzbTSGuRV1xgfUJFC3WbA0JWFalcItpgf8YU2yT/qATaedent5cBb8zk0DzIitgfKbonRFV9Wp2xl3UXq5Ccibp05598BnRigiAIJmrZAexkJQIuBwzX4CB3SQbeYQkPVAUco63DI2HzsAdYAiAvEZdYlaVQ5wXs3+bQAjovEUoBRR9LVAFLaPXCcY/KMqVRasQB5kiJgLcYgTkJiuCWKC2ZpIY/z/LRhYefkBAGW1HTyRy2UjObLHxSAOZ948EUVGCSC3SLZbB7iZKOLc2GRRgMH/VhdHnJwFCgD8iEGx0VKvpqbO+hoaCppEg3UiTES1CTkhNaQ+Qs4LQGql07/lET4mIQ6SvTSVGZ9Bmhz/bkYzK+PFKtpje6wumRm1wrLZzSdQASoZvyswdmSuk7p616HfkjBTxZBQucFgqXCFKdn1NpiUlQJhs8kteBWG0AbATbXS2tBlaeoVkmJRova4KkGPmhMFdiSYmq8cbTRYhrlkiHaNufJ9mIgVqEXnAOJM5JE4sgjudQ8bF82x+cKBP4Iiedecyjgx2/WtMNjjhcL9h+S4xq9RYJgsbeeUbmdrPTSQbPccsyijEXOfI8xyuinVJH1wdkS/MQ2Bc5Iq08DyHYwGglvPyCilbz0fa8GLV7r9+Btb7CJ14Qnzg8HpdKoOOF5Py752JNXvrblNphzEHnmnF/a+ecTbA465qKPXnnppkuOeuqKr8465K+z7nrsfc9Ouyq23z5I7rrfwXvvbhSQAAA7" />\r\r
+ </a>\r\r
+ </td>\r\r
+ <td id="TILogoRight">\r\r
+ <!-- img src="titagline.gif" alt="Technology for Innovators(tm)"-->\r\r
+ <img alt="" src="data:image/gif;base64,R0lGODlhOgEaALMAAP8AAP////92dv+3t/+Njf/W1v/t7f8hIf/19f+jo//Hx/8/P/9cXP/j4//6+v/+/iH5BAAAAAAALAAAAAA6ARoAAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqft0NDMCBQodis1jcADBKE7nYcCpjPgU5AQBKkVYOHAeRudqtXsh60/vRHdSoBBCGBNAkLe4o4f2psgG8pjR6GM5OLmDB/DA0GBoQADAgICRIBBQUOYgwGCg2kEgudBgUHAIGcBg0MsZ0NCnMGYgsBtqEGAbCynrW3AQONgcIFBgiErK6wAAfUtLbCscWiowoAyLDczLZu0AIJCAYOoJn0G38ObAwPEvLEts/O1vUhsA8AAjGonEmA9W6hGAVpEjiQoKBAhT8HJSRkVyEQQAAJ//a5YeMPQIFyACqCnJjSIgFCB4oB+HOSokWOAB6wIWCxnk8MfYh5QsYg5sVHfQLVMSqhztJIxWIaC6QzJy8KfZgqrNT0zR+nUNl8fSMvZ6IDwJCJRfoI7IR4Cub9nDsha6RwR02xUZpGq1utUWUq9FKgYV6/abgOHjt45tquEgY0SDDHoJg+fxhXolKNrmfH/EoR5EdAKmjQfB1qvPmGIQIJ3g4gC2egVF7LqxtP8Ng2cViTKFUCIGbNFKEEmB/VbDlYdqLRn+du8oTg6jjbmfe+CbTM2+BcuySgbQVtQoOCt7s3U8wbsqGs3ZppZLnylwFe8Uql825ogANPckUnYDoOCogxQGXADajggjcw4AA8DSSyTQASMmjhhTQscBWGHHbo4YcghijiiCSWaOKJKKao4oostugiFBEAADs=" />\r\r
+ </td>\r\r
+ </tr>\r\r
+ </tbody>\r\r
+</table>\r\r
+</div><div class="HeaderSection">\r\r
+<h1 id="ProductName">\r\r
+<!-- @Start Product -->\r\r
+UART LLD Manifest\r\r
+<!-- @End Product -->\r\r
+</h1>\r\r
+\r\r
+<h2 id="ReleaseDate">\r\r
+<!-- @Start Date -->\r\r
+02-25-2016\r\r
+<!-- @End Date -->\r\r
+</h2>\r\r
+\r\r
+\r\r
+<h2 id="SRASID">\r\r
+<!-- @Start Date -->\r\r
+Manifest ID - SRAS00002582\r\r
+<!-- @End Date -->\r\r
+</h2>\r\r
+</div><div class="LegendSection">\r\r
+<h2>Legend</h2>\r\r
+<p>(explanation of the fields in the Manifest Table below)</p>\r\r
+<table>\r\r
+<tbody>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Software Name </b>\r\r
+</td>\r\r
+<td>\r\r
+The name of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Version</b>\r\r
+</td>\r\r
+<td>\r\r
+Version of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>License Type</b>\r\r
+</td>\r\r
+<td>\r\r
+Type of license(s) under which TI will be providing\r\r
+software to the licensee (e.g. BSD-3-Clause, GPL-2.0, TI TSPA License, TI\r\r
+Commercial License). The license could be under Commercial terms or Open Source. See Open Source Reference License Disclaimer in\r\r
+the Disclaimers Section. Whenever possible, TI will use an <a href="http://spdx.org/licenses/"> SPDX Short Identifier </a> for an Open Source\r\r
+License. TI Commercial license terms are not usually included in the manifest and are conveyed through a variety \r\r
+of means such as a clickwrap license upon install, \r\r
+a signed license agreement and so forth.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Location</b>\r\r
+</td>\r\r
+<td>\r\r
+The directory name and path on the media or a specific file where the Software is located. Typically fully qualified path names \r\r
+are not used and instead the relevant top level directory of the application is given. \r\r
+A notation often used in the manifests is [as installed]/directory/*. Note that the asterisk implies that all\r\r
+files under that directory are licensed as the License Type field denotes. Any exceptions to this will \r\r
+generally be denoted as [as installed]/directory/* except as noted below which means as shown in subsequent rows of \r\r
+the manifest.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Delivered As</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be “Source”, “Binary” or “Source\r\r
+and Binary” and is the primary form the content of the Software is delivered\r\r
+in. If the Software is delivered in an archive format, this field\r\r
+applies to the contents of the archive. If the word Limited is used\r\r
+with Source, as in “Limited Source” or “Limited Source and Binary” then\r\r
+only portions of the Source for the application are provided.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Modified by TI</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be “Yes” or “No”. A “Yes” means\r\r
+TI has made changes to the Software. A “No” means TI has not made any\r\r
+changes. Note: This field is not applicable for Software “Obtained\r\r
+from” TI.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Obtained from</b>\r\r
+</td>\r\r
+<td>\r\r
+This field specifies from where or from whom TI obtained\r\r
+the Software. It may be a URL to an Open Source site, a 3<sup>rd</sup>\r\r
+party licensor, or TI. See Links Disclaimer in the Disclaimers\r\r
+Section.\r\r
+</td>\r\r
+</tr>\r\r
+</tbody>\r\r
+</table>\r\r
+</div><div class="DisclaimerSection">\r\r
+<h2>Disclaimers</h2>\r\r
+<h3>Export Control Classification Number (ECCN)</h3>\r\r
+<p>Any use of ECCNs listed in the Manifest is at the user’s risk\r\r
+and without recourse to TI. Your\r\r
+company, as the exporter of record, is responsible for determining the\r\r
+correct classification of any item at\r\r
+the time of export. Any export classification by TI of Software is for\r\r
+TI’s internal use only and shall not be construed as a representation\r\r
+or warranty\r\r
+regarding the proper export classification for such Software or whether\r\r
+an export\r\r
+license or other documentation is required for exporting such Software</p>\r\r
+<h3>Links in the Manifest</h3>\r\r
+<p>Any\r\r
+links appearing on this Manifest\r\r
+(for example in the “Obtained from” field) were verified at the time\r\r
+the Manifest was created. TI makes no guarantee that any listed links\r\r
+will\r\r
+remain active in the future.</p>\r\r
+<h3>Open Source License References</h3>\r\r
+<p>Your company is responsible for confirming the\r\r
+applicable license terms for any open source Software\r\r
+listed in this Manifest that was not “Obtained from” TI. Any open\r\r
+source license\r\r
+specified in this Manifest for Software that was\r\r
+not “Obtained from” TI is for TI’s internal use only and shall not be\r\r
+construed as a representation or warranty regarding the proper open\r\r
+source license terms\r\r
+for such Software.</p>\r\r
+</div><div class="ExportSection">\r\r
+<h2>Export Information</h2>\r\r
+<p>ECCN for Software included in this release:</p>\r\r
+Publicly Available - Open Source or TI TSPA License\r\r
+</div><div class="ManifestTable">\r\r
+<!-- h2>Manifest Table</h2 -->\r\r
+ \r
+ <table> \r
+ <tbody> \r
+ \r
+ <h2> \r
+ UART LLD Manifest Table \r
+ </h2> \r
+ \r
+ \r
+ <p> \r
+ \r
+ See the Legend above for a description of these columns. \r
+ \r
+ </p> \r
+ \r
+ <table id="targetpackages" name="targetpackages"> \r
+ <thead> \r
+ <tr> \r
+ <td><b>Software Name</b></td> \r
+ <td><b>Version</b></td> \r
+ <td><b>License Type</b></td> \r
+ <td><b>Delivered As</b></td> \r
+ <td><b>Modified by TI</b></td> \r
+ <td></td> \r
+ <td></td> \r
+ </tr> \r
+ </thead> \r
+ \r
+ \r
+ <tbody> \r
+ <tr> \r
+ <td id="name" name="name" rowspan="2"> \r
+ UART LLD \r
+ </td> \r
+ <td id="version" name="version" rowspan="2"> \r
+ 01.00.00 \r
+ </td> \r
+ <td id="license" name="license" rowspan="2"> \r
+ BSD-3-Clause \r
+ </td> \r
+ <td id="delivered" name="delivered" rowspan="2"> \r
+ Source and Binary \r
+ </td> \r
+ <td id="modified" name="modified" rowspan="2"> \r
+ N/A \r
+ </td> \r
+ <td><b>Location</b></td> \r
+ <td id="location" name="location"> \r
+ packages/ti/drv/uart \r
+ </td> \r
+ </tr> \r
+ <tr> \r
+ <td><b>Obtained from</b></td> \r
+ <td id="obtained" name="obtained"> \r
+ Texas Instruments Incorporated \r
+ </td> \r
+ </tr> \r
+ \r
+ </tbody> \r
+ </table> \r
+ \r
+ </p> \r
+ </p> \r
+ <p> \r
+\r\r
+</div><div class="CreditSection">\r\r
+<h2>Credits</h2>\r\r
+<BR> <BR><BR><BR><BR>\r\r
+</div><div class="LicenseSection">\r\r
+<h2>Licenses</h2>\r\r
+<BR><h3><b> UART LLD Licenses </b></h3><BR> <BR><BR>/* Copyright (c) 2013 Texas Instruments Inc - http://www.ti.com */<BR><BR>/*<BR>*Â Redistribution and use in source and binary forms, with or without<BR>*Â modification, are permitted provided that the following conditions<BR>*Â are met:<BR>*<BR>*Â Â Â Redistributions of source code must retain the above copyright<BR>*Â Â Â notice, this list of conditions and the following disclaimer.<BR>*<BR>*Â Â Â Redistributions in binary form must reproduce the above copyright<BR>*Â Â Â notice, this list of conditions and the following disclaimer in the<BR>*Â Â Â documentation and/or other materials provided with the<BR>*Â Â Â distribution.<BR>*<BR>*Â Â Â Neither the name of Texas Instruments Incorporated nor the names of<BR>*Â Â Â its contributors may be used to endorse or promote products derived<BR>*Â Â Â from this software without specific prior written permission.<BR>*<BR>*Â THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS<BR>*Â "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<BR>*Â LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR<BR>*Â A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT<BR>*Â OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<BR>*Â SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<BR>*Â LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<BR>*Â DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<BR>*Â THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT<BR>*Â (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE<BR>*Â OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<BR>*<BR>*/<BR><BR><BR>\r\r
+</div>\r\r
+\r\r
+</body></html>
\ No newline at end of file
diff --git a/packages/ti/drv/uart/docs/UART_userGuide.doc b/packages/ti/drv/uart/docs/UART_userGuide.doc
new file mode 100644 (file)
index 0000000..eb5b334
Binary files /dev/null and b/packages/ti/drv/uart/docs/UART_userGuide.doc differ
index 0000000..eb5b334
Binary files /dev/null and b/packages/ti/drv/uart/docs/UART_userGuide.doc differ
diff --git a/packages/ti/drv/uart/docs/doxyfile.xdt b/packages/ti/drv/uart/docs/doxyfile.xdt
--- /dev/null
@@ -0,0 +1,269 @@
+%%{\r
+/*!\r
+ * This template implements the Doxyfile\r
+ */ \r
+ /* Versioning */\r
+ var ver = this;\r
+ var packageVersion = ver[0]+"."+ver[1]+"."+ver[2]+"."+ver[3];\r
+\r
+%%}\r
+\r
+# Doxyfile 1.5.6\r
+\r
+#---------------------------------------------------------------------------\r
+# Project related configuration options\r
+#---------------------------------------------------------------------------\r
+DOXYFILE_ENCODING = UTF-8\r
+PROJECT_NAME = "UART Low Level Driver"\r
+PROJECT_NUMBER = `packageVersion`\r
+OUTPUT_DIRECTORY = ./docs/doxygen\r
+CREATE_SUBDIRS = NO\r
+OUTPUT_LANGUAGE = English\r
+BRIEF_MEMBER_DESC = YES\r
+REPEAT_BRIEF = YES\r
+ABBREVIATE_BRIEF = "The $name class" \\r
+ "The $name widget" \\r
+ "The $name file" \\r
+ is \\r
+ provides \\r
+ specifies \\r
+ contains \\r
+ represents \\r
+ a \\r
+ an \\r
+ the\r
+ALWAYS_DETAILED_SEC = NO\r
+INLINE_INHERITED_MEMB = NO\r
+FULL_PATH_NAMES = NO\r
+STRIP_FROM_PATH = \r
+STRIP_FROM_INC_PATH = \r
+SHORT_NAMES = NO\r
+JAVADOC_AUTOBRIEF = NO\r
+QT_AUTOBRIEF = NO\r
+MULTILINE_CPP_IS_BRIEF = NO\r
+DETAILS_AT_TOP = NO\r
+INHERIT_DOCS = YES\r
+SEPARATE_MEMBER_PAGES = NO\r
+TAB_SIZE = 8\r
+ALIASES = \r
+OPTIMIZE_OUTPUT_FOR_C = YES\r
+OPTIMIZE_OUTPUT_JAVA = NO\r
+OPTIMIZE_FOR_FORTRAN = NO\r
+OPTIMIZE_OUTPUT_VHDL = NO\r
+BUILTIN_STL_SUPPORT = NO\r
+CPP_CLI_SUPPORT = NO\r
+SIP_SUPPORT = NO\r
+IDL_PROPERTY_SUPPORT = YES\r
+DISTRIBUTE_GROUP_DOC = NO\r
+SUBGROUPING = YES\r
+TYPEDEF_HIDES_STRUCT = NO\r
+#---------------------------------------------------------------------------\r
+# Build related configuration options\r
+#---------------------------------------------------------------------------\r
+EXTRACT_ALL = NO\r
+EXTRACT_PRIVATE = NO\r
+EXTRACT_STATIC = YES\r
+EXTRACT_LOCAL_CLASSES = YES\r
+EXTRACT_LOCAL_METHODS = NO\r
+EXTRACT_ANON_NSPACES = NO\r
+HIDE_UNDOC_MEMBERS = YES\r
+HIDE_UNDOC_CLASSES = YES\r
+HIDE_FRIEND_COMPOUNDS = NO\r
+HIDE_IN_BODY_DOCS = NO\r
+INTERNAL_DOCS = NO\r
+CASE_SENSE_NAMES = NO\r
+HIDE_SCOPE_NAMES = NO\r
+SHOW_INCLUDE_FILES = YES\r
+INLINE_INFO = YES\r
+SORT_MEMBER_DOCS = YES\r
+SORT_BRIEF_DOCS = NO\r
+SORT_GROUP_NAMES = NO\r
+SORT_BY_SCOPE_NAME = NO\r
+GENERATE_TODOLIST = YES\r
+GENERATE_TESTLIST = YES\r
+GENERATE_BUGLIST = YES\r
+GENERATE_DEPRECATEDLIST= YES\r
+ENABLED_SECTIONS = \r
+MAX_INITIALIZER_LINES = 30\r
+SHOW_USED_FILES = YES\r
+SHOW_FILES = YES\r
+SHOW_NAMESPACES = YES\r
+FILE_VERSION_FILTER = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to warning and progress messages\r
+#---------------------------------------------------------------------------\r
+QUIET = NO\r
+WARNINGS = YES\r
+WARN_IF_UNDOCUMENTED = YES\r
+WARN_IF_DOC_ERROR = YES\r
+WARN_NO_PARAMDOC = NO\r
+WARN_FORMAT = "$file:$line: $text"\r
+WARN_LOGFILE = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the input files\r
+#---------------------------------------------------------------------------\r
+INPUT = \r
+INPUT_ENCODING = UTF-8\r
+FILE_PATTERNS = *.h\r
+RECURSIVE = NO\r
+EXCLUDE = YES \\r
+ ./example \\r
+ ./test \\r
+ ./package \\r
+ ./packages\r
+EXCLUDE_SYMLINKS = NO\r
+EXCLUDE_PATTERNS = cslr_*.h\r
+EXCLUDE_SYMBOLS = \r
+EXAMPLE_PATH = \r
+EXAMPLE_PATTERNS = *\r
+EXAMPLE_RECURSIVE = NO\r
+IMAGE_PATH = \r
+INPUT_FILTER = \r
+FILTER_PATTERNS = \r
+FILTER_SOURCE_FILES = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to source browsing\r
+#---------------------------------------------------------------------------\r
+SOURCE_BROWSER = NO\r
+INLINE_SOURCES = NO\r
+STRIP_CODE_COMMENTS = YES\r
+REFERENCED_BY_RELATION = NO\r
+REFERENCES_RELATION = NO\r
+REFERENCES_LINK_SOURCE = YES\r
+USE_HTAGS = NO\r
+VERBATIM_HEADERS = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the alphabetical class index\r
+#---------------------------------------------------------------------------\r
+ALPHABETICAL_INDEX = NO\r
+COLS_IN_ALPHA_INDEX = 5\r
+IGNORE_PREFIX = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the HTML output\r
+#---------------------------------------------------------------------------\r
+GENERATE_HTML = YES\r
+HTML_OUTPUT = html\r
+HTML_FILE_EXTENSION = .html\r
+HTML_HEADER = ./docs/tiheader.htm\r
+HTML_FOOTER = ./docs/tifooter.htm\r
+HTML_STYLESHEET = \r
+GENERATE_HTMLHELP = YES\r
+GENERATE_DOCSET = NO\r
+DOCSET_FEEDNAME = "Doxygen generated docs"\r
+DOCSET_BUNDLE_ID = org.doxygen.Project\r
+HTML_DYNAMIC_SECTIONS = NO\r
+CHM_FILE = ..\..\uartlldDocs.chm\r
+HHC_LOCATION = hhc.exe\r
+GENERATE_CHI = NO\r
+CHM_INDEX_ENCODING = \r
+BINARY_TOC = NO\r
+TOC_EXPAND = NO\r
+DISABLE_INDEX = NO\r
+ENUM_VALUES_PER_LINE = 4\r
+GENERATE_TREEVIEW = NONE\r
+TREEVIEW_WIDTH = 250\r
+FORMULA_FONTSIZE = 10\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the LaTeX output\r
+#---------------------------------------------------------------------------\r
+GENERATE_LATEX = NO\r
+LATEX_OUTPUT = latex\r
+LATEX_CMD_NAME = latex\r
+MAKEINDEX_CMD_NAME = makeindex\r
+COMPACT_LATEX = NO\r
+PAPER_TYPE = a4wide\r
+EXTRA_PACKAGES = \r
+LATEX_HEADER = \r
+PDF_HYPERLINKS = YES\r
+USE_PDFLATEX = YES\r
+LATEX_BATCHMODE = NO\r
+LATEX_HIDE_INDICES = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the RTF output\r
+#---------------------------------------------------------------------------\r
+GENERATE_RTF = NO\r
+RTF_OUTPUT = rtf\r
+COMPACT_RTF = NO\r
+RTF_HYPERLINKS = NO\r
+RTF_STYLESHEET_FILE = \r
+RTF_EXTENSIONS_FILE = \r
+#---------------------------------------------------------------------------\r
+# configuration options related to the man page output\r
+#---------------------------------------------------------------------------\r
+GENERATE_MAN = NO\r
+MAN_OUTPUT = man\r
+MAN_EXTENSION = .3\r
+MAN_LINKS = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the XML output\r
+#---------------------------------------------------------------------------\r
+GENERATE_XML = NO\r
+XML_OUTPUT = xml\r
+XML_SCHEMA = \r
+XML_DTD = \r
+XML_PROGRAMLISTING = YES\r
+#---------------------------------------------------------------------------\r
+# configuration options for the AutoGen Definitions output\r
+#---------------------------------------------------------------------------\r
+GENERATE_AUTOGEN_DEF = NO\r
+#---------------------------------------------------------------------------\r
+# configuration options related to the Perl module output\r
+#---------------------------------------------------------------------------\r
+GENERATE_PERLMOD = NO\r
+PERLMOD_LATEX = NO\r
+PERLMOD_PRETTY = YES\r
+PERLMOD_MAKEVAR_PREFIX = \r
+#---------------------------------------------------------------------------\r
+# Configuration options related to the preprocessor \r
+#---------------------------------------------------------------------------\r
+ENABLE_PREPROCESSING = YES\r
+MACRO_EXPANSION = NO\r
+EXPAND_ONLY_PREDEF = NO\r
+SEARCH_INCLUDES = YES\r
+INCLUDE_PATH = \r
+INCLUDE_FILE_PATTERNS = \r
+PREDEFINED = \r
+EXPAND_AS_DEFINED = \r
+SKIP_FUNCTION_MACROS = YES\r
+#---------------------------------------------------------------------------\r
+# Configuration::additions related to external references \r
+#---------------------------------------------------------------------------\r
+TAGFILES = \r
+GENERATE_TAGFILE = \r
+ALLEXTERNALS = NO\r
+EXTERNAL_GROUPS = YES\r
+PERL_PATH = /usr/bin/perl\r
+#---------------------------------------------------------------------------\r
+# Configuration options related to the dot tool \r
+#---------------------------------------------------------------------------\r
+CLASS_DIAGRAMS = NO\r
+MSCGEN_PATH = \r
+HIDE_UNDOC_RELATIONS = YES\r
+HAVE_DOT = NO\r
+DOT_FONTPATH = \r
+CLASS_GRAPH = YES\r
+COLLABORATION_GRAPH = YES\r
+GROUP_GRAPHS = YES\r
+UML_LOOK = NO\r
+TEMPLATE_RELATIONS = NO\r
+INCLUDE_GRAPH = YES\r
+INCLUDED_BY_GRAPH = YES\r
+CALL_GRAPH = NO\r
+CALLER_GRAPH = NO\r
+GRAPHICAL_HIERARCHY = YES\r
+DIRECTORY_GRAPH = YES\r
+DOT_IMAGE_FORMAT = png\r
+DOT_PATH = \r
+DOTFILE_DIRS = \r
+DOT_GRAPH_MAX_NODES = 50\r
+MAX_DOT_GRAPH_DEPTH = 1000\r
+DOT_TRANSPARENT = YES\r
+DOT_MULTI_TARGETS = NO\r
+GENERATE_LEGEND = YES\r
+DOT_CLEANUP = YES\r
+#---------------------------------------------------------------------------\r
+# Configuration::additions related to the search engine \r
+#---------------------------------------------------------------------------\r
+SEARCHENGINE = NO\r
+\r
+\r
diff --git a/packages/ti/drv/uart/docs/tifooter.htm b/packages/ti/drv/uart/docs/tifooter.htm
--- /dev/null
@@ -0,0 +1,4 @@
+<hr size="1"><small>\r
+Copyright $year, Texas Instruments Incorporated</small>\r
+</body>\r
+</html>\r
diff --git a/packages/ti/drv/uart/docs/tiheader.htm b/packages/ti/drv/uart/docs/tiheader.htm
--- /dev/null
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">\r
+<title>$title</title>\r
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css">\r
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css">\r
+</head><body>\r
+<table width=100%>\r
+<tr>\r
+ <td bgcolor="black" width="1"><a href="http://www.ti.com"><img border=0 src="../../tilogo.gif"></a></td>\r
+ <td bgcolor="red"><img src="../../titagline.gif"></td>\r
+</tr>\r
+</table>\r
diff --git a/packages/ti/drv/uart/docs/tilogo.gif b/packages/ti/drv/uart/docs/tilogo.gif
new file mode 100755 (executable)
index 0000000..f2fab2d
Binary files /dev/null and b/packages/ti/drv/uart/docs/tilogo.gif differ
index 0000000..f2fab2d
Binary files /dev/null and b/packages/ti/drv/uart/docs/tilogo.gif differ
diff --git a/packages/ti/drv/uart/docs/titagline.gif b/packages/ti/drv/uart/docs/titagline.gif
new file mode 100755 (executable)
index 0000000..743a024
Binary files /dev/null and b/packages/ti/drv/uart/docs/titagline.gif differ
index 0000000..743a024
Binary files /dev/null and b/packages/ti/drv/uart/docs/titagline.gif differ
diff --git a/packages/ti/drv/uart/example/Module.xs b/packages/ti/drv/uart/example/Module.xs
--- /dev/null
@@ -0,0 +1,58 @@
+/******************************************************************************\r
+ * FILE PURPOSE: CPPI LLD example files.\r
+ ******************************************************************************\r
+ * FILE NAME: module.xs\r
+ *\r
+ * DESCRIPTION: \r
+ * This file contains the module specification for CPPI LLD example files.\r
+ *\r
+ * Copyright (C) 2009, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* Load the library utility. */\r
+var libUtility = xdc.loadCapsule ("../build/buildlib.xs");\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : modBuild\r
+ **************************************************************************\r
+ * DESCRIPTION :\r
+ * The function is used to add all the source files in the example \r
+ * directory into the package.\r
+ **************************************************************************/\r
+function modBuild() \r
+{\r
+ /* Add all the .c files to the release package. */\r
+ var exampleFiles = libUtility.listAllFiles (".c", "example", true);\r
+ for (var k = 0 ; k < exampleFiles.length; k++)\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+ /* Add all the .h files to the release package. */\r
+ var exampleFiles = libUtility.listAllFiles (".h", "example", true);\r
+ for (var k = 0 ; k < exampleFiles.length; k++)\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+ /* Add all the .cmd files to the release package. */\r
+ var exampleFiles = libUtility.listAllFiles (".cmd", "example", true);\r
+ for (var k = 0 ; k < exampleFiles.length; k++)\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+ /* Add all the .cfg files to the release package. */\r
+ var exampleFiles = libUtility.listAllFiles (".cfg", "example", true);\r
+ for (var k = 0 ; k < exampleFiles.length; k++)\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+ /* Add all the make files to the release package. */\r
+ var exampleFiles = libUtility.listAllFiles ("makefile", "example", true);\r
+ for (var k = 0 ; k < exampleFiles.length; k++)\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+ /* Add the .txt to the package */\r
+ var exampleFiles = libUtility.listAllFiles (".txt", "example", true);\r
+ for (var k = 0 ; k < exampleFiles.length; k++)\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = exampleFiles[k];\r
+\r
+ /* Add all the .mk files to the release package. */\r
+ var mkFiles = libUtility.listAllFiles (".mk", "example", true);\r
+ for (var k = 0 ; k < mkFiles.length; k++)\r
+ Pkg.otherFiles[Pkg.otherFiles.length++] = mkFiles[k];\r
+\r
+}\r
diff --git a/packages/ti/drv/uart/example/UART_BasicExample_Intr_ExampleProject/makefile b/packages/ti/drv/uart/example/UART_BasicExample_Intr_ExampleProject/makefile
--- /dev/null
@@ -0,0 +1,47 @@
+# Makefile for UART sample app
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+APP_NAME = drv_uart_intr_mode_app
+
+#Name of the directory created under packages/ti/binary/
+APP_NAME = UART_BasicExample_Intr_ExampleProject
+# Name of the binary if different from the default (APP_NAME)_$(BOARD_$(CORE)_<build_profile>
+LOCAL_APP_NAME = UART_BasicExample_Intr_$(BOARD)_$(CORE)Example_Project
+
+
+ifeq ($(SOC),$(filter $(SOC), tda2xx tda2px dra75x dra78x tda2ex tda3xx))
+SRCDIR = . src
+INCDIR = . src
+# Common source files across all platforms and cores
+SRCS_COMMON += uart_intr_test.c
+endif
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk
+
+# List all the components required by the application
+COMP_LIST_COMMON = uart osal_tirtos csl
+
+ifeq ($(SOC),$(filter $(SOC), am65xx))
+COMP_LIST_COMMON += sciclient
+endif
+
+# Enable XDC build for application by providing XDC CFG File per core
+XDC_CFG_FILE_$(CORE) = uartSample.cfg
+
+PACKAGE_SRCS_COMMON = .
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS)
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/example/UART_BasicExample_Intr_ExampleProject/src/uart_intr_test.c b/packages/ti/drv/uart/example/UART_BasicExample_Intr_ExampleProject/src/uart_intr_test.c
--- /dev/null
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+ * \file uart_test.c
+ *
+ * \brief Example application main file. This application will demonstrate
+ * UART RTOS driver for interrupt mode.
+ * This file performs as mentioned below:
+ *
+ * 1. Configure UART using structure UART_Params where user can configure
+ * readmode writemode etc. different parameters.
+ * 2. First call UART_init()
+ * 3. Call UART_open with UART_Params structure to get UART instance handle.
+ * 4. Then user is expected to input some data(can be upto max 1000 chars)
+ * and it is printed back on console using UART RTOS API's
+ * UART_read() and UART_write() respectively.
+ * Note
+ * 1. The sample application is written for TDAXX EVM, DRA75X EVM and AM57XX.
+ * 2. The UART instance used is UART1 for TDA2XX,AM57XX,DRA75X and
+ * UART3 for TDA3XX,DRA78X
+ *
+**/
+
+/* ========================================================================== */
+/* Include Files */
+/* ========================================================================== */
+/* XDCtools Header files */
+#include <xdc/std.h>
+#include <xdc/cfg/global.h>
+#include <xdc/runtime/Error.h>
+#include <xdc/runtime/System.h>
+
+/* BIOS Header files */
+#include <ti/sysbios/BIOS.h>
+#include <ti/sysbios/knl/Task.h>
+
+#include "stdio.h"
+#include "stdint.h"
+#include "stdlib.h"
+#include "string.h"
+
+/* UART Header files */
+#include <ti/drv/uart/UART.h>
+#include <ti/drv/uart/src/UART_osal.h>
+#include <ti/csl/hw_types.h>
+#include <ti/csl/soc.h>
+
+/* ========================================================================== */
+/* Macros & Typedefs */
+/* ========================================================================== */
+#if defined (SOC_TDA2XX) || defined (SOC_TDA2PX) || defined (SOC_DRA75x) || defined (SOC_AM572x) || defined (SOC_TDA2EX) || defined (SOC_AM571x)
+#define UART_INSTANCE 0
+#define XBAR_INST CSL_XBAR_INST_IPU1_IRQ_44
+#define XBAR_IRQ CSL_XBAR_UART1_IRQ
+#endif
+#if defined (SOC_TDA3XX) || defined (SOC_DRA78x)
+#define UART_INSTANCE 2
+#endif
+
+/* ========================================================================== */
+/* Internal Function Declarations */
+/* ========================================================================== */
+/* None */
+
+/* ========================================================================== */
+/* Global Variables */
+/* ========================================================================== */
+UART_Handle uart_handle;
+
+/* UART parameters structure polled mode*/
+const UART_Params user_params = {
+ UART_MODE_BLOCKING, /* readMode */
+ UART_MODE_BLOCKING, /* writeMode */
+ SemaphoreP_WAIT_FOREVER,/* readTimeout */
+ SemaphoreP_WAIT_FOREVER,/* writeTimeout */
+ NULL, /* readCallback */
+ NULL, /* writeCallback */
+ UART_RETURN_NEWLINE, /* readReturnMode */
+ UART_DATA_TEXT, /* readDataMode */
+ UART_DATA_TEXT, /* writeDataMode */
+ UART_ECHO_ON, /* readEcho */
+ 115200, /* baudRate */
+ UART_LEN_8, /* dataLength */
+ UART_STOP_ONE, /* stopBits */
+ UART_PAR_NONE /* parityType */
+};
+
+/* ========================================================================== */
+/* Function Definitions */
+/* ========================================================================== */
+void padConfig_prcmEnable()
+{
+#if defined (SOC_AM572x) || defined (SOC_AM571x)
+ /*Pad configurations */
+ HW_WR_REG32(CSL_MPU_CORE_PAD_IO_REGISTERS_REGS+CSL_CONTROL_CORE_PAD_IO_PAD_UART1_RXD,0x00040000);
+ HW_WR_REG32(CSL_MPU_CORE_PAD_IO_REGISTERS_REGS+CSL_CONTROL_CORE_PAD_IO_PAD_UART1_TXD,0x00000000);
+#endif
+#if defined (SOC_TDA2XX) || defined (SOC_TDA2PX) || defined (SOC_TDA2EX) || defined (SOC_DRA75x)
+ /*Pad configurations */
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_UART1_RXD,0x00040000);
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_UART1_TXD,0x00000000);
+#endif
+#if defined (SOC_TDA3XX) || defined (SOC_DRA78x)
+ /*Pad configurations */
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_IO_SPI1_SCLK,0x00040001);
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_IO_SPI1_CS0,0x00000001);
+#endif
+}
+
+void uart_test(UArg arg0, UArg arg1)
+{
+ UART_Params params;
+ int32_t count;
+ char input = '\n';
+ char buffPointer[1000];
+ char echoPrompt[] = "\nuart driver example test:\nEnter some data or press the esc \n";
+ char echoPrompt1[] = "Data received is\n";
+
+ padConfig_prcmEnable();
+#if defined (SOC_TDA2XX) || defined (SOC_TDA2PX) || defined (SOC_DRA75x) || defined (SOC_AM572x) || defined (SOC_TDA2EX) || defined (SOC_AM571x)
+ CSL_xbarIrqConfigure(CSL_XBAR_IRQ_CPU_ID_IPU1,XBAR_INST,XBAR_IRQ);
+#endif
+
+ UART_init();
+ params = user_params;
+ uart_handle = UART_open(UART_INSTANCE, ¶ms);
+
+ UART_write(uart_handle,echoPrompt,sizeof(echoPrompt));
+
+ while(1)
+ {
+ count=UART_read(uart_handle,buffPointer,1000);
+ UART_write(uart_handle,&input,1U);
+ UART_write(uart_handle,echoPrompt1,sizeof(echoPrompt1));
+ UART_write(uart_handle,buffPointer,count);
+ UART_write(uart_handle,echoPrompt,sizeof(echoPrompt));
+ }
+}
+
+int main(void)
+{
+ Task_Handle task;
+ Error_Block eb;
+
+ Error_init(&eb);
+
+ task = Task_create(uart_test, NULL, &eb);
+ if (task == NULL) {
+ System_printf("Task_create() failed!\n");
+ BIOS_exit(0);
+ }
+
+ /* Start BIOS */
+ BIOS_start();
+ return (0);
+}
+/********************************* End of file ******************************/
diff --git a/packages/ti/drv/uart/example/UART_BasicExample_Intr_ExampleProject/uartSample.cfg b/packages/ti/drv/uart/example/UART_BasicExample_Intr_ExampleProject/uartSample.cfg
--- /dev/null
@@ -0,0 +1,31 @@
+/* ========================================================================== */
+/* CFG script for the UART sample */
+/* ========================================================================== */
+
+/* use modules */
+var Main = xdc.useModule('xdc.runtime.Main');
+var System = xdc.useModule('xdc.runtime.System');
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Mailbox = xdc.useModule('ti.sysbios.knl.Mailbox');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+
+var core = java.lang.System.getenv("CORE");
+
+if (core == "c66x")
+{
+ var EventCombiner = xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
+}
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0xA0000;
+
+/*
+ * Create and install logger for the whole system
+ */
+BIOS.libType = BIOS.LibType_Custom;
diff --git a/packages/ti/drv/uart/example/UART_BasicExample_Polling_ExampleProject/makefile b/packages/ti/drv/uart/example/UART_BasicExample_Polling_ExampleProject/makefile
--- /dev/null
@@ -0,0 +1,40 @@
+# Makefile for UART sample app
+include $(PDK_INSTALL_PATH)/ti/build/Rules.make
+
+#Name of the directory created under packages/ti/binary/
+APP_NAME = UART_BasicExample_Polling_ExampleProject
+# Name of the binary if different from the default (APP_NAME)_$(BOARD_$(CORE)_<build_profile>
+LOCAL_APP_NAME = UART_BasicExample_Polling_$(BOARD)_$(CORE)Example_Project
+
+ifeq ($(SOC),$(filter $(SOC), tda2xx tda2px dra75x dra78x tda2ex tda3xx))
+SRCDIR = . src
+INCDIR = . src
+# Common source files across all platforms and cores
+SRCS_COMMON += uart_polling_test.c
+endif
+
+# List all the external components/interfaces, whose interface header files
+# need to be included for this component
+INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk
+
+# List all the components required by the application
+COMP_LIST_COMMON = uart osal_tirtos csl
+
+# Enable XDC build for application by providing XDC CFG File per core
+XDC_CFG_FILE_$(CORE) = uartSample.cfg
+
+PACKAGE_SRCS_COMMON = .
+CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS)
+
+# Include common make files
+ifeq ($(MAKERULEDIR), )
+#Makerule path not defined, define this and assume relative path from ROOTDIR
+ MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
+ export MAKERULEDIR
+endif
+include $(MAKERULEDIR)/common.mk
+
+# OBJs and libraries are built by using rule defined in rules_<target>.mk
+# and need not be explicitly specified here
+
+# Nothing beyond this point
diff --git a/packages/ti/drv/uart/example/UART_BasicExample_Polling_ExampleProject/src/uart_polling_test.c b/packages/ti/drv/uart/example/UART_BasicExample_Polling_ExampleProject/src/uart_polling_test.c
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/**
+ * \file uart_test.c
+ *
+ * \brief Example application main file. This application will demonstrate
+ * UART RTOS driver for polling mode.
+ * This file performs as mentioned below:
+ *
+ * 1. Configure UART using structure UART_Params where user can configure
+ * readmode writemode etc. different parameters.
+ * 2. First call UART_init()
+ * 3. Call UART_open with UART_Params structure to get UART instance handle.
+ * 4. Then user is expected to input some data(can be upto max 1000 chars)
+ * and it is printed back on console using UART RTOS API's
+ * UART_readPolling() and UART_write() respectively.
+ * Note
+ * 1. The sample application is written for TDAXX EVM, DRA75X EVM and AM57XX.
+ * 2. The UART instance used is UART1 for TDA2XX,AM57XX,DRA75X and
+ * UART3 for TDA3XX,DRA78X.
+ *
+**/
+
+/* ========================================================================== */
+/* Include Files */
+/* ========================================================================== */
+/* XDCtools Header files */
+#include <xdc/std.h>
+#include <xdc/cfg/global.h>
+#include <xdc/runtime/Error.h>
+#include <xdc/runtime/System.h>
+
+/* BIOS Header files */
+#include <ti/sysbios/BIOS.h>
+#include <ti/sysbios/knl/Task.h>
+
+#include "stdio.h"
+#include "stdint.h"
+#include "stdlib.h"
+#include "string.h"
+
+/* UART Header files */
+#include <ti/drv/uart/UART.h>
+#include <ti/drv/uart/src/UART_osal.h>
+#include <ti/csl/hw_types.h>
+#include <ti/csl/soc.h>
+
+/* ========================================================================== */
+/* Macros & Typedefs */
+/* ========================================================================== */
+#if defined (SOC_TDA2XX) || defined (SOC_TDA2PX) || defined (SOC_DRA75x) || defined (SOC_AM572x) || defined (SOC_TDA2EX) || defined (SOC_AM571x)
+#define UART_INSTANCE 0
+#endif
+#if defined (SOC_TDA3XX) || defined (SOC_DRA78x)
+#define UART_INSTANCE 2
+#endif
+
+/* ========================================================================== */
+/* Internal Function Declarations */
+/* ========================================================================== */
+/* None */
+
+/* ========================================================================== */
+/* Global Variables */
+/* ========================================================================== */
+UART_Handle uart_handle;
+
+/* UART parameters structure polled mode*/
+const UART_Params user_params = {
+ UART_MODE_BLOCKING, /* readMode */
+ UART_MODE_BLOCKING, /* writeMode */
+ 0U, /* readTimeout */
+ 0U, /* writeTimeout */
+ NULL, /* readCallback */
+ NULL, /* writeCallback */
+ UART_RETURN_NEWLINE, /* readReturnMode */
+ UART_DATA_TEXT, /* readDataMode */
+ UART_DATA_TEXT, /* writeDataMode */
+ UART_ECHO_ON, /* readEcho */
+ 115200, /* baudRate */
+ UART_LEN_8, /* dataLength */
+ UART_STOP_ONE, /* stopBits */
+ UART_PAR_NONE /* parityType */
+};
+
+/* ========================================================================== */
+/* Function Definitions */
+/* ========================================================================== */
+void padConfig_prcmEnable()
+{
+#if defined (SOC_AM572x) || defined (SOC_AM571x)
+ /*Pad configurations */
+ HW_WR_REG32(CSL_MPU_CORE_PAD_IO_REGISTERS_REGS+CSL_CONTROL_CORE_PAD_IO_PAD_UART1_RXD,0x00040000);
+ HW_WR_REG32(CSL_MPU_CORE_PAD_IO_REGISTERS_REGS+CSL_CONTROL_CORE_PAD_IO_PAD_UART1_TXD,0x00000000);
+#endif
+#if defined (SOC_TDA2XX) || defined (SOC_TDA2PX) || defined (SOC_TDA2EX) || defined (SOC_DRA75x)
+ /*Pad configurations */
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_UART1_RXD,0x00040000);
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_UART1_TXD,0x00000000);
+#endif
+#if defined (SOC_TDA3XX) || defined (SOC_DRA78x)
+ /*Pad configurations */
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_IO_SPI1_SCLK,0x00040001);
+ HW_WR_REG32(SOC_CORE_PAD_IO_REGISTERS_BASE+CTRL_CORE_PAD_IO_SPI1_CS0,0x00000001);
+#endif
+}
+
+void uart_test(UArg arg0, UArg arg1)
+{
+ UART_Params params;
+ int32_t count;
+ char input = '\n';
+ char buffPointer[1000];
+ char echoPrompt[] = "\nuart driver example test:\nEnter some data or press the esc \n";
+ char echoPrompt1[] = "Data received is\n";
+
+ padConfig_prcmEnable();
+
+ UART_init();
+ params = user_params;
+ uart_handle = UART_open(UART_INSTANCE, ¶ms);
+
+ UART_write(uart_handle,echoPrompt,sizeof(echoPrompt));
+
+ while(1)
+ {
+ count=UART_readPolling(uart_handle,buffPointer,1000);
+ UART_write(uart_handle,&input,1U);
+ UART_write(uart_handle,echoPrompt1,sizeof(echoPrompt1));
+ UART_write(uart_handle,buffPointer,count);
+ UART_write(uart_handle,echoPrompt,sizeof(echoPrompt));
+ }
+}
+
+int main(void)
+{
+ Task_Handle task;
+ Error_Block eb;
+
+ Error_init(&eb);
+
+ task = Task_create(uart_test, NULL, &eb);
+ if (task == NULL) {
+ System_printf("Task_create() failed!\n");
+ BIOS_exit(0);
+ }
+
+ /* Start BIOS */
+ BIOS_start();
+ return (0);
+}
+/********************************* End of file ******************************/
diff --git a/packages/ti/drv/uart/example/UART_BasicExample_Polling_ExampleProject/uartSample.cfg b/packages/ti/drv/uart/example/UART_BasicExample_Polling_ExampleProject/uartSample.cfg
--- /dev/null
@@ -0,0 +1,31 @@
+/* ========================================================================== */
+/* CFG script for the UART sample */
+/* ========================================================================== */
+
+/* use modules */
+var Main = xdc.useModule('xdc.runtime.Main');
+var System = xdc.useModule('xdc.runtime.System');
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Mailbox = xdc.useModule('ti.sysbios.knl.Mailbox');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+
+var core = java.lang.System.getenv("CORE");
+
+if (core == "c66x")
+{
+ var EventCombiner = xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
+}
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0xA0000;
+
+/*
+ * Create and install logger for the whole system
+ */
+BIOS.libType = BIOS.LibType_Custom;
diff --git a/packages/ti/drv/uart/example/firmware_example/am335x/armv7/bios/UART_FwExample_bbbAM335x_armExampleProject.txt b/packages/ti/drv/uart/example/firmware_example/am335x/armv7/bios/UART_FwExample_bbbAM335x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/firmware_example/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/firmware_example/am335x/armv7/bios/am335x_app_bbbam335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM335X -DbbbAM335x -DBUILDCFG_MOD_UART -DPRU_ICSS_FW -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart -I${PDK_INSTALL_PATH} -I${PDK_INSTALL_PATH}/ti/starterware/include/am335x" -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static ${PDK_INSTALL_PATH}/ti/drv/uart/firmware/icss_uart/bin/am335x/a8host/REV1/icss_uart_PRU0.bin ${PDK_INSTALL_PATH}/ti/drv/uart/firmware/icss_uart/bin/am335x/a8host/REV1/icss_uart_PRU1.bin -Wl,-T,${PDK_INSTALL_PATH}/ti/build/pruss/lnk_a8_a9_a15_REV1.cmd -Wl,--gc-sections "
+-rtsc.setConfiguroOptions "-b ${PDK_INSTALL_PATH}/ti/build/am335x/config_am335x_a8.bld -DBOARD=bbbAM335x"
diff --git a/packages/ti/drv/uart/example/firmware_example/am335x/armv7/bios/am335x_app_bbbam335x.cfg b/packages/ti/drv/uart/example/firmware_example/am335x/armv7/bios/am335x_app_bbbam335x.cfg
--- /dev/null
@@ -0,0 +1,216 @@
+/**
+ * \file am335x_app_bbbam335x.cfg
+ *
+ * \brief Sysbios config file for UART example test project on AM335x BeagleBone.
+ *
+ */
+
+/*
+ * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0x8000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.useModule('ti.osal.Settings');
+Osal.osType = osType;
+
+/*use CSL package*/
+var socType = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "bbbAM335x"; // NOTE: Board_init() doesn't configure PRU-ICSS or UART1 module on BBB
+
+/* Load the uart package */
+var UartPackage = xdc.loadPackage('ti.drv.uart');
+//UartPackage.Settings.enableProfiling = true;
+UartPackage.Settings.socType = socType;
+UartPackage.Settings.enableSwIp = true;
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true;
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+ domain : 0,
+ imp : 1,
+ accPerm : 3,
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x4a300000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
diff --git a/packages/ti/drv/uart/example/firmware_example/src/main_uart_example.c b/packages/ti/drv/uart/example/firmware_example/src/main_uart_example.c
--- /dev/null
@@ -0,0 +1,182 @@
+
+/**
+ * @file main_uart_example.c
+ *
+ * @brief This file tests the UART driver APIs with all the suported
+ * input parameters values
+ */
+/*
+ * Copyright (c) 2014 - 2019, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* XDCtools Header files */
+#include <xdc/std.h>
+#include <xdc/cfg/global.h>
+#include <xdc/runtime/Error.h>
+#include <xdc/runtime/System.h>
+
+/* BIOS Header files */
+#include <ti/sysbios/BIOS.h>
+#include <ti/sysbios/knl/Task.h>
+
+/* CSL Header files */
+#include <ti/csl/csl_chip.h>
+
+/* UART Header files */
+#include <ti/drv/uart/UART.h>
+#include <ti/drv/uart/UART_stdio.h>
+#include <ti/drv/uart/soc/UART_soc.h>
+
+/* Board Header files */
+#include <ti/board/board.h>
+#include <ti/starterware/include/prcm.h>
+
+// Test UART instance
+#define UART_TEST_INSTANCE ( 9U )
+
+// Length of the input in number of characters
+#define INPUT_LENGTH ( 16U )
+
+char echoPrompt[]="\nuart driver and utils example test cases :\nEnter 150 characters or press the esc \n";
+char echoPrompt1[]="DATA RECEIVED IS\n ";
+
+bool Board_initUART(void)
+{
+ Board_initCfg boardCfg;
+ Board_STATUS boardStatus;
+ int32_t status;
+ bool ret = true;
+
+ /*
+ Initialize the UART PRU FW configuration.
+ Place before Board_init() to allow configuration to include BOARD_INIT_UART_STDIO.
+ */
+ UART_socInitFwCfg();
+
+ boardCfg = BOARD_INIT_PLL | BOARD_INIT_MODULE_CLOCK | BOARD_INIT_DDR | BOARD_INIT_ICSS_PINMUX;
+ //boardCfg |= BOARD_INIT_UART_STDIO;
+ //boardCfg |= BOARD_INIT_PINMUX_CONFIG;
+ boardStatus = Board_init(boardCfg);
+ if (boardStatus != BOARD_SOK)
+ {
+ ret = false;
+ }
+
+ if (ret == true)
+ {
+ // Enable PRU-ICSS module
+ status = PRCMModuleEnable(CHIPDB_MOD_ID_PRU_ICSS, 1U, 0U);
+ if (status != S_PASS)
+ {
+ ret = false;
+ }
+ }
+
+ if (ret == true)
+ {
+ // Enable UART1 HW module
+ status = PRCMModuleEnable(CHIPDB_MOD_ID_UART, 1U, 0U);
+ if (status != S_PASS)
+ {
+ ret = false;
+ }
+ }
+
+ return ret;
+}
+
+Void uart_test(UArg arg0, UArg arg1)
+{
+ uint32_t uartInst;
+ char input = '\n';
+ char *buffPointer;
+
+ // get UART instance ID
+ uartInst = (uint32_t)arg0;
+
+ UART_stdioInit(uartInst);
+
+ buffPointer = (char *)malloc(INPUT_LENGTH);
+ memset(buffPointer, 0, INPUT_LENGTH);
+
+ UART_puts("\nuart driver and utils example test cases :\nEnter 16 characters or press the esc \n",sizeof("uart driver and utils example test cases : please enter 16 characters or press the esc or carriage return\n"));
+
+ while (1)
+ {
+ memset(buffPointer,0,INPUT_LENGTH);
+ UART_gets(buffPointer, INPUT_LENGTH);
+ UART_puts(&input,1);
+ UART_printf("Data received is\n");
+ UART_puts(buffPointer, INPUT_LENGTH);
+ UART_printStatus("\nTest Passed\n");
+ UART_puts("\nuart driver and utils example test cases :\nEnter 16 characters or press the esc \n",sizeof("uart driver and utils example test cases : please enter 16 characters or press the esc or carriage return\n"));
+ }
+} /* uart_test */
+
+/*
+ * ======== main ========
+ */
+int main(void)
+{
+ Task_Handle task;
+ Task_Params taskParams;
+ Error_Block eb;
+
+ if (Board_initUART() == false)
+ {
+ System_printf("\nBoard_initUART failed!\n");
+ BIOS_exit(0);
+ }
+
+ Error_init(&eb);
+
+ // Initialize task params
+ Task_Params_init(&taskParams);
+ taskParams.arg0 = (UArg)UART_TEST_INSTANCE;
+ taskParams.arg1 = (UArg)0;
+ taskParams.stackSize = 1024*8;
+
+ // Create task
+ task = Task_create(uart_test, &taskParams, &eb);
+ if (task == NULL) {
+ System_printf("Task_create() failed!\n");
+ BIOS_exit(0);
+ }
+
+ /* Start BIOS */
+ BIOS_start();
+ return (0);
+} /* main */
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_bbbAM335x_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_bbbAM335x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_bbbam335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM335X -DbbbAM335x -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_evmAM335x_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_evmAM335x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_evmam335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM335X -DevmAM335x -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_iceAMIC110_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_iceAMIC110_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_iceamic110.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM335X -DiceAMIC110 -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_icev2AM335x_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_icev2AM335x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_icev2am335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM335X -Dicev2AM335x -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_skAM335x_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/UART_BasicExample_skAM335x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_skam335x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM335X -DskAM335x -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_bbbam335x.cfg b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_bbbam335x.cfg
--- /dev/null
@@ -0,0 +1,207 @@
+/**
+ * \file am335x_app_bbbam335x.cfg
+ *
+ * \brief Sysbios config file for UART example project on AM335x BeagleBone.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the uart package */
+var Uart = xdc.loadPackage('ti.drv.uart');
+Uart.Settings.socType = socType;
+
+/* Load the spi package */
+var socType = "am335x";
+var I2C = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "bbbAM335x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true;
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_evmam335x.cfg b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_evmam335x.cfg
--- /dev/null
@@ -0,0 +1,207 @@
+/**
+ * \file am335x_app_evmam335x.cfg
+ *
+ * \brief Sysbios config file for UART example project on AM335x GP EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the uart package */
+var Uart = xdc.loadPackage('ti.drv.uart');
+Uart.Settings.socType = socType;
+
+/* Load the spi package */
+var socType = "am335x";
+var I2C = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "evmAM335x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true;
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_iceamic110.cfg b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_iceamic110.cfg
--- /dev/null
@@ -0,0 +1,207 @@
+/**
+ * \file am335x_app_iceamic110.cfg
+ *
+ * \brief Sysbios config file for UART example project on AM335x ICEV2 EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the uart package */
+var Uart = xdc.loadPackage('ti.drv.uart');
+Uart.Settings.socType = socType;
+
+/* Load the spi package */
+var socType = "am335x";
+var I2C = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "iceAMIC110";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true;
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_icev2am335x.cfg b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_icev2am335x.cfg
--- /dev/null
@@ -0,0 +1,207 @@
+/**
+ * \file am335x_app_icev2am335x.cfg
+ *
+ * \brief Sysbios config file for UART example project on AM335x ICEV2 EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the uart package */
+var Uart = xdc.loadPackage('ti.drv.uart');
+Uart.Settings.socType = socType;
+
+/* Load the spi package */
+var socType = "am335x";
+var I2C = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "icev2AM335x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true;
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
diff --git a/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_skam335x.cfg b/packages/ti/drv/uart/example/sample/am335x/armv7/bios/am335x_app_skam335x.cfg
--- /dev/null
@@ -0,0 +1,207 @@
+/**
+ * \file am335x_app_skam335x.cfg
+ *
+ * \brief Sysbios config file for UART example project on AM335x SK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = true;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType = "am335x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the uart package */
+var Uart = xdc.loadPackage('ti.drv.uart');
+Uart.Settings.socType = socType;
+
+/* Load the spi package */
+var socType = "am335x";
+var I2C = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "skAM335x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a8.Cache');
+Cache.enableCache = true;
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44e00400;;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x481a6000;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
diff --git a/packages/ti/drv/uart/example/sample/am437x/armv7/bios/UART_BasicExample_evmAM437x_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am437x/armv7/bios/UART_BasicExample_evmAM437x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_evmam437x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a9 -mtune=cortex-a9 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM437X -DevmAM437x -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am437x/armv7/bios/UART_BasicExample_idkAM437x_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am437x/armv7/bios/UART_BasicExample_idkAM437x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_idkam437x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a9 -mtune=cortex-a9 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM437X -DidkAM437x -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am437x/armv7/bios/UART_BasicExample_skAM437x_armExampleProject.txt b/packages/ti/drv/uart/example/sample/am437x/armv7/bios/UART_BasicExample_skAM437x_armExampleProject.txt
--- /dev/null
@@ -0,0 +1,5 @@
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/src/main_uart_example.c"
+-ccs.linkFile "PDK_INSTALL_PATH/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_skam437x.cfg"
+-ccs.setCompilerOptions "-c -mcpu=cortex-a9 -mtune=cortex-a9 -march=armv7-a -marm -mfloat-abi=hard -DSOC_AM437X -DskAM437x -DBUILDCFG_MOD_UART -g -gstrict-dwarf -Wall -MMD -MP -I${PDK_INSTALL_PATH}/ti/drv/uart " -rtsc.enableRtsc
+-ccs.setLinkerOptions " -lgcc -lrdimon -lm -lnosys -nostartfiles -static -Wl,--gc-sections "
+
diff --git a/packages/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_evmam437x.cfg b/packages/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_evmam437x.cfg
--- /dev/null
@@ -0,0 +1,205 @@
+/**
+ * \file am437x_app_evmam437x.cfg
+ *
+ * \brief Sysbios config file for UART example project on AM437x GP EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = false;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+Hwi.initStackFlag = false;
+Hwi.checkStackFlag = false;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+BIOS.cpuFreq.lo = 600000000;
+
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType = "am437x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the uart package */
+var Uart = xdc.loadPackage('ti.drv.uart');
+Uart.Settings.socType = socType;
+
+/* Load the I2C package */
+var socType = "am437x";
+var I2C = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "evmAM437x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a9.Cache');
+Cache.enableCache = true;
+Cache.configureL2Sram = false;//DDR build
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44DF2800;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
diff --git a/packages/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_idkam437x.cfg b/packages/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_idkam437x.cfg
--- /dev/null
@@ -0,0 +1,205 @@
+/**
+ * \file am437x_app_idkam437x.cfg
+ *
+ * \brief Sysbios config file for UART example project on AM437x IDK EVM.
+ *
+ */
+
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* ================ General configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
+var SemihostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+
+/*
+ * Program.argSize sets the size of the .args section.
+ * The examples don't use command line args so argSize is set to 0.
+ */
+Program.argSize = 0x0;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x4000;
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+Defaults.common$.namedModule = false;
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+Error.raiseHook = null;
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+Text.isLoaded = false;
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+ */
+SysMin.flushAtExit = false;
+
+
+/* ================ BIOS configuration ================ */
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.libType = BIOS.LibType_Custom;
+BIOS.customCCOpts = BIOS.customCCOpts.replace(" -g ","");
+BIOS.assertsEnabled = false;
+BIOS.logsEnabled = false;
+BIOS.swiEnabled = false;
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 32000;
+
+Swi.common$.namedInstance = true;
+Program.sectionsExclude = ".*";
+
+Clock.tickPeriod = 1000;
+Hwi.dispatcherSwiSupport = false;
+Hwi.dispatcherTaskSupport = true;
+Hwi.dispatcherAutoNestingSupport = true;
+Hwi.initStackFlag = false;
+Hwi.checkStackFlag = false;
+
+Task.enableIdleTask = false;
+Task.initStackFlag = false;
+Task.checkStackFlag = false;
+BIOS.cpuFreq.lo = 600000000;
+
+
+/* ================ Driver configuration ================ */
+
+/* Load the OSAL package */
+var osType = "tirtos";
+var Osal = xdc.loadPackage('ti.osal');
+Osal.Settings.osType = osType;
+
+/*use CSL package*/
+var socType = "am437x";
+var Csl = xdc.loadPackage('ti.csl');
+Csl.Settings.deviceType = socType;
+
+/* Load the uart package */
+var Uart = xdc.loadPackage('ti.drv.uart');
+Uart.Settings.socType = socType;
+
+/* Load the I2C package */
+var socType = "am437x";
+var I2C = xdc.loadPackage('ti.drv.i2c');
+I2C.Settings.socType = socType;
+
+/* Load the board package */
+var Board = xdc.loadPackage('ti.board');
+Board.Settings.boardName = "idkAM437x";
+
+
+/* ================ Cache and MMU configuration ================ */
+
+var Cache = xdc.useModule('ti.sysbios.family.arm.a9.Cache');
+Cache.enableCache = true;
+Cache.configureL2Sram = false;//DDR build
+
+var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');
+Mmu.enableMMU = true;
+
+
+/* Force peripheral section to be NON cacheable strongly-ordered memory */
+var peripheralAttrs = {
+ type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
+ tex: 0,
+ bufferable : false, // bufferable
+ cacheable : false, // cacheable
+ shareable : false, // shareable
+ noexecute : true, // not executable
+};
+
+/* Define the base address of the 1 Meg page the peripheral resides in. */
+var peripheralBaseAddr = 0x44DF2800;
+
+/* Configure the corresponding MMU page descriptor accordingly */
+Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
+ peripheralBaseAddr,
+ peripheralAttrs);
+
diff --git a/packages/ti/drv/uart/example/sample/am437x/armv7/bios/am437x_app_skam437x.cfg b/packages/ti/drv/uart/example/sample/am