Callisto4Bootloader: FlexSPI_Header_t Struct Reference

Callisto4Bootloader

Data Fields
FlexSPI_Header_t Struct Reference

FlexSPI Configuration Block. More...

`#include <bootloader_types.h>`

## Data Fields

uint32_t | tag
union {
struct {
uint32_t bugfix:8
uint32_t minor:8
uint32_t major:8
uint32_t V:8
} B
uint32_t R
} | version
| 0x42464346, ascii: 'FCFB'. More...
uint8_t | reserved1 [4]
| Reserved. More...
uint8_t | readSampleClkSrc
uint8_t | csHoldTime
uint8_t | csSetupTime
| Serial Flash CS setup time Recommended default value is 0x03. More...
uint8_t | columnAdressWidth
uint8_t | deviceModeCfgEnable
| Device Mode Configuration Enable feature 0 – Disabled 1 – Enabled. More...
uint8_t | reserved2
uint16_t | waitTimeCfgCommands
| Wait time for all configuration commands, unit 100us. More...
union {
struct {
uint32_t numLutSeq:8
| Bit[7:0] - number of LUT sequences for Device mode configuration command. More...
uint32_t startLut:8
| Bit[15:8] - starting LUT index of Device mode configuration command. More...
uint32_t reserved:16
| Bit[31:16] - must be 0. More...
} B
uint32_t R
} | deviceModeSeq
| Sequence parameter for device mode configuration. More...
uint32_t | deviceModeArg
| Device Mode argument, effective only when deviceModeCfgEnable = 1. More...
uint8_t | configCmdEnable
| Config Command Enable feature 0 – Disabled 1 – Enabled. More...
uint8_t | reserved3 [3]
uint8_t | configCmdSeqs [12]
uint8_t | reserved4 [4]
uint8_t | cfgCmdArgs [12]
uint8_t | reserved5 [4]
union {
struct {
uint32_t Bit0:1
| Differential clock enable. More...
uint32_t Bit1:1
| CK2 enable, must set to 0 in this silicon. More...
uint32_t Bit2:1
| ParallelModeEnable, must set to 0 for this silicon. More...
uint32_t Bit3:1
| wordAddressableEnable. More...
uint32_t Bit4:1
| Safe Configuration Frequency enable set to 1 for the devices that support DDR Read instructions. More...
uint32_t Bit5:1
| – Pad Setting Override Enable. More...
uint32_t Bit6:1
| – DDR Mode Enable, set to 1 for device supports DDR read command. More...
} B
uint32_t R
} | controllerMiscOption
uint8_t | deviceType
uint8_t | sflashPadType
uint8_t | serialClkFreq
uint8_t | lutCustomSeqEnable
uint8_t | reserved6 [8]
uint32_t | sflashA1Size
uint32_t | sflashA2Size
uint32_t | sflashB1Size
uint32_t | sflashB2Size
uint32_t | csPadSettingOverride
uint32_t | sclkPadSettingOverride
uint32_t | dataPadSettingOverride
uint32_t | dqsPadSettingOverride
uint32_t | timeoutInMs
| Maximum wait time during read busy status. More...
uint32_t | commandInterval
union {
struct {
uint32_t DLLA:16
uint32_t DLLB:16
} B
uint32_t R
} | dataValidTimeDLLA
| Time from clock edge to data valid edge, unit ns. More...
uint16_t | busyOffset
uint16_t | busyBitPolarity
uint8_t | lookupTable [256]
uint8_t | lutCustomSeq [48]
uint8_t | reserved7 [16]

## Detailed Description

FlexSPI Configuration Block.

FlexSPI Configuration block consists of parameters regarding specific Flash devices including read command sequence, quad mode enablement sequence (optional), etc.

Definition at line 25 of file bootloader_types.h.

## Field Documentation

## ◆ B [1/4]

struct { ... } FlexSPI_Header_t::B

Bitfield representation.

## ◆ B [2/4]

struct { ... } FlexSPI_Header_t::B

Bitfield representation.

## ◆ B [3/4]

struct { ... } FlexSPI_Header_t::B

Bitfield representation.

## ◆ B [4/4]

struct { ... } FlexSPI_Header_t::B

Bitfield representation.

## ◆ Bit0

uint32_t FlexSPI_Header_t::Bit0

Differential clock enable.

Definition at line 78 of file bootloader_types.h.

## ◆ Bit1

uint32_t FlexSPI_Header_t::Bit1

CK2 enable, must set to 0 in this silicon.

Definition at line 79 of file bootloader_types.h.

## ◆ Bit2

uint32_t FlexSPI_Header_t::Bit2

ParallelModeEnable, must set to 0 for this silicon.

Definition at line 80 of file bootloader_types.h.

## ◆ Bit3

uint32_t FlexSPI_Header_t::Bit3

wordAddressableEnable.

Definition at line 81 of file bootloader_types.h.

## ◆ Bit4

uint32_t FlexSPI_Header_t::Bit4

Safe Configuration Frequency enable set to 1 for the devices that support DDR Read instructions.

Definition at line 82 of file bootloader_types.h.

## ◆ Bit5

uint32_t FlexSPI_Header_t::Bit5

– Pad Setting Override Enable.

Definition at line 84 of file bootloader_types.h.

## ◆ Bit6

uint32_t FlexSPI_Header_t::Bit6

– DDR Mode Enable, set to 1 for device supports DDR read command.

Definition at line 85 of file bootloader_types.h.

## ◆ bugfix

uint32_t FlexSPI_Header_t::bugfix

[07:00] bugfix = 0.

Definition at line 30 of file bootloader_types.h.

## ◆ busyBitPolarity

uint16_t FlexSPI_Header_t::busyBitPolarity

0 - busy bit is 1 if device is busy 1 – busy bit is 0 if device is busy

Definition at line 140 of file bootloader_types.h.

## ◆ busyOffset

uint16_t FlexSPI_Header_t::busyOffset

busy bit offset, valid range :0-31

Definition at line 139 of file bootloader_types.h.

## ◆ cfgCmdArgs

uint8_t FlexSPI_Header_t::cfgCmdArgs[12]

Arguments for each separate configuration command sequence.

Definition at line 74 of file bootloader_types.h.

## ◆ columnAdressWidth

uint8_t FlexSPI_Header_t::columnAdressWidth

3 – For HyperFlash 12/13 – For Serial NAND, see datasheet to find correct value 0 – Other devices

Definition at line 45 of file bootloader_types.h.

## ◆ commandInterval

uint32_t FlexSPI_Header_t::commandInterval

Unit: ns Currently, it is used for SPI NAND only at high frequency.

Definition at line 125 of file bootloader_types.h.

## ◆ configCmdEnable

uint8_t FlexSPI_Header_t::configCmdEnable

Config Command Enable feature 0 – Disabled 1 – Enabled.

Definition at line 68 of file bootloader_types.h.

## ◆ configCmdSeqs

uint8_t FlexSPI_Header_t::configCmdSeqs[12]

Sequences for Config Command, allow 3 separate configuration command sequences.

Definition at line 72 of file bootloader_types.h.

## ◆ controllerMiscOption

union { ... } FlexSPI_Header_t::controllerMiscOption

## ◆ csHoldTime

uint8_t FlexSPI_Header_t::csHoldTime

Serial Flash CS Hold Time. Recommended default value is 0x03.

Definition at line 41 of file bootloader_types.h.

## ◆ csPadSettingOverride

uint32_t FlexSPI_Header_t::csPadSettingOverride

Set to 0 if it is not supported

Definition at line 117 of file bootloader_types.h.

## ◆ csSetupTime

uint8_t FlexSPI_Header_t::csSetupTime

Serial Flash CS setup time Recommended default value is 0x03.

Definition at line 43 of file bootloader_types.h.

## ◆ dataPadSettingOverride

uint32_t FlexSPI_Header_t::dataPadSettingOverride

Set to 0 if it is not supported

Definition at line 119 of file bootloader_types.h.

## ◆ dataValidTimeDLLA

union { ... } FlexSPI_Header_t::dataValidTimeDLLA

Time from clock edge to data valid edge, unit ns.

This field is used when the FlexSPI Root clock is less than 100 MHz and the read sample clock source is device provided DQS signal without CK2 support.

## ◆ deviceModeArg

uint32_t FlexSPI_Header_t::deviceModeArg

Device Mode argument, effective only when deviceModeCfgEnable = 1.

Definition at line 67 of file bootloader_types.h.

## ◆ deviceModeCfgEnable

uint8_t FlexSPI_Header_t::deviceModeCfgEnable

Device Mode Configuration Enable feature 0 – Disabled 1 – Enabled.

Definition at line 48 of file bootloader_types.h.

## ◆ deviceModeSeq

union { ... } FlexSPI_Header_t::deviceModeSeq

Sequence parameter for device mode configuration.

## ◆ deviceType

uint8_t FlexSPI_Header_t::deviceType

1 – Serial NOR 2 – Serial NAND

Definition at line 89 of file bootloader_types.h.

## ◆ DLLA

uint32_t FlexSPI_Header_t::DLLA

[15:0] data valid time for DLLA in terms of 0.1 ns.

Definition at line 129 of file bootloader_types.h.

## ◆ DLLB

uint32_t FlexSPI_Header_t::DLLB

[31:16] data valid time for DLLB in terms of 0.1 ns

Definition at line 130 of file bootloader_types.h.

## ◆ dqsPadSettingOverride

uint32_t FlexSPI_Header_t::dqsPadSettingOverride

Set to 0 if it is not supported

Definition at line 120 of file bootloader_types.h.

## ◆ lookupTable

uint8_t FlexSPI_Header_t::lookupTable[256]

Lookup table.

Definition at line 142 of file bootloader_types.h.

## ◆ lutCustomSeq

uint8_t FlexSPI_Header_t::lutCustomSeq[48]

Customized LUT sequence, see below table for details.

Definition at line 143 of file bootloader_types.h.

## ◆ lutCustomSeqEnable

uint8_t FlexSPI_Header_t::lutCustomSeqEnable

0 – Use pre-defined LUT sequence index and number 1 - Use LUT sequence parameters provided in this block

Definition at line 106 of file bootloader_types.h.

## ◆ major

uint32_t FlexSPI_Header_t::major

[23:16] major = 1

Definition at line 32 of file bootloader_types.h.

## ◆ minor

uint32_t FlexSPI_Header_t::minor

[15:08] minor

Definition at line 31 of file bootloader_types.h.

## ◆ numLutSeq

uint32_t FlexSPI_Header_t::numLutSeq

Bit[7:0] - number of LUT sequences for Device mode configuration command.

Definition at line 61 of file bootloader_types.h.

## ◆ R

uint32_t FlexSPI_Header_t::R

Register representation.

Definition at line 35 of file bootloader_types.h.

## ◆ readSampleClkSrc

uint8_t FlexSPI_Header_t::readSampleClkSrc

0 – internal loopback 1 – loopback from DQS pad 3 – Flash provided DQS

Definition at line 38 of file bootloader_types.h.

## ◆ reserved

uint32_t FlexSPI_Header_t::reserved

Bit[31:16] - must be 0.

Definition at line 63 of file bootloader_types.h.

## ◆ reserved1

uint8_t FlexSPI_Header_t::reserved1[4]

Reserved.

Definition at line 37 of file bootloader_types.h.

## ◆ reserved2

uint8_t FlexSPI_Header_t::reserved2

Reserved.

Definition at line 51 of file bootloader_types.h.

## ◆ reserved3

uint8_t FlexSPI_Header_t::reserved3[3]

Reserved.

Definition at line 71 of file bootloader_types.h.

## ◆ reserved4

uint8_t FlexSPI_Header_t::reserved4[4]

Reserved.

Definition at line 73 of file bootloader_types.h.

## ◆ reserved5

uint8_t FlexSPI_Header_t::reserved5[4]

Reserved

Definition at line 75 of file bootloader_types.h.

## ◆ reserved6

uint8_t FlexSPI_Header_t::reserved6[8]

Reserved

Definition at line 108 of file bootloader_types.h.

## ◆ reserved7

uint8_t FlexSPI_Header_t::reserved7[16]

Reserved for future use.

Definition at line 144 of file bootloader_types.h.

## ◆ sclkPadSettingOverride

uint32_t FlexSPI_Header_t::sclkPadSettingOverride

Set to 0 if it is not supported

Definition at line 118 of file bootloader_types.h.

## ◆ serialClkFreq

uint8_t FlexSPI_Header_t::serialClkFreq

0x046 1 Chip specific value, for this silicon 1 – 30 MHz 2 – 50 MHz 3 – 60 MHz 4 – 75 MHz 5 – 80 MHz 6 – 100 MHz 7 – 120 MHz 8 – 133 MHz 9 – 166 MHz Other value: 30 MHz

Definition at line 95 of file bootloader_types.h.

## ◆ sflashA1Size

uint32_t FlexSPI_Header_t::sflashA1Size

For SPI NOR, need to fill with actual size. For SPI NAND, need to fill with actual size * 2.

Definition at line 109 of file bootloader_types.h.

## ◆ sflashA2Size

uint32_t FlexSPI_Header_t::sflashA2Size

For SPI NOR, need to fill with actual size. For SPI NAND, need to fill with actual size * 2.

Definition at line 111 of file bootloader_types.h.

## ◆ sflashB1Size

uint32_t FlexSPI_Header_t::sflashB1Size

For SPI NOR, need to fill with actual size. For SPI NAND, need to fill with actual size * 2.

Definition at line 113 of file bootloader_types.h.

## ◆ sflashB2Size

uint32_t FlexSPI_Header_t::sflashB2Size

For SPI NOR, need to fill with actual size. For SPI NAND, need to fill with actual size * 2.

Definition at line 115 of file bootloader_types.h.

## ◆ sflashPadType

uint8_t FlexSPI_Header_t::sflashPadType

Single pad 2 – Dual pads 4 – Quad pads 8 – Octal pads

Definition at line 91 of file bootloader_types.h.

## ◆ startLut

uint32_t FlexSPI_Header_t::startLut

Bit[15:8] - starting LUT index of Device mode configuration command.

Definition at line 62 of file bootloader_types.h.

## ◆ tag

uint32_t FlexSPI_Header_t::tag

Definition at line 27 of file bootloader_types.h.

## ◆ timeoutInMs

uint32_t FlexSPI_Header_t::timeoutInMs

Maximum wait time during read busy status.

0 – Disabled timeout checking feature Other value – Timeout if the wait time exceeds this value.

Definition at line 121 of file bootloader_types.h.

## ◆ V

uint32_t FlexSPI_Header_t::V

[31:24] ascii ‘V’

Definition at line 33 of file bootloader_types.h.

## ◆ version

union { ... } FlexSPI_Header_t::version

0x42464346, ascii: 'FCFB'.

Version 0x56010000 / 0x56010100

## ◆ waitTimeCfgCommands

uint16_t FlexSPI_Header_t::waitTimeCfgCommands

Wait time for all configuration commands, unit 100us.

Available for device that support v1.1.0 FlexSPI configuration block. If it is greater than 0, ROM will wait waitTimeCfgCommands * 100us for all device memory configuration commands instead of using read status to wait until these commands complete.

Definition at line 52 of file bootloader_types.h.

The documentation for this struct was generated from the following file:

- src/bootloader_types.h