System Control Coprocessor
ARM DDI 0301H
Copyright © 2004-2009 ARM Limited. All rights reserved.
3-77
ID012310
Non-Confidential, Unrestricted Access
Because the least significant address bits are ignored, the transfer automatically
adjusts to a line length multiple spanning the programmed addresses.
The
Start Address
is the first VA of the block transfer. It uses the VA bits [31:5].
The
End Address
is the VA where the block transfer stops. This address is at the
start of the line containing the last address to be handled by the block transfer. It
uses the VA bits [31:5].
If the Start Address is greater than the End Address the effect is architecturally Unpredictable.
The ARM1176JZF-S processor does not perform cache operations in this case. All block
transfers are interruptible. When Block transfers are interrupted, the R14 value that is captured
is the address of the instruction that launched the block ope 4. This enables the standard
return mechanism for interrupts to restart the operation.
Exception behavior
The blocking block transfers cause a Data Abort on a translation fault if a valid page table entry
cannot be fetched. The FAR indicates the address that caused the fault, and the DFSR indicates
the reason for the fault.
TrustZone behavior
TrustZone affects cache operations as follows:
Secure world operations
In the Secure world cache operations can affect both Secure and Non-secure
cache lines:
•
Clean, invalidate, and clean and invalidate operations affect all cache lines
regardless of their status as locked or unlocked.
•
For clean, invalidate, and clean and invalidate operations with the Set and
Index format, the selected cache line is affected regardless of the Secure
tag.
•
For MVA operations clean, invalidate, and clean and invalidate:
—
when the MVA is marked as Non-secure in the page table, only
Non-secure entries are affected
—
when the MVA is marked as Secure in the page table, only Secure
entries are affected.
Non-secure world operations
In the Non-secure world:
•
Clean, invalidate, and clean and invalidate operations only affect
Non-secure cache lines regardless of the method used.
•
Any attempt to access Secure cache lines is ignored.
•
Invalidate Entire Data Cache and Invalidate Both Caches operations cause
an Undefined exception. This prevents invalidating lockdown entries that
might be configured as Secure.
—
the Invalidate Both Caches operation globally flushes the BTAC.
•
Invalidate Entire Instruction Cache operations:
—
cause an Undefined exception if lockdown entries are reserved for the
Secure world
—
affect all Secure and Non-secure cache entries if the lockdown entries
are not reserved for the Secure world
—
globally flush the BTAC.