\n

SPIFI

Peripheral Memory Blocks

address_offset : 0x0 Bytes (0x0)
size : 0x20 byte (0x0)
mem_usage : registers
protection : not protected

Registers

CTRL

CLIMIT

DATA

MCMD

STAT

CMD

ADDR

IDATA


CTRL

SPIFI control register
address_offset : 0x0 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CTRL CTRL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TIMEOUT CSHIGH D_PRFTCH_DIS INTEN MODE3 PRFTCH_DIS DUAL RFCLK FBCLK DMAEN

TIMEOUT : This field contains the number of serial clock periods without the processor reading data in memory mode, which will cause the SPIFI hardware to terminate the command by driving the CS pin high and negating the CMD bit in the Status register. (This allows the flash memory to enter a lower-power state.) If the processor reads data from the flash region after a time-out, the command in the Memory Command Register is issued again.
bits : 0 - 15 (16 bit)
access : read-write

CSHIGH : This field controls the minimum CS high time, expressed as a number of serial clock periods minus one.
bits : 16 - 19 (4 bit)
access : read-write

D_PRFTCH_DIS : This bit allows conditioning of memory mode prefetches based on the AHB HPROT (instruction/data) access information. A 1 in this register means that the SPIFI will not attempt a speculative prefetch when it encounters data accesses.
bits : 21 - 21 (1 bit)
access : read-write

INTEN : If this bit is 1 when a command ends, the SPIFI will assert its interrupt request output. See INTRQ in the status register for further details.
bits : 22 - 22 (1 bit)
access : read-write

MODE3 : SPI Mode 3 select.
bits : 23 - 23 (1 bit)
access : read-write

Enumeration:

0 : SCK_LOW

SCK LOW. The SPIFI drives SCK low after the rising edge at which the last bit of each command is captured, and keeps it low while CS is HIGH.

0x1 : SCK_HIGH

SCK HIGH. the SPIFI keeps SCK high after the rising edge for the last bit of each command and while CS is HIGH, and drives it low after it drives CS LOW. (Known serial flash devices can handle either mode, but some devices may require a particular mode for proper operation.) MODE3, RFCLK, and FBCLK should not all be 1, because in this case there is no final falling edge on SCK on which to sample the last data bit of the frame.

End of enumeration elements list.

PRFTCH_DIS : Cache prefetching enable. The SPIFI includes an internal cache. A 1 in this bit disables prefetching of cache lines.
bits : 27 - 27 (1 bit)
access : read-write

Enumeration:

0 : ENABLE

Enable. Cache prefetching enabled.

0x1 : DISABLE

Disable. Disables prefetching of cache lines.

End of enumeration elements list.

DUAL : Select dual protocol.
bits : 28 - 28 (1 bit)
access : read-write

Enumeration:

0 : QUAD

Quad protocol. This protocol uses IO3:0.

0x1 : DUAL

Dual protocol. This protocol uses IO1:0.

End of enumeration elements list.

RFCLK : Select active clock edge for input data.
bits : 29 - 29 (1 bit)
access : read-write

Enumeration:

0 : RISING_EDGE

Rising edge. Read data is sampled on rising edges on the clock, as in classic SPI operation.

0x1 : FALLING_EDGE

Falling edge. Read data is sampled on falling edges of the clock, allowing a full serial clock of of time in order to maximize the serial clock frequency. MODE3, RFCLK, and FBCLK should not all be 1, because in this case there is no final falling edge on SCK on which to sample the last data bit of the frame.

End of enumeration elements list.

FBCLK : Feedback clock select.
bits : 30 - 30 (1 bit)
access : read-write

Enumeration:

0 : INTERNAL_CLOCK

Internal clock. The SPIFI samples read data using an internal clock.

0x1 : FEEDBACK_CLOCK

Feedback clock. Read data is sampled using a feedback clock from the SCK pin. This allows slightly more time for each received bit. MODE3, RFCLK, and FBCLK should not all be 1, because in this case there is no final falling edge on SCK on which to sample the last data bit of the frame.

End of enumeration elements list.

DMAEN : A 1 in this bit enables the DMA Request output from the SPIFI. Set this bit only when a DMA channel is used to transfer data in peripheral mode. Do not set this bit when a DMA channel is used for memory-to-memory transfers from the SPIFI memory area. DMAEN should only be used in Command mode.
bits : 31 - 31 (1 bit)
access : read-write


CLIMIT

SPIFI limit register
address_offset : 0x10 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CLIMIT CLIMIT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CLIMIT

CLIMIT : Zero-based upper limit of cacheable memory
bits : 0 - 31 (32 bit)
access : read-write


DATA

SPIFI data register
address_offset : 0x14 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

DATA DATA read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DATA

DATA : Input or output data
bits : 0 - 31 (32 bit)
access : read-write


MCMD

SPIFI memory command register
address_offset : 0x18 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

MCMD MCMD read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 POLL DOUT INTLEN FIELDFORM FRAMEFORM OPCODE

POLL : This bit should be written as 0.
bits : 14 - 14 (1 bit)
access : read-write

DOUT : This bit should be written as 0.
bits : 15 - 15 (1 bit)
access : read-write

INTLEN : This field controls how many intermediate bytes precede the data. (Each such byte may require 8 or 2 SCK cycles, depending on whether the intermediate field is in serial, 2-bit, or 4-bit format.) Intermediate bytes are output by the SPIFI, and include post-address control information, dummy and delay bytes. See the description of the Intermediate Data register for the contents of such bytes.
bits : 16 - 18 (3 bit)
access : read-write

FIELDFORM : This field controls how the fields of the command are sent.
bits : 19 - 20 (2 bit)
access : read-write

Enumeration:

0 : ALL_SERIAL

All serial. All fields of the command are serial.

0x1 : QUAD_DUAL_DATA

Quad/dual data. Data field is quad/dual, other fields are serial.

0x2 : SERIAL_OPCODE

Serial opcode. Opcode field is serial. Other fields are quad/dual.

0x3 : ALL_QUAD_DUAL

All quad/dual. All fields of the command are in quad/dual format.

End of enumeration elements list.

FRAMEFORM : This field controls the opcode and address fields.
bits : 21 - 23 (3 bit)
access : read-write

Enumeration:

0x1 : OPCODE

Opcode. Opcode only, no address.

0x2 : OPCODE_1_BYTE

Opcode one byte. Opcode, least-significant byte of address.

0x3 : OPCODE_2_BYTES

Opcode two bytes. Opcode, 2 least-significant bytes of address.

0x4 : OPCODE_3_BYTES

Opcode three bytes. Opcode, 3 least-significant bytes of address.

0x5 : OPCODE_4_BYTES

Opcode four bytes. Opcode, 4 bytes of address.

0x6 : NO_OPCODE_3_BYTES

No opcode three bytes. No opcode, 3 least-significant bytes of address.

0x7 : NO_OPCODE_4_BYTES

No opcode, 4 bytes of address.

End of enumeration elements list.

OPCODE : The opcode of the command (not used for some FRAMEFORM values).
bits : 24 - 31 (8 bit)
access : read-write


STAT

SPIFI status register
address_offset : 0x1C Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

STAT STAT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MCINIT CMD RESET INTRQ

MCINIT : This bit is set when software successfully writes the Memory Command register, and is cleared by Reset or by writing a 1 to the RESET bit in this register.
bits : 0 - 0 (1 bit)
access : read-write

CMD : This bit is 1 when the Command register is written. It is cleared by a hardware reset, a write to the RESET bit in this register, or the deassertion of CS which indicates that the command has completed communication with the SPI Flash.
bits : 1 - 1 (1 bit)
access : read-write

RESET : Write a 1 to this bit to abort a current command or memory mode. This bit is cleared when the hardware is ready for a new command to be written to the Command register.
bits : 4 - 4 (1 bit)
access : read-write

INTRQ : This bit reflects the SPIFI interrupt request. Write a 1 to this bit to clear it. This bit is set when a CMD was previously 1 and has been cleared due to the deassertion of CS.
bits : 5 - 5 (1 bit)
access : read-write


CMD

SPIFI command register
address_offset : 0x4 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CMD CMD read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DATALEN POLL DOUT INTLEN FIELDFORM FRAMEFORM OPCODE

DATALEN : Except when the POLL bit in this register is 1, this field controls how many data bytes are in the command. 0 indicates that the command does not contain a data field.
bits : 0 - 13 (14 bit)
access : read-write

POLL : This bit should be written as 1 only with an opcode that a) contains an input data field, and b) causes the serial flash device to return byte status repetitively (e.g., a Read Status command). When this bit is 1, the SPIFI hardware continues to read bytes until the test specified by the DATALEN field is met. The hardware tests the bit in each status byte selected by DATALEN bits 2:0, until a bit is found that is equal to DATALEN bit 3. When the test succeeds, the SPIFI captures the byte that meets this test so that it can be read from the Data Register, and terminates the command by raising CS. The end-of-command interrupt can be enabled to inform software when this occurs
bits : 14 - 14 (1 bit)
access : read-write

DOUT : If the DATALEN field is not zero, this bit controls the direction of the data:
bits : 15 - 15 (1 bit)
access : read-write

Enumeration:

0 : INPUT

Input from serial flash.

0x1 : OUTPUT

Output to serial flash.

End of enumeration elements list.

INTLEN : This field controls how many intermediate bytes precede the data. (Each such byte may require 8 or 2 SCK cycles, depending on whether the intermediate field is in serial, 2-bit, or 4-bit format.) Intermediate bytes are output by the SPIFI, and include post-address control information, dummy and delay bytes. See the description of the Intermediate Data register for the contents of such bytes.
bits : 16 - 18 (3 bit)
access : read-write

FIELDFORM : This field controls how the fields of the command are sent.
bits : 19 - 20 (2 bit)
access : read-write

Enumeration:

0 : ALL_SERIAL

All serial. All fields of the command are serial.

0x1 : QUAD_DUAL_DATA

Quad/dual data. Data field is quad/dual, other fields are serial.

0x2 : SERIAL_OPCODE

Serial opcode. Opcode field is serial. Other fields are quad/dual.

0x3 : ALL_QUAD_DUAL

All quad/dual. All fields of the command are in quad/dual format.

End of enumeration elements list.

FRAMEFORM : This field controls the opcode and address fields.
bits : 21 - 23 (3 bit)
access : read-write

Enumeration:

0x1 : OPCODE

Opcode. Opcode only, no address.

0x2 : OPCODE_1_BYTE

Opcode one byte. Opcode, least significant byte of address.

0x3 : OPCODE_2_BYTES

Opcode two bytes. Opcode, two least significant bytes of address.

0x4 : OPCODE_3_BYTES

Opcode three bytes. Opcode, three least significant bytes of address.

0x5 : OPCODE_4_BYTES

Opcode four bytes. Opcode, 4 bytes of address.

0x6 : NO_OPCODE_3_BYTES

No opcode three bytes. No opcode, 3 least significant bytes of address.

0x7 : NO_OPCODE_4_BYTES

No opcode four bytes. No opcode, 4 bytes of address.

End of enumeration elements list.

OPCODE : The opcode of the command (not used for some FRAMEFORM values).
bits : 24 - 31 (8 bit)
access : read-write


ADDR

SPIFI address register
address_offset : 0x8 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

ADDR ADDR read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADDRESS

ADDRESS : Address.
bits : 0 - 31 (32 bit)
access : read-write


IDATA

SPIFI intermediate data register
address_offset : 0xC Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

IDATA IDATA read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IDATA

IDATA : Value of intermediate bytes.
bits : 0 - 31 (32 bit)
access : read-write



Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !

This website is sponsored by EmbeetleEmbeetle, an IDE designed from scratch for embedded software developers.