GR740-UM-DS, Nov 2017, Version 1.7
94
www.cobham.com/gaisler
GR740
9.4.3
Table 71.
0x08 - L2CFMA - L2C Flush (Memory address) register
Flush memory address register
9.4.4
Table 72.
0x0C - L2CFSI - L2C Flush (Set, Index) register
Flush set/index register
31
5
4
3
2
0
Memory Address (ADDR)
R
DI
FMODE
NR
0
0
0
rw
r
w
rw
31: 5
Memory Address (ADDR) - (For flush all cache lines, this field should be set to zero)
4
RESERVED
3
Cache disable (DI) - Setting this bit to ‘1’ is equal to setting the Cache enable bit to ‘0’ in the Cache
Control register
2: 0
Flush mode (FMODE) -
“001“: Invalidate one line, “010”: Write-back one line, “011“: Invalidate & Write-back one line.
“101“: Invalidate all lines, “110”: Write-back all lines, “111“: Invalidate & Write-back all lines.
Only dirty cache lines are written back to memory.
31
16
10
9
8
7
6
5
4
3
2
1
0
INDEX / TAG
FL VB DB R
WAY
DI WF FMODE
NR
0
0
0
0
0
0
0
0
rw
rw rw rw
r
rw
w rw
rw
31: 16
Cache line index (INDEX) - used when a specific cache line is flushed
31: 10
(TAG) - used when “way flush” is issued. If a specific cache line is flushed, bit should be set to zero.
When a way flush is issued, the bits in this field will be written to the TAGs for the selected cache
way.
9
Fetch Line (FL) - If set to ‘1’ data is fetched form memory when a “way flush” is issued. If a specific
cache line is flushed, this bit should be set to zero
8
Valid bit (VB) - used when “way flush” is issued. If a specific cache line is flushed, this bit should be
set to zero.
7
Dirty bit (DB) - used when “way flush” is issued. If a specific cache line is flushed, this bit should be
set to zero
6
RESERVED
5: 4
Cache way (WAY) -
3
Cache disable (DI) - Setting this bit to ‘1’ is equal to setting the Cache enable bit to ‘0’ in the Cache
Control register.
2
Way-flush (WF) - When set one way is flushed, If a specific cache line should be flushed, this bit
should be set to zero
1: 0
Flush mode (FMODE) -
line flush:
“01“: Invalidate one line
“10”: Write-back one line (if line is dirty)
“11“: Invalidate & Write-back one line (if line is dirty).
way flush:
“01“: Update Valid/Dirty bits according to register bit[8:7] and TAG according to register
bits[31:10]
“10”: Write-back dirty lines to memory
“11“: Update Valid/Dirty bits according to register bits [8:7] and TAG according to register
bits[31:10], and Write-back dirty lines to memory.