[keystone-rtos/edma3_lld.git] / packages / ti / sdo / edma3 / rm / sample / src / platforms / sample_tda2xx_cfg.c
diff --git a/packages/ti/sdo/edma3/rm/sample/src/platforms/sample_tda2xx_cfg.c b/packages/ti/sdo/edma3/rm/sample/src/platforms/sample_tda2xx_cfg.c
index 189c5f3f98569c9c28745414a837b456bbc773b4..015a851ff7fd89b2359f95bb68f4ea0ad298e116 100644 (file)
const unsigned int numDsps = NUM_DSPS;\r
\r
/* Determine the processor id by reading DNUM register. */\r
+/* Statically allocate the region numbers with cores. */\r
+int myCoreNum;\r
+#define PID0_ADDRESS 0xE00FFFE0\r
+#define CORE_ID_C0 0x0\r
+#define CORE_ID_C1 0x1\r
unsigned short determineProcId()\r
{\r
+unsigned short regionNo = numEdma3Instances;\r
+myCoreNum = numDsps;\r
#ifdef BUILD_TDA2XX_MPU\r
- return 0;\r
+\r
+ asm (" push {r0-r2} \n\t"\r
+ " MRC p15, 0, r0, c0, c0, 5\n\t"\r
+ " LDR r1, =myCoreNum\n\t"\r
+ " STR r0, [r1]\n\t"\r
+ " pop {r0-r2}\n\t");\r
+ if((myCoreNum & 0x03) == 1)\r
+ regionNo = 1;\r
+ else\r
+ regionNo = 0;\r
+#elif defined(BUILD_TDA2XX_IPU)\r
+myCoreNum = (*(unsigned int *)(PID0_ADDRESS));\r
+if(Core_getIpuId() == 1){\r
+ if(myCoreNum == CORE_ID_C0)\r
+ regionNo = 4;\r
+ else if (myCoreNum == CORE_ID_C1)\r
+ regionNo = 5;\r
+}\r
+if(Core_getIpuId() == 2){\r
+ if(myCoreNum == CORE_ID_C0)\r
+ regionNo = 6;\r
+ else if (myCoreNum == CORE_ID_C1)\r
+ regionNo = 7;\r
+}\r
#elif defined BUILD_TDA2XX_DSP\r
- return 1;\r
-#elif defined BUILD_TDA2XX_IPU0\r
- return 2;\r
-#elif defined BUILD_TDA2XX_IPU1\r
- return 3;\r
-#else\r
- return 4;\r
+extern __cregister volatile unsigned int DNUM;\r
+ myCoreNum = DNUM;\r
+ if(myCoreNum == 0)\r
+ regionNo = 2;\r
+ else\r
+ regionNo = 3;\r
#endif\r
+ return regionNo;\r
}\r
\r
signed char* getGlobalAddr(signed char* addr)\r