diff mbox

[05/10] Keystone2: Add platform config headers

Message ID 1397476530-20816-6-git-send-email-taras.kondratiuk@linaro.org
State Superseded
Headers show

Commit Message

Taras Kondratiuk April 14, 2014, 11:55 a.m. UTC
Add configuration headers for C6638.

Signed-off-by: Taras Kondratiuk <taras.kondratiuk@linaro.org>
---
 .../include/configs/odp_config_platform.h          |   76 ++++++++++++++++
 .../include/configs/odp_config_platform_c6638.h    |   96 ++++++++++++++++++++
 2 files changed, 172 insertions(+)
 create mode 100644 platform/linux-keystone2/include/configs/odp_config_platform.h
 create mode 100644 platform/linux-keystone2/include/configs/odp_config_platform_c6638.h
diff mbox

Patch

diff --git a/platform/linux-keystone2/include/configs/odp_config_platform.h b/platform/linux-keystone2/include/configs/odp_config_platform.h
new file mode 100644
index 0000000..743d8dd
--- /dev/null
+++ b/platform/linux-keystone2/include/configs/odp_config_platform.h
@@ -0,0 +1,76 @@ 
+/*
+ * Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/
+ *   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 ODP_CONFIG_PLATFORM_H_
+#define ODP_CONFIG_PLATFORM_H_
+
+/* #include <openem/event_machine.h> */
+#if defined(TI_EM_C6678)
+#include <configs/odp_config_platform_c6678.h>
+#elif defined(TI_EM_C6614)
+#include <configs/odp_config_platform_c6614.h>
+#elif defined(TI_EM_C6638)
+#include <configs/odp_config_platform_c6638.h>
+#else
+#error "platform not defined or unsupported!"
+#endif
+
+#define TI_ODP_PUBLIC_DESC_SIZE		(64u)
+#define TI_ODP_PUBLIC_DESC_NUM		(4096u)
+#define TI_ODP_REGION_NUM		(2)  /* local regions are not used on Linux */
+
+#define MY_EM_DEVICE_ID              (0)
+#define MY_EM_PROCESS_ID             (0)
+
+/* 
+ * Queue, pool and event definitions
+ */
+#define MY_EM_PROC_QUEUE_NUM         (32)
+#define MY_EM_PROC_QUEUE_TYPE        (EM_QUEUE_TYPE_PARALLEL)
+#define MY_EM_PROC_EVENT_TYPE        (TI_EM_EVENT_TYPE_PRELOAD_OFF)
+/*
+#define MY_EM_POOL_NUM               (0)
+
+#define MY_EM_POOL_IDX               (0)
+#define MY_EM_EVENT_NUM              (2048)
+
+#define MY_EM_EVENT_BUF_SIZE         (32*16)
+#define MY_EM_BUF_MODE               (TI_EM_BUF_MODE_GLOBAL_TIGHT)
+
+#define MY_EM_EXIT_POOL_IDX          (1)
+#define MY_EM_EXIT_EVENT_NUM         (TI_EM_CORE_NUM)
+*/
+/* 
+ * Number of public and local events.
+ * Number of private events are defined somewhere else.
+ */
+//#define MY_EM_PUBLIC_EVENT_DSC_SIZE  (64u)
+//#define MY_EM_PUBLIC_EVENT_NUM       (2056)
+//#define MY_EM_REGION_NUM             (2)  /* local regions are not used on Linux */
+
+#endif /* ODP_CONFIG_PLATFORM_H_ */
diff --git a/platform/linux-keystone2/include/configs/odp_config_platform_c6638.h b/platform/linux-keystone2/include/configs/odp_config_platform_c6638.h
new file mode 100644
index 0000000..8193aab
--- /dev/null
+++ b/platform/linux-keystone2/include/configs/odp_config_platform_c6638.h
@@ -0,0 +1,96 @@ 
+/*
+ * Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/
+ *   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.
+ */
+
+
+/* 
+ * This is the typical configuration for TCI6638  (KeyStone 2, Linux ARM A15)
+ *
+ * Descriptors and PDSP communications memory must reside in contiguous and coherent DDR 
+ * (using CMA).
+ *
+ * On KeyStone2 QMSS regions do not need to be ordered.
+ */
+#ifndef ODP_CONFIG_PLATFORM_C6638_H_
+#define ODP_CONFIG_PLATFORM_C6638_H_
+
+/* Cores are here "EM cores" that are not necessarily tied to real "CPU cores" */
+#define MY_EM_CORE_NUM               (4)           /* number of cores used by OpenEM */
+#define MY_EM_INIT_CORE_IDX          (0)           /* core on which the init will be started */
+
+/* Index of the QMSS PDSP that will be used by OpenEM, Linux use QMSS PDSP0 for accumulator */
+#define MY_EM_SCHED_PDSP_IDX         (2)
+
+/* Define if we are polling or waiting on event interrupts when dispatching events */
+#define MY_EM_DISPATCH_MODE          (TI_EM_RH_POLL_MODE)
+
+/*
+ * Coherent contiguous memory used for PDSP <-> CPU communication
+ * We use one page per slot and CORE_NUM + 2 slots
+ */
+#ifdef TI_EM_USE_MSM
+#define MY_EM_PDSP_COMM_MEM_BASE     (0x0c000000) /* MSM */
+#else
+#define MY_EM_PDSP_COMM_MEM_BASE     (0x0)         /* use DDR from CMA (contiguous & coherent)*/
+#endif
+#define MY_EM_PDSP_COMM_MEM_VBASE    (0x0)         /* dynamic mapping */
+#define MY_EM_PDSP_COMM_MEM_SIZE     (0x00010000)  /* allowing 16 slots */
+#define MY_EM_PDSP_COMM_MEM_OFFSET   (0x0)         /* no offset */
+
+/* 
+ * Base physical address for event descriptors.
+ * In the future in will be managed by Linux or platform resource manager.
+ */
+#ifdef TI_EM_USE_MSM
+#define TI_ODP_PUBLIC_DESC_BASE       (0x0c100000)  /* MSM */
+#define TI_ODP_PUBLIC_DESC_VBASE      (0x0)         /* dynamic mapping */
+#define TI_ODP_PUBLIC_DESC_OFFSET     (0x0)         /* no offset, QMSS/PDSP mapping equal to CPU mapping */
+#else /* TI_EM_USE_MSM */
+#define TI_ODP_PUBLIC_DESC_BASE       (0x0)         /* use DDR from CMA (contiguous & coherent)*/
+#define TI_ODP_PUBLIC_DESC_VBASE      (0x0)         /* dynamic mapping */
+#define TI_ODP_PUBLIC_DESC_OFFSET     (0x0)         /* no offset, QMSS/PDSP mapping equal to CPU mapping */
+#endif /* TI_EM_USE_MSM */
+
+#define TI_ODP_PUBLIC_REGION_IDX      (1)           /* Linux uses 12 & 13 on ARM, set in DTS */
+#define TI_ODP_PRIVATE_REGION_IDX     (2)
+#define TI_ODP_PUBLIC_START_DESC_IDX  (0)           /* start index for desc (Linux starts at 0x4000, set in DTS) */
+#define TI_ODP_PRIVATE_START_DESC_IDX (-1)          /* Automatically computed */
+
+#define TI_ODP_PRIVATE_DESC_BASE      (TI_EM_PDSPSH_DRAM)      /* use PDSP data RAM */
+#define TI_ODP_PRIVATE_DESC_OFFSET    (TI_EM_PDSP_DRAM_OFFSET) /* offset between CPU and QMSS/PDSP mapping */
+#define TI_ODP_PRIVATE_DESC_VBASE     (0x0)                    /* dynamic mapping */
+
+/* 
+ * For the time being, free queues that can be used from user application are 
+ * harcoded here. In the future it will be provided by platform resource manager.
+ */
+#define TI_ODP_PUBLIC_QUEUE_BASE_IDX	(QMSS_GENERAL_PURPOSE_USER_QUEUE_BASE)
+#define TI_ODP_FREE_QUEUE_BASE_IDX	(TI_ODP_PUBLIC_QUEUE_BASE_IDX + ODP_CONFIG_QUEUES)
+#define MY_EM_PRIVATE_FREE_QUEUE_IDX	(TI_ODP_FREE_QUEUE_BASE_IDX + ODP_CONFIG_BUFFER_POOLS)
+#define MY_EM_SCHED_QUEUE_IDX		(MY_EM_PRIVATE_FREE_QUEUE_IDX + 2)
+
+#endif /* ODP_CONFIG_PLATFORM_C6638_H_ */
+