Updated NOR LUT.

This commit is contained in:
imi415 2022-08-26 23:09:29 +08:00
parent 2a5e894a45
commit 2f1ed0394c
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
2 changed files with 42 additions and 20 deletions

View File

@ -3,6 +3,7 @@ IndentWidth: 4
AlignConsecutiveMacros: Consecutive AlignConsecutiveMacros: Consecutive
AlignConsecutiveDeclarations: true AlignConsecutiveDeclarations: true
AlignConsecutiveAssignments: true AlignConsecutiveAssignments: true
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Custom BreakBeforeBraces: Custom
BraceWrapping: BraceWrapping:
AfterEnum: false AfterEnum: false

View File

@ -23,26 +23,47 @@ __attribute__((section(".boot_hdr.conf"), used))
#endif #endif
const flexspi_nor_config_t spiflash_config = { const flexspi_nor_config_t spiflash_config = {
.memConfig = .memConfig = {
{ .tag = FLEXSPI_CFG_BLK_TAG,
.tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION,
.version = FLEXSPI_CFG_BLK_VERSION, .readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackInternally,
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 3U,
.csHoldTime = 3u, .csSetupTime = 3U,
.csSetupTime = 3u, .columnAddressWidth = 0U,
.columnAddressWidth = 0u, .deviceType = kFlexSpiDeviceType_SerialNOR,
.sflashPadType = kSerialFlash_4Pads, .sflashPadType = kSerialFlash_4Pads,
.serialClkFreq = kFlexSpiSerialClk_133MHz, .serialClkFreq = kFlexSpiSerialClk_133MHz,
.sflashA1Size = 16u * 1024u * 1024u, .sflashA1Size = 16U * 1024U * 1024U,
.lookupTable = .busyOffset = 0U,
{ .busyBitPolarity = 1U,
// Fast Read Quad IO .lookupTable = {
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18), // Fast read quad IO (EBh) [NOR_CMD_LUT_SEQ_IDX_READ]
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04), [4U * 0 + 0U] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
}, [4U * 0 + 1U] = FLEXSPI_LUT_SEQ(MODE8_SDR, FLEXSPI_4PAD, 0xF0, DUMMY_SDR, FLEXSPI_4PAD, 0x04),
[4U * 0 + 2U] = FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_4PAD, 0x00, STOP, FLEXSPI_1PAD, 0x00),
// Read SR1 (05h) [NOR_CMD_LUT_SEQ_IDX_READSTATUS]
[4U * 1 + 0U] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x00),
// Write enable (06h) [NOR_CMD_LUT_SEQ_IDX_WRITEENABLE]
[4U * 3 + 0U] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x00),
// Page program () [NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM]
[4U * 4 + 0U] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x32, RADDR_SDR, FLEXSPI_4PAD, 0x18),
[4U * 4 + 1U] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_4PAD, 0x00, STOP, FLEXSPI_1PAD, 0x00),
// Erase sector (20h) [NOR_CMD_LUT_SEQ_IDX_ERASESECTOR]
[4U * 5 + 0U] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18),
// Enter QPI mode ()
[4U * 7 + 0U] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18),
// Erase block 32kB (52h) [NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK]
[4U * 8 + 0U] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x52, RADDR_SDR, FLEXSPI_1PAD, 0x18),
}, },
.pageSize = 256u, },
.sectorSize = 4u * 1024u, .pageSize = 256u,
.blockSize = 64u * 1024u, .sectorSize = 4u * 1024u,
.blockSize = 32u * 1024u,
}; };
#endif /* XIP_BOOT_HEADER_ENABLE */ #endif /* XIP_BOOT_HEADER_ENABLE */