\n
address_offset : 0x0 Bytes (0x0)
size : 0x20 byte (0x0)
mem_usage : registers
protection : not protected
Cache control
address_offset : 0x0 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
EN : When 1, enable the cache. When the cache is disabled, all XIP accesses
will go straight to the flash, without querying the cache. When enabled,
cacheable XIP accesses will query the cache, and the flash will
not be accessed if the tag matches and the valid bit is set.
If the cache is enabled, cache-as-SRAM accesses have no effect on the
cache data RAM, and will produce a bus error response.
bits : 0 - 0 (1 bit)
access : read-write
ERR_BADWRITE : When 1, writes to any alias other than 0x0 (caching, allocating)
will produce a bus fault. When 0, these writes are silently ignored.
In either case, writes to the 0x0 alias will deallocate on tag match,
as usual.
bits : 1 - 1 (1 bit)
access : read-write
POWER_DOWN : When 1, the cache memories are powered down. They retain state,
but can not be accessed. This reduces static power dissipation.
Writing 1 to this bit forces CTRL_EN to 0, i.e. the cache cannot
be enabled when powered down.
Cache-as-SRAM accesses will produce a bus error response when
the cache is powered down.
bits : 3 - 3 (1 bit)
access : read-write
Cache Access counter
A 32 bit saturating counter that increments upon each XIP access,
whether the cache is hit or not. This includes noncacheable accesses.
Write any value to clear.
address_offset : 0x10 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
FIFO stream address
address_offset : 0x14 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
STREAM_ADDR : The address of the next word to be streamed from flash to the streaming FIFO.
Increments automatically after each flash access.
Write the initial access address here before starting a streaming read.
bits : 2 - 31 (30 bit)
access : read-write
FIFO stream control
address_offset : 0x18 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
STREAM_CTR : Write a nonzero value to start a streaming read. This will then
progress in the background, using flash idle cycles to transfer
a linear data block from flash to the streaming FIFO.
Decrements automatically (1 at a time) as the stream
progresses, and halts on reaching 0.
Write 0 to halt an in-progress stream, and discard any in-flight
read, so that a new stream can immediately be started (after
draining the FIFO and reinitialising STREAM_ADDR)
bits : 0 - 21 (22 bit)
access : read-write
FIFO stream data
Streamed data is buffered here, for retrieval by the system DMA.
This FIFO can also be accessed via the XIP_AUX slave, to avoid exposing
the DMA to bus stalls caused by other XIP traffic.
address_offset : 0x1C Bytes (0x0)
size : 32 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0
Cache Flush control
address_offset : 0x4 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
FLUSH : Write 1 to flush the cache. This clears the tag memory, but
the data memory retains its contents. (This means cache-as-SRAM
contents is not affected by flush or reset.)
Reading will hold the bus (stall the processor) until the flush
completes. Alternatively STAT can be polled until completion.
bits : 0 - 0 (1 bit)
access : read-write
Cache Status
address_offset : 0x8 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
FLUSH_READY : Reads as 0 while a cache flush is in progress, and 1 otherwise.
The cache is flushed whenever the XIP block is reset, and also
when requested via the FLUSH register.
bits : 0 - 0 (1 bit)
access : read-only
FIFO_EMPTY : When 1, indicates the XIP streaming FIFO is completely empty.
bits : 1 - 1 (1 bit)
access : read-only
FIFO_FULL : When 1, indicates the XIP streaming FIFO is completely full.
The streaming FIFO is 2 entries deep, so the full and empty
flag allow its level to be ascertained.
bits : 2 - 2 (1 bit)
access : read-only
Cache Hit counter
A 32 bit saturating counter that increments upon each cache hit,
i.e. when an XIP access is serviced directly from cached data.
Write any value to clear.
address_offset : 0xC Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !
This website is sponsored by Embeetle, an IDE designed from scratch for embedded software developers.