TMP: listMP: Add Cache operation for v8A
authorSam Nelson <sam.nelson@ti.com>
Tue, 27 Mar 2018 12:43:34 +0000 (08:43 -0400)
committerSam Nelson <sam.nelson@ti.com>
Thu, 9 Aug 2018 20:01:32 +0000 (16:01 -0400)
Ideally with the coherence working between A53 and R5F, there is no
cache operations required from A53 side. But the coherence operations
requires the ISC registers configured for R5F transactions to be non-
secure.
Adding this as temporary workaround.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
packages/ti/sdo/ipc/ListMP.c

index 659757b52bfe28aa1deb279f561480f813e24857..2f2bdb1886f8decd0ed6fbb7192518246ec6cae7 100644 (file)
@@ -282,7 +282,7 @@ Bool ListMP_empty(ListMP_Handle handle)
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
-#ifdef xdc_target__isaCompatible_v7A
+#if defined(xdc_target__isaCompatible_v7A) || defined(xdc_target__isaCompatible_v8A)
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
@@ -340,7 +340,7 @@ Ptr ListMP_getHead(ListMP_Handle handle)
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
-#ifdef xdc_target__isaCompatible_v7A
+#if defined(xdc_target__isaCompatible_v7A) || defined(xdc_target__isaCompatible_v8A)
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
@@ -423,7 +423,7 @@ Ptr ListMP_getTail(ListMP_Handle handle)
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
-#ifdef xdc_target__isaCompatible_v7A
+#if defined(xdc_target__isaCompatible_v7A) || defined(xdc_target__isaCompatible_v8A)
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
@@ -655,7 +655,7 @@ Int ListMP_putHead(ListMP_Handle handle, ListMP_Elem *elem)
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
-#ifdef xdc_target__isaCompatible_v7A
+#if defined(xdc_target__isaCompatible_v7A) || defined(xdc_target__isaCompatible_v8A)
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
@@ -726,7 +726,7 @@ Int ListMP_putTail(ListMP_Handle handle, ListMP_Elem *elem)
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
     /* prevent another thread or processor from modifying the ListMP */
     key = GateMP_enter((GateMP_Handle)obj->gate);
 
-#ifdef xdc_target__isaCompatible_v7A
+#if defined(xdc_target__isaCompatible_v7A) || defined(xdc_target__isaCompatible_v8A)
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
     /* ARM speculative execution might have pulled attrs into cache */
     if (obj->cacheEnabled) {
         Cache_inv(attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL, TRUE);
@@ -859,7 +859,7 @@ Int ti_sdo_ipc_ListMP_Instance_init(ti_sdo_ipc_ListMP_Object *obj,
         obj->cacheEnabled = SharedRegion_isCacheEnabled(obj->regionId);
         obj->cacheLineSize = SharedRegion_getCacheLineSize(obj->regionId);
 
         obj->cacheEnabled = SharedRegion_isCacheEnabled(obj->regionId);
         obj->cacheLineSize = SharedRegion_getCacheLineSize(obj->regionId);
 
-#ifdef xdc_target__isaCompatible_v7A
+#if defined(xdc_target__isaCompatible_v7A) || defined(xdc_target__isaCompatible_v8A)
         /* ARM speculative execution might have pulled attrs into cache */
         if (obj->cacheEnabled) {
             Cache_inv(obj->attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL,
         /* ARM speculative execution might have pulled attrs into cache */
         if (obj->cacheEnabled) {
             Cache_inv(obj->attrs, sizeof(ti_sdo_ipc_ListMP_Attrs), Cache_Type_ALL,