Table 3-2 Instruction cache configuration interface registers (continued)
Offset
Name
Type Reset
Width Description
0x0FE8
PIDR2
RO
0x0000_000B
32
Product ID Register 2
0x0FEC
PIDR3
RO
0x0000_0000
32
Product ID Register 3
0x0FF0
CIDR0
RO
0x0000_000D
32
Component ID Register 0
0x0FF4
CIDR1
RO
0x0000_00F0
32
Component ID Register 1
0x0FF8
CIDR2
RO
0x0000_0005
32
Component ID Register 2
0x0FFC
CIDR3
RO
0x0000_00B1
32
Component ID Register 3
Note
• All instruction cache configuration interface registers are Secure Privilege access only.
• See the
Arm
®
CoreLink
™
SSE
‑
200 Subsystem for Embedded Technical Reference Manual (r1p0)
for
more information about the instruction cache configuration interface registers.
3.3.3
Processor cache programming
The following practices and techniques are recommended when programming the L1 cache in the
Musca
‑
S1 test chip:
Initialization
After powerup or reset, the cache powers up in a disabled state and begins the invalidation
process. Accesses arriving at the cache are not cached and bypass the cache. The cache can be
enabled during the invalidation process by setting the CACHEEN control bit in the
Instruction
Cache Control Register
, ICCTRL, to
0b1
. However, all accesses are still treated as uncached
and bypass the cache until the cache invalidation process completes.
At the end of the cache invalidation process, the interrupt status signal,
IC
, in the
Interrupt
Request Status Register
, ICIRQSTAT, is asserted. If that interrupt is already enabled or is
enabled later, an interrupt is raised. To enable caching of code fetches, you can poll this status
register, or wait for this interrupt to be raised before continuing code execution.
Cache disable
The cache can be disabled by clearing the CACHEEN control bit in the ICCTRL. Outstanding
accesses are completed before the cache is disabled. Software can read the CDC bit in
ICIRQSTAT Register, or enable the CDC interrupt and wait for the interrupt to arrive, after
clearing the CACHEEN bit.
Cache invalidation
You can invalidate the cache by setting the partial invalidate bit, PINV, or the full invalidate bit,
FINV, in the ICCTRL Register. Because the cache does not support Locked Lines, setting either
of these bits initiates a full cache invalidation. During cache invalidation, all accesses through
the cache are treated as uncached and bypass the cache until the invalidation process completes.
At the end of the invalidation process, the interrupt status, IC, is asserted. If that interrupt is
already enabled, or is enabled later, an interrupt is raised.
3 Programmers model
3.3 Processor elements
101835_0000_01_en
Copyright © 2019, 2020 Arm Limited or its affiliates. All rights
reserved.
3-55
Non-Confidential