Changeset 2d5902d6 in rtems


Ignore:
Timestamp:
Jul 2, 2016, 4:52:44 PM (3 years ago)
Author:
Pavel Pisa <pisa@…>
Branches:
master
Children:
0e507d55
Parents:
0cb50ab
git-author:
Pavel Pisa <pisa@…> (07/02/16 16:52:44)
git-committer:
Pavel Pisa <pisa@…> (07/04/16 13:55:57)
Message:

arm/raspberrypi: update VideoCore? cache flush workaround to work on RPi2.

The arm_cp15_data_cache_clean_and_invalidate leads to hang on RPi2,
clean by individual lines works on RPi1 and RPi2.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/raspberrypi/misc/vc.c

    r0cb50ab r2d5902d6  
    7474    rtems_cache_flush_multiple_data_lines( buf, size );
    7575    rtems_cache_invalidate_multiple_data_lines( buf, size );
     76#elif 0
     77    /* Flush complete data cache, does not work on RPi2 for some reason */
     78    arm_cp15_data_cache_clean_and_invalidate();
    7679#else
    77     /* Flush complete data cache */
    78     arm_cp15_data_cache_clean_and_invalidate();
     80    /*
     81     * This is temporal workaround for missing cache meanager
     82     * which works on RPi2
     83     */
     84    size += (uintptr_t)buf & ~63;
     85    size = (size + 63) & ~63;
     86    while ( size ) {
     87      size -= 32;
     88      arm_cp15_data_cache_clean_and_invalidate_line(buf);
     89    }
    7990#endif
    8091  }
Note: See TracChangeset for help on using the changeset viewer.