Skip to content

Commit dfd4324

Browse files
robert-hhdpgeorge
authored andcommitted
mimxrt: Add flash storage support with VFS and littlefs filesystem.
This commit adds full support for a filesystem on all boards, with a block device object mimxrt.Flash() and uos.VfsLfs2 enabled. Main changes are: - Refactoring of linker scripts to accomodate reserved area for VFS. VFS will take up most of the available flash. 1M is reserved for code. 9K is reserved for flash configuration, interrupts, etc. - Addition of _boot.py with filesystem init code, called from main.c. - Definition of the mimxrt module with a Flash class in modmimxrt.[ch]. - Implementation of a flash driver class in mimxrt_flash.c. All flashing related functions are stored in ITCM RAM. - Addition of the uos module with filesystem functions. - Implementation of uos.urandom() for the sake of completeness of the uos module. It uses sample code from CircuitPython supplied under MIT license, which uses the NXP SDK example code. Done in collaboration with Philipp Ebensberger aka @alphaFred who contributed the essential part to enable writing to flash while code is executing, among other things.
1 parent c303b15 commit dfd4324

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1745
-210
lines changed

Diff for: ports/mimxrt/Makefile

+16-1
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@ QSTR_GLOBAL_DEPENDENCIES = $(BOARD_DIR)/mpconfigboard.h
1717

1818
# MicroPython feature configurations
1919
FROZEN_MANIFEST ?= boards/manifest.py
20+
MICROPY_VFS_LFS2 ?= 1
2021

2122
# Include py core make definitions
2223
include $(TOP)/py/py.mk
2324

2425
GIT_SUBMODULES = lib/tinyusb lib/nxp_driver
2526

2627
MCU_DIR = lib/nxp_driver/sdk/devices/$(MCU_SERIES)
27-
LD_FILES = boards/$(MCU_SERIES).ld $(TOP)/$(MCU_DIR)/gcc/$(MCU_SERIES)xxxxx_flexspi_nor.ld
28+
LD_FILES = boards/$(BOARD)/$(BOARD).ld boards/$(MCU_SERIES).ld boards/common.ld
2829

2930
MAKE_PINS = boards/make-pins.py
3031
BOARD_PINS = $(BOARD_DIR)/pins.csv
@@ -59,8 +60,10 @@ CFLAGS += -DXIP_EXTERNAL_FLASH=1 \
5960
-DXIP_BOOT_HEADER_ENABLE=1 \
6061
-DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX \
6162
-D__STARTUP_CLEAR_BSS \
63+
-D__STARTUP_INITIALIZE_RAMFUNCTION \
6264
-D__START=main \
6365
-DCPU_HEADER_H='<$(MCU_SERIES).h>'
66+
CFLAGS += $(CFLAGS_MOD) $(CFLAGS_EXTRA)
6467

6568
LDFLAGS = $(addprefix -T,$(LD_FILES)) -Map=$@.map --cref --print-memory-usage
6669
LIBS = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
@@ -101,6 +104,8 @@ SRC_TINYUSB_IMX_C += \
101104
$(MCU_DIR)/drivers/fsl_common.c \
102105
$(MCU_DIR)/drivers/fsl_lpuart.c \
103106
$(MCU_DIR)/drivers/fsl_flexram.c \
107+
$(MCU_DIR)/drivers/fsl_flexspi.c \
108+
$(MCU_DIR)/drivers/fsl_trng.c \
104109

105110
SRC_C = \
106111
main.c \
@@ -112,15 +117,20 @@ SRC_C = \
112117
$(BOARD_DIR)/flash_config.c \
113118
machine_led.c \
114119
machine_pin.c \
120+
mimxrt_flash.c \
115121
modutime.c \
116122
modmachine.c \
123+
modmimxrt.c \
124+
moduos.c \
117125
mphalport.c \
126+
hal/flexspi_nor_flash.c \
118127
lib/mp-readline/readline.c \
119128
lib/libc/string0.c \
120129
lib/utils/gchelper_native.c \
121130
lib/utils/printf.c \
122131
lib/utils/pyexec.c \
123132
lib/utils/stdout_helpers.c \
133+
lib/utils/sys_stdio_mphal.c \
124134
$(SRC_TINYUSB_C) \
125135
$(SRC_TINYUSB_IMX_C) \
126136

@@ -132,15 +142,20 @@ SRC_S = lib/utils/gchelper_m3.s \
132142
SRC_QSTR += \
133143
machine_led.c \
134144
machine_pin.c \
145+
mimxrt_flash.c \
135146
modutime.c \
136147
modmachine.c \
148+
modmimxrt.c \
149+
moduos.c \
137150
pin.c \
151+
lib/utils/sys_stdio_mphal.c \
138152
$(GEN_PINS_SRC) \
139153

140154
OBJ += $(PY_O)
141155
OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
142156
OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o))
143157
OBJ += $(addprefix $(BUILD)/, $(SRC_SS:.S=.o))
158+
OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o))
144159
OBJ += $(BUILD)/pins_gen.o
145160

146161
# Workaround for bug in older gcc, warning on "static usbd_device_t _usbd_dev = { 0 };"

Diff for: ports/mimxrt/boards/MIMXRT1010_EVK/MIMXRT1010_EVK.ld

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
flash_size = 16M;

Diff for: ports/mimxrt/boards/MIMXRT1010_EVK/evkmimxrt1010_flexspi_nor_config.h

+16-28
Original file line numberDiff line numberDiff line change
@@ -211,34 +211,19 @@ typedef struct _FlexSPIConfig
211211
} flexspi_mem_config_t;
212212

213213
/* */
214-
#define NOR_CMD_INDEX_READ CMD_INDEX_READ //!< 0
215-
#define NOR_CMD_INDEX_READSTATUS CMD_INDEX_READSTATUS //!< 1
216-
#define NOR_CMD_INDEX_WRITEENABLE CMD_INDEX_WRITEENABLE //!< 2
217-
#define NOR_CMD_INDEX_ERASESECTOR 3 //!< 3
218-
#define NOR_CMD_INDEX_PAGEPROGRAM CMD_INDEX_WRITE //!< 4
219-
#define NOR_CMD_INDEX_CHIPERASE 5 //!< 5
220-
#define NOR_CMD_INDEX_DUMMY 6 //!< 6
221-
#define NOR_CMD_INDEX_ERASEBLOCK 7 //!< 7
222-
223-
#define NOR_CMD_LUT_SEQ_IDX_READ CMD_LUT_SEQ_IDX_READ //!< 0 READ LUT sequence id in lookupTable stored in config block
224-
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS \
225-
CMD_LUT_SEQ_IDX_READSTATUS //!< 1 Read Status LUT sequence id in lookupTable stored in config block
226-
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI \
227-
2 //!< 2 Read status DPI/QPI/OPI sequence id in lookupTable stored in config block
228-
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE \
229-
CMD_LUT_SEQ_IDX_WRITEENABLE //!< 3 Write Enable sequence id in lookupTable stored in config block
230-
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI \
231-
4 //!< 4 Write Enable DPI/QPI/OPI sequence id in lookupTable stored in config block
232-
#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR 5 //!< 5 Erase Sector sequence id in lookupTable stored in config block
233-
#define NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK 8 //!< 8 Erase Block sequence id in lookupTable stored in config block
234-
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM \
235-
CMD_LUT_SEQ_IDX_WRITE //!< 9 Program sequence id in lookupTable stored in config block
236-
#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE 11 //!< 11 Chip Erase sequence in lookupTable id stored in config block
237-
#define NOR_CMD_LUT_SEQ_IDX_READ_SFDP 13 //!< 13 Read SFDP sequence in lookupTable id stored in config block
238-
#define NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD \
239-
14 //!< 14 Restore 0-4-4/0-8-8 mode sequence id in lookupTable stored in config block
240-
#define NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD \
241-
15 //!< 15 Exit 0-4-4/0-8-8 mode sequence id in lookupTable stored in config blobk
214+
#define NOR_CMD_LUT_SEQ_IDX_READ_NORMAL 0
215+
#define NOR_CMD_LUT_SEQ_IDX_READSTATUSREG 1
216+
#define NOR_CMD_LUT_SEQ_IDX_READ_FAST_QUAD 2
217+
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE 3
218+
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI 4
219+
#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR 5
220+
#define NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG 6
221+
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM_QUAD 7
222+
#define NOR_CMD_LUT_SEQ_IDX_READID 8
223+
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM 9
224+
#define NOR_CMD_LUT_SEQ_IDX_ENTERQPI 10
225+
#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE 11
226+
#define NOR_CMD_LUT_SEQ_IDX_EXITQPI 12
242227

243228
/*
244229
* Serial NOR configuration block
@@ -259,6 +244,9 @@ typedef struct _flexspi_nor_config
259244
uint32_t reserve2[11]; //!< Reserved for future use
260245
} flexspi_nor_config_t;
261246

247+
#define FLASH_BUSY_STATUS_POL 0
248+
#define FLASH_BUSY_STATUS_OFFSET 0
249+
262250
#ifdef __cplusplus
263251
extern "C" {
264252
#endif

Diff for: ports/mimxrt/boards/MIMXRT1010_EVK/flash_config.c

+75-1
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,83 @@ const flexspi_nor_config_t qspiflash_config = {
3737
.sflashA1Size = 16u * 1024u * 1024u,
3838
.lookupTable =
3939
{
40-
// Read LUTs
40+
// 0 Read LUTs 0 -> 0
4141
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
4242
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
43+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
44+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
45+
46+
// 1 Read status register -> 1
47+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x01),
48+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
49+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
50+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
51+
52+
// 2 Fast read quad mode - SDR
53+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x6B, RADDR_SDR, FLEXSPI_1PAD, 0x18),
54+
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x08, READ_SDR, FLEXSPI_4PAD, 0x04),
55+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
56+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
57+
58+
// 3 Write Enable -> 3
59+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0),
60+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
61+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
62+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
63+
64+
// 4 Read extend parameters
65+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x81, READ_SDR, FLEXSPI_1PAD, 0x04),
66+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
67+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
68+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
69+
70+
// 5 Erase Sector -> 5
71+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 24),
72+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
73+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
74+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
75+
76+
// 6 Write Status Reg
77+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x01, WRITE_SDR, FLEXSPI_1PAD, 0x04),
78+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
79+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
80+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
81+
82+
// 7 Page Program - quad mode (-> 9)
83+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x32, RADDR_SDR, FLEXSPI_1PAD, 0x18),
84+
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_4PAD, 0x04, STOP, FLEXSPI_1PAD, 0),
85+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
86+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
87+
88+
// 8 Read ID
89+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x90, DUMMY_SDR, FLEXSPI_1PAD, 24),
90+
FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_1PAD, 0x00, 0, 0, 0),
91+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
92+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
93+
94+
// 9 Page Program - single mode -> 9
95+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02, RADDR_SDR, FLEXSPI_1PAD, 24),
96+
FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0, 0, 0, 0),
97+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
98+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
99+
100+
// 10 Enter QPI mode
101+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x35, STOP, FLEXSPI_1PAD, 0),
102+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
103+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
104+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
105+
106+
// 11 Erase Chip
107+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x60, STOP, FLEXSPI_1PAD, 0),
108+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
109+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
110+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
111+
112+
// 12 Exit QPI mode
113+
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_4PAD, 0xF5, STOP, FLEXSPI_1PAD, 0),
114+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
115+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
116+
FLEXSPI_LUT_SEQ(0, 0, 0, 0, 0, 0), // Filler
43117
},
44118
},
45119
.pageSize = 256u,

Diff for: ports/mimxrt/boards/MIMXRT1010_EVK/mpconfigboard.h

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@
77
#define MICROPY_HW_LED1_PIN (pin_GPIO_11)
88
#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))
99
#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))
10+
#define BOARD_FLASH_CONFIG_HEADER_H "evkmimxrt1010_flexspi_nor_config.h"

Diff for: ports/mimxrt/boards/MIMXRT1011.ld

+24-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,31 @@
1-
/* 24kiB stack. */
2-
__stack_size__ = 0x4000;
1+
/* Memory configuration */
2+
flash_start = 0x60000000;
3+
flash_end = DEFINED(reserved_size) ? ((flash_start) + (flash_size - reserved_size)) : ((flash_start) + (flash_size));
4+
flash_config_start = 0x60000400;
5+
flash_config_size = 0x00000C00;
6+
ivt_start = 0x60001000;
7+
ivt_size = 0x00001000;
8+
interrupts_start = 0x60002000;
9+
interrupts_size = 0x00000400;
10+
text_start = 0x60002400;
11+
text_size = ((((text_start) + 1M) + (4k - 1)) & ~(4k - 1)) - (text_start); /* reserve 1M for code but align on 4k boundary */
12+
vfs_start = (text_start) + (text_size);
13+
vfs_size = ((flash_end) - (vfs_start));
14+
itcm_start = 0x00000000;
15+
itcm_size = 0x00008000;
16+
dtcm_start = 0x20000000;
17+
dtcm_size = 0x00008000;
18+
ocrm_start = 0x20200000;
19+
ocrm_size = 0x00010000;
20+
21+
/* 20kiB stack. */
22+
__stack_size__ = 0x5000;
323
_estack = __StackTop;
424
_sstack = __StackLimit;
525

626
/* Do not use the traditional C heap. */
727
__heap_size__ = 0;
828

929
/* Use second OCRAM bank for GC heap. */
10-
_gc_heap_start = ORIGIN(m_data2);
11-
_gc_heap_end = ORIGIN(m_data2) + LENGTH(m_data2);
30+
_gc_heap_start = ORIGIN(m_ocrm);
31+
_gc_heap_end = ORIGIN(m_ocrm) + LENGTH(m_ocrm);

Diff for: ports/mimxrt/boards/MIMXRT1020_EVK/MIMXRT1020_EVK.ld

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
flash_size = 8M;

Diff for: ports/mimxrt/boards/MIMXRT1020_EVK/evkmimxrt1020_flexspi_nor_config.h

+16-28
Original file line numberDiff line numberDiff line change
@@ -212,34 +212,19 @@ typedef struct _FlexSPIConfig
212212
} flexspi_mem_config_t;
213213

214214
/* */
215-
#define NOR_CMD_INDEX_READ CMD_INDEX_READ //!< 0
216-
#define NOR_CMD_INDEX_READSTATUS CMD_INDEX_READSTATUS //!< 1
217-
#define NOR_CMD_INDEX_WRITEENABLE CMD_INDEX_WRITEENABLE //!< 2
218-
#define NOR_CMD_INDEX_ERASESECTOR 3 //!< 3
219-
#define NOR_CMD_INDEX_PAGEPROGRAM CMD_INDEX_WRITE //!< 4
220-
#define NOR_CMD_INDEX_CHIPERASE 5 //!< 5
221-
#define NOR_CMD_INDEX_DUMMY 6 //!< 6
222-
#define NOR_CMD_INDEX_ERASEBLOCK 7 //!< 7
223-
224-
#define NOR_CMD_LUT_SEQ_IDX_READ CMD_LUT_SEQ_IDX_READ //!< 0 READ LUT sequence id in lookupTable stored in config block
225-
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS \
226-
CMD_LUT_SEQ_IDX_READSTATUS //!< 1 Read Status LUT sequence id in lookupTable stored in config block
227-
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI \
228-
2 //!< 2 Read status DPI/QPI/OPI sequence id in lookupTable stored in config block
229-
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE \
230-
CMD_LUT_SEQ_IDX_WRITEENABLE //!< 3 Write Enable sequence id in lookupTable stored in config block
231-
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI \
232-
4 //!< 4 Write Enable DPI/QPI/OPI sequence id in lookupTable stored in config block
233-
#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR 5 //!< 5 Erase Sector sequence id in lookupTable stored in config block
234-
#define NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK 8 //!< 8 Erase Block sequence id in lookupTable stored in config block
235-
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM \
236-
CMD_LUT_SEQ_IDX_WRITE //!< 9 Program sequence id in lookupTable stored in config block
237-
#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE 11 //!< 11 Chip Erase sequence in lookupTable id stored in config block
238-
#define NOR_CMD_LUT_SEQ_IDX_READ_SFDP 13 //!< 13 Read SFDP sequence in lookupTable id stored in config block
239-
#define NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD \
240-
14 //!< 14 Restore 0-4-4/0-8-8 mode sequence id in lookupTable stored in config block
241-
#define NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD \
242-
15 //!< 15 Exit 0-4-4/0-8-8 mode sequence id in lookupTable stored in config blobk
215+
#define NOR_CMD_LUT_SEQ_IDX_READ_NORMAL 0
216+
#define NOR_CMD_LUT_SEQ_IDX_READSTATUSREG 1
217+
#define NOR_CMD_LUT_SEQ_IDX_READ_FAST_QUAD 2
218+
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE 3
219+
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI 4
220+
#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR 5
221+
#define NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG 6
222+
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM_QUAD 7
223+
#define NOR_CMD_LUT_SEQ_IDX_READID 8
224+
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM 9
225+
#define NOR_CMD_LUT_SEQ_IDX_ENTERQPI 10
226+
#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE 11
227+
#define NOR_CMD_LUT_SEQ_IDX_EXITQPI 12
243228

244229
/*
245230
* Serial NOR configuration block
@@ -260,6 +245,9 @@ typedef struct _flexspi_nor_config
260245
uint32_t reserve2[11]; //!< Reserved for future use
261246
} flexspi_nor_config_t;
262247

248+
#define FLASH_BUSY_STATUS_POL 0
249+
#define FLASH_BUSY_STATUS_OFFSET 0
250+
263251
#ifdef __cplusplus
264252
extern "C" {
265253
#endif

0 commit comments

Comments
 (0)