The SYS/BIOS 6.45.1.29 documentation for the ti.sysbios.family.arm.a15.Cache module contains the following note:
From tests on the r2p4 Cortex-A15 within a 66AK2H14 PG2.0 device confirm that the invalidate instruction is treated as a clean/invalidate instruction.Note: The invalidate instruction is treated by A15 as a clean/invalidate instruction. Therefore, calls to Cache_inv()/Cache_invAll() will behave like Cache_wbInv()/Cache_wbInvAll() on A15.
From looking at the ARM Cortex-A15 documentation I haven't been able to work out if the behavior is due to a design decision or due to an errata. The ARM Cortex™-A15 Revision: r2p1 Technical Reference Manual ARM DDI 0438D (ID122011) implies the Data cache invalidate by MVA and Data cache invalidate by set/way should perform a Data Cache invalidate operation since the Cortex-A15 TRM just refers to the ARM Architecture Reference Manual:
In the ARM documentation the only note I can find about the DCISW invalidate by set/way instruction is treated by A15 as a DCCISW clean/invalidate by set/way instruction is the workaround description for errata 794724: L2 Cache initialization sequence may not function correctly if the L2 tag RAM requires two-cycle setup time.
The reason I started investigating the Cortex-A15 handling of the cache invalidate instructions is that found the code in bios_6_45_01_29\packages\gnu\targets\arm\rtsv7A\boot.asm which attempts to invalidate the entire L1 and L2 caches by set/way was actually performing a Data cache clean and invalidate by set/way which was causing program crashes by overwriting the downloaded program with "stale" data in the cache from a previous run. Initially I thought there was a bug in that the boot.asm code wasn't invalidating the L1 and L2 caches correctly - but then found the note in the ti.sysbios.family.arm.a15.Cache documentation about the invalidate instruction being handled as a clean/invalidate instruction.