8000 mimxrt/bootloader: Adds bootloader support. · micropython/micropython@82da8ba · GitHub
[go: up one dir, main page]

Skip to content

Commit 8 10000 2da8ba

Browse files
committed
mimxrt/bootloader: Adds bootloader support.
Adds bootloader for mimxrt port with DFU support. Signed-off-by: Philipp Ebensberger
1 parent 517e82e commit 82da8ba

Some content is hidden

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

60 files changed

+3203
-304
lines changed

ports/mimxrt/Makefile

Lines changed: 100 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
BOARD ?= TEENSY40
22
BOARD_DIR ?= boards/$(BOARD)
3+
BOOTLOADER_DIR ?= bootloader
34
BUILD ?= build-$(BOARD)
45

56
PORT ?= /dev/ttyACM0
@@ -13,9 +14,16 @@ endif
1314
include ../../py/mkenv.mk
1415
include $(BOARD_DIR)/mpconfigboard.mk
1516

17+
ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor)
18+
MICROPY_HW_FLASH_FIRMWARE_START_ADDR = 0x00008000
19+
else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash)
20+
MICROPY_HW_FLASH_FIRMWARE_START_ADDR = 0x00040000
21+
endif
22+
1623
LD_MEMORY_CONFIG_DEFINES += \
1724
MICROPY_HW_FLASH_TYPE=$(MICROPY_HW_FLASH_TYPE) \
18-
MICROPY_HW_FLASH_SIZE=$(MICROPY_HW_FLASH_SIZE)
25+
MICROPY_HW_FLASH_SIZE=$(MICROPY_HW_FLASH_SIZE) \
26+
MICROPY_HW_FLASH_FIRMWARE_START_ADDR=$(MICROPY_HW_FLASH_FIRMWARE_START_ADDR)
1927

2028
ifdef MICROPY_HW_FLASH_RESERVED
2129
LD_MEMORY_CONFIG_DEFINES += MICROPY_HW_FLASH_RESERVED=$(MICROPY_HW_FLASH_RESERVED)
@@ -46,9 +54,10 @@ include $(TOP)/py/py.mk
4654
GIT_SUBMODULES = lib/tinyusb lib/nxp_driver lib/lwip lib/mbedtls
4755

4856
MCU_DIR = lib/nxp_driver/sdk/devices/$(MCU_SERIES)
49-
LD_FILES = boards/$(MCU_SERIES).ld boards/common.ld
57+
LD_FILES = boards/common.ld
5058

5159
MAKE_PINS = boards/make-pins.py
60+
PATCH_BINARY = bootloader/tools/patch-binary.py
5261
MAKE_FLEXRAM_LD = boards/make-flexram-config.py
5362
BOARD_PINS = $(BOARD_DIR)/pins.csv
5463
AF_FILE = boards/$(MCU_SERIES)_af.csv
@@ -76,20 +85,45 @@ INC += -I$(TOP)/lib/oofatfs
7685
INC += -I$(TOP)/lib/tinyusb/hw
7786
INC += -I$(TOP)/lib/tinyusb/hw/bsp/teensy_40
7887
INC += -I$(TOP)/lib/tinyusb/src
88+
INC += -I$(BOOTLOADER_DIR)/shared
7989

8090
CFLAGS_MCU = -mtune=cortex-m7 -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16
81-
CFLAGS += $(INC) -Wall -Werror -Wdouble-promotion -Wfloat-conversion -std=c99 -nostdlib -mthumb $(CFLAGS_MCU)
82-
CFLAGS += -DCPU_$(MCU_SERIES) -DCPU_$(MCU_VARIANT) -DBOARD_$(BOARD)
83-
CFLAGS += -DXIP_EXTERNAL_FLASH=1 \
84-
-DXIP_BOOT_HEADER_ENABLE=1 \
85-
-DFSL_SDK_ENABLE_DRIVER_CACHE_CONTROL=1 \
86-
-DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX \
91+
CFLAGS_COMMON = -Wall -Werror -Wdouble-promotion -Wfloat-conversion -std=c99 -nostdlib -mthumb -fdata-sections -ffunction-sections
92+
93+
94+
# Tune for Debugging or Optimization
95+
ifeq ($(DEBUG),1)
96+
CFLAGS_DEBUG += -Og -ggdb
97+
else
98+
CFLAGS_DEBUG += -Os -DNDEBUG
99+
endif
100+
101+
CFLAGS_DEFINES_COMMON += \
102+
-D__START=main \
87103
-D__STARTUP_CLEAR_BSS \
88104
-D__STARTUP_INITIALIZE_RAMFUNCTION \
89-
-D__START=main \
105+
-DBOARD_$(BOARD) \
106+
-DCFG_TUSB_MCU=OPT_MCU_MIMXRT10XX \
107+
-DCPU_$(MCU_SERIES) \
108+
-DCPU_$(MCU_VARIANT) \
90109
-DCPU_HEADER_H='<$(MCU_SERIES).h>' \
91-
-DBOARD_FLASH_SIZE=$(MICROPY_HW_FLASH_SIZE) \
110+
-DFSL_SDK_ENABLE_DRIVER_CACHE_CONTROL=1 \
92111
-DMICROPY_HW_FLASH_SIZE=$(MICROPY_HW_FLASH_SIZE) \
112+
-DXIP_BOOT_HEADER_ENABLE=1 \
113+
-DXIP_EXTERNAL_FLASH=1
114+
115+
116+
CFLAGS_DEFINES_FW += \
117+
-DBOARD_FLASH_SIZE=$(MICROPY_HW_FLASH_SIZE) \
118+
-DMICROPY_BOOTLOADER_BINARY='"$(BUILD_BL)/bootloader.bin"'
119+
120+
CFLAGS += \
121+
$(CFLAGS_COMMON) \
122+
$(CFLAGS_DEBUG) \
123+
$(CFLAGS_DEFINES_COMMON) \
124+
$(CFLAGS_DEFINES_FW) \
125+
$(CFLAGS_MCU) \
126+
$(INC)
93127

94128
ifeq ($(MICROPY_PY_MACHINE_SDCARD),1)
95129
CFLAGS += -DMICROPY_PY_MACHINE_SDCARD=1
@@ -112,20 +146,10 @@ endif
112146
SUPPORTS_HARDWARE_FP_SINGLE = 0
113147
SUPPORTS_HARDWARE_FP_DOUBLE = 0
114148

115-
LDFLAGS = -Map=$@.map --cref --print-memory-usage
116-
LDDEFINES = $(addprefix -D, $(LD_MEMORY_CONFIG_DEFINES))
149+
LDFLAGS = -Map=$@.map --cref --print-memory-usage --gc-sections
150+
LDDEFINES = $(addprefix -D, $(LD_MEMORY_CONFIG_DEFINES) BOARD_LINKER_SCRIPT_H=\"$(MCU_SERIES).ld\" BOOTLOADER_ENABLED=1)
117151
LIBS = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
118152

119-
# Tune for Debugging or Optimization
120-
ifeq ($(DEBUG),1)
121-
CFLAGS += -Og -ggdb
122-
LDFLAGS += --gc-sections
123-
CFLAGS += -fdata-sections -ffunction-sections
124-
else
125-
CFLAGS += -Os -DNDEBUG
126-
LDFLAGS += --gc-sections
127-
CFLAGS += -fdata-sections -ffunction-sections
128-
endif
129153

130154
# All settings for Ethernet support are controller by the value of MICROPY_PY_LWIP
131155
ifeq ($(MICROPY_PY_LWIP), 1)
@@ -205,8 +229,38 @@ SRC_HAL_IMX_C += $(MCU_DIR)/drivers/fsl_usdhc.c
205229
endif
206230

207231
ifeq ($(MCU_SERIES),$(filter $(MCU_SERIES), MIMXRT1015 MIMXRT1021 MIMXRT1052 MIMXRT1062 MIMXRT1064))
208-
SRC_HAL_IMX_C += \
209-
$(MCU_DIR)/drivers/fsl_qtmr.c
232+
SRC_HAL_IMX_C += $(MCU_DIR)/drivers/fsl_qtmr.c
233+
endif
234+
235+
SRC_C_COMMON += \
236+
flash.c
237+
238+
ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor)
239+
CFLAGS_DEFINES_COMMON += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_nor_flash.h\"
240+
SRC_C_COMMON += hal/flexspi_nor_flash.c
241+
242+
ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1)
243+
CFLAGS_DEFINES_COMMON += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\"
244+
SRC_C_COMMON += $(BOARD_DIR)/qspi_nor_flash_config.c
245+
else
246+
CFLAGS_DEFINES_COMMON += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\"
247+
SRC_C_COMMON += hal/qspi_nor_flash_config.c
248+
endif
249+
#
250+
else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash)
251+
CFLAGS_DEFINES_COMMON += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_hyper_flash.h\"
252+
SRC_C_COMMON += hal/flexspi_hyper_flash.c
253+
254+
ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1)
255+
CFLAGS_DEFINES_COMMON += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\"
256+
SRC_C_COMMON += $(BOARD_DIR)/qspi_hyper_flash_config.c
257+
else
258+
CFLAGS_DEFINES_COMMON += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\"
259+
SRC_C_COMMON += hal/qspi_hyper_flash_config.c
260+
endif
261+
#
262+
else
263+
$(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE))
210264
endif
211265

212266
SRC_C += \
@@ -262,37 +316,10 @@ SRC_C += \
262316
systick.c \
263317
ticks.c \
264318
tusb_port.c \
265-
$(SRC_TINYUSB_C) \
319+
$(SRC_C_COMMON) \
266320
$(SRC_HAL_IMX_C) \
267321
$(SRC_ETH_C) \
268-
269-
ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor)
270-
CFLAGS += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_nor_flash.h\"
271-
SRC_C += hal/flexspi_nor_flash.c
272-
273-
ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1)
274-
CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\"
275-
SRC_C += $(BOARD_DIR)/qspi_nor_flash_config.c
276-
else
277-
CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\"
278-
SRC_C += hal/qspi_nor_flash_config.c
279-
endif
280-
#
281-
else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash)
282-
CFLAGS += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_hyper_flash.h\"
283-
SRC_C += hal/flexspi_hyper_flash.c
284-
285-
ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1)
286-
CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\"
287-
SRC_C += $(BOARD_DIR)/qspi_hyper_flash_config.c
288-
else
289-
CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\"
290-
SRC_C += hal/qspi_hyper_flash_config.c
291-
endif
292-
#
293-
else
294-
$(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE))
295-
endif
322+
$(SRC_TINYUSB_C)
296323

297324
ifeq ($(MICROPY_FLOAT_IMPL),double)
298325
LIBM_SRC_C += $(addprefix lib/libm_dbl/,\
@@ -425,20 +452,35 @@ OBJ += $(addprefix $(BUILD)/, $(SRC_SS:.S=.o))
425452
OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o))
426453
OBJ += $(BUILD)/pins_gen.o
427454

455+
include bootloader.mk
456+
428457
# Workaround for bug in older gcc, warning on "static usbd_device_t _usbd_dev = { 0 };"
429458
$(BUILD)/lib/tinyusb/src/device/usbd.o: CFLAGS += -Wno-missing-braces
430459

431-
all: $(BUILD)/firmware.hex $(BUILD)/firmware.bin
460+
all: $(BUILD)/firmware.bin $(BUILD)/firmware.hex
432461

433462
$(BUILD)/firmware.elf: $(OBJ)
434-
$(ECHO) "PREPROCESS LINK $@"
463+
$(ECHO) "GENERATING $(BUILD)/link.ld"
435464
$(Q)$(CC) -E -x c $(LDDEFINES) $(LD_FILES) | grep -v '^#' > $(BUILD)/link.ld
436-
$(ECHO) "LINK $@"
465+
$(ECHO) "LINKING $@"
437466
$(Q)$(LD) -T$(BUILD)/link.ld $(LDFLAGS) -o $@ $^ $(LIBS)
467+
$(ECHO) ""
468+
$(ECHO) "UPDATE SECTION .fw_header"
469+
$(Q)$(OBJCOPY) -O binary $@ $(BUILD)/temp_firmware.bin
470+
$(Q)$(PYTHON) $(PATCH_BINARY) $(BUILD)/temp_firmware.bin $(BUILD)/fw_header.bin 1024 $$(($(MICROPY_BOOT_BUFFER_SIZE)))
471+
$(Q)$(OBJCOPY) $@ --update-section .fw_header=$(BUILD)/fw_header.bin
472+
$(ECHO) "$(BUILD)/fw_header.bin ==> .fw_header"
473+
$(ECHO) ""
474+
$(ECHO) "UPDATE SECTION .bootloader"
475+
$(Q)$(OBJCOPY) $@ --update-section .bootloader=$(BUILD_BL)/bootloader.bin
476+
$(ECHO) "$(BUILD_BL)/bootloader.bin ==> .bootloader"
477+
$(ECHO) ""
478+
$(ECHO) "OUTPUT INFO"
438479
$(Q)$(SIZE) $@
480+
$(ECHO) ""
439481

440482
$(BUILD)/firmware.bin: $(BUILD)/firmware.elf
441-
$(Q)$(OBJCOPY) -O binary $^ $@
483+
$(Q)$(OBJCOPY) -O binary $< $@
442484

443485
$(BUILD)/firmware.hex: $(BUILD)/firmware.elf
444486
$(Q)$(OBJCOPY) -O ihex -R .eeprom $< $@
@@ -448,7 +490,7 @@ $(BUILD)/firmware.hex: $(BUILD)/firmware.elf
448490
# any of the objects. The normal dependency generation will deal with the
449491
# case when pins.h is modified. But when it doesn't exist, we don't know
450492
# which source files might need it.
451-
$(OBJ): | $(GEN_PINS_HDR) $(GEN_FLEXRAM_CONFIG_SRC)
493+
$(OBJ): | $(BUILD_BL)/bootloader.bin $(BUILD_BL)/bootloader.hex $(GEN_PINS_HDR) $(GEN_FLEXRAM_CONFIG_SRC)
452494

453495
# With conditional pins, we may need to regenerate qstrdefs.h when config
454496
# options change.
@@ -459,7 +501,6 @@ $(GEN_FLEXRAM_CONFIG_SRC):
459501
$(Q)$(PYTHON) $(MAKE_FLEXRAM_LD) -d $(TOP)/$(MCU_DIR)/$(MCU_SERIES).h \
460502
-f $(TOP)/$(MCU_DIR)/$(MCU_SERIES)_features.h -l boards/$(MCU_SERIES).ld -c $(MCU_SERIES) > $(GEN_FLEXRAM_CONFIG_SRC)
461503

462-
463504
# Use a pattern rule here so that make will only call make-pins.py once to make
464505
# both pins_gen.c and pins.h
465506
$(BUILD)/%_gen.c $(HEADER_BUILD)/%.h: $(BOARD_PINS) $(MAKE_PINS) $(AF_FILE) $(PREFIX_FILE) | $(HEADER_BUILD)

ports/mimxrt/board_init.c

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,10 @@
4040
#include "clock_config.h"
4141
#include "modmachine.h"
4242

43-
4443
const uint8_t dcd_data[] = { 0x00 };
4544

45+
void usb_phy0_init(uint8_t d_cal, uint8_t txcal45dp, uint8_t txcal45dn);
46+
4647
void board_init(void) {
4748
// Init clock
4849
BOARD_BootClockRUN();
@@ -59,32 +60,8 @@ void board_init(void) {
5960
// 1ms tick timer
6061
SysTick_Config(SystemCoreClock / 1000);
6162

62-
// ------------- USB0 ------------- //
63-
// Clock
64-
CLOCK_EnableUsbhs0PhyPllClock(kCLOCK_Usbphy480M, 480000000U);
65-
CLOCK_EnableUsbhs0Clock(kCLOCK_Usb480M, 480000000U);
66-
67-
#ifdef USBPHY1
68-
USBPHY_Type *usb_phy = USBPHY1;
69-
#else
70-
USBPHY_Type *usb_phy = USBPHY;
71-
#endif
72-
73-
// Enable PHY support for Low speed device + LS via FS Hub
74-
usb_phy->CTRL |= USBPHY_CTRL_SET_ENUTMILEVEL2_MASK | USBPHY_CTRL_SET_ENUTMILEVEL3_MASK;
75-
76-
// Enable all power for normal operation
77-
usb_phy->PWD = 0;
78-
79-
// TX Timing
80-
uint32_t phytx = usb_phy->TX;
81-
phytx &= ~(USBPHY_TX_D_CAL_MASK | USBPHY_TX_TXCAL45DM_MASK | USBPHY_TX_TXCAL45DP_MASK);
82-
phytx |= USBPHY_TX_D_CAL(0x0C) | USBPHY_TX_TXCAL45DP(0x06) | USBPHY_TX_TXCAL45DM(0x06);
83-
usb_phy->TX = phytx;
84-
85-
// USB1
86-
// CLOCK_EnableUsbhs1PhyPllClock(kCLOCK_Usbphy480M, 480000000U);
87-
// CLOCK_EnableUsbhs1Clock(kCLOCK_Usb480M, 480000000U);
63+
// USB0
64+
usb_phy0_init(0b0111, 0b0110, 0b0110); // Configure nominal values for D_CAL and TXCAL45DP/DN
8865

8966
// ADC
9067
machine_adc_init();
@@ -98,6 +75,28 @@ void board_init(void) {
9875
#endif
9976
}
10077

78+
void usb_phy0_init(uint8_t d_cal, uint8_t txcal45dp, uint8_t txcal45dn) {
79+
#ifdef USBPHY1
80+
USBPHY_Type *usb_phy = USBPHY1;
81+
#else
82+
USBPHY_Type *usb_phy = USBPHY;
83+
#endif
84+
85+
CLOCK_EnableUsbhs0PhyPllClock(kCLOCK_Usbphy480M, BOARD_XTAL0_CLK_HZ);
86+
CLOCK_EnableUsbhs0Clock(kCLOCK_Usb480M, BOARD_XTAL0_CLK_HZ);
87+
88+
#if defined(CPU_MIMXRT1176_cm7)
89+
usb_phy->TRIM_OVERRIDE_EN = USBPHY_TRIM_OVERRIDE_EN_TRIM_DIV_SEL_OVERRIDE(1) |
90+
USBPHY_TRIM_OVERRIDE_EN_TRIM_ENV_TAIL_ADJ_VD_OVERRIDE(1) |
91+
USBPHY_TRIM_OVERRIDE_EN_TRIM_TX_D_CAL_OVERRIDE(1) |
92+
USBPHY_TRIM_OVERRIDE_EN_TRIM_TX_CAL45DP_OVERRIDE(1) |
93+
USBPHY_TRIM_OVERRIDE_EN_TRIM_TX_CAL45DN_OVERRIDE(1); // Enable override for D_CAL and TXCAL45DP/DN
94+
#endif
95+
usb_phy->PWD = 0U; // Set all bits in PWD register to normal operation
96+
usb_phy->TX = ((usb_phy->TX & (~(USBPHY_TX_D_CAL_MASK | USBPHY_TX_TXCAL45DM_MASK | USBPHY_TX_TXCAL45DP_MASK))) |
97+
(USBPHY_TX_D_CAL(d_cal) | USBPHY_TX_TXCAL45DP(txcal45dp) | USBPHY_TX_TXCAL45DM(txcal45dn))); // Configure values for D_CAL and TXCAL45DP/DN
98+
}
99+
101100
void USB_OTG1_IRQHandler(void) {
102101
tud_int_handler(0);
103102
tud_task();

ports/mimxrt/boards/MIMXRT1010_EVK/mpconfigboard.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ MICROPY_PY_MACHINE_SDCARD = 0
66
MICROPY_HW_FLASH_TYPE ?= qspi_nor
77
MICROPY_HW_FLASH_SIZE ?= 0x1000000 # 16MB
88

9+
MICROPY_BOOT_BUFFER_SIZE = (32 * 1024)
10+
911
JLINK_PATH ?= /media/RT1010-EVK/
1012
JLINK_COMMANDER_SCRIPT = $(BUILD)/script.jlink
1113

ports/mimxrt/boards/MIMXRT1011.ld

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,17 @@
33
reserved_size = MICROPY_HW_FLASH_RESERVED;
44
#endif
55

6-
#if MICROPY_HW_FLASH_TYPE==qspi_nor
7-
flash_start = 0x60000000;
6+
#if MICROPY_HW_FLASH_TYPE == qspi_nor
7+
flash_start = 0x60000000;
8+
flash_size = MICROPY_HW_FLASH_SIZE;
89
#else
9-
#error Unknown MICROPY_HW_FLASH_TYPE
10+
#error Unknown MICROPY_HW_FLASH_TYPE
1011
#endif
11-
flash_size = MICROPY_HW_FLASH_SIZE;
12-
flash_end = DEFINED(reserved_size) ? ((flash_start) + (flash_size - reserved_size)) : ((flash_start) + (flash_size));
12+
13+
/* MIMXRT1011 requires different offset for flash configuration */
1314
flash_config_start = flash_start + 0x00000400;
1415
flash_config_size = 0x00000C00;
15-
ivt_start = flash_start + 0x00001000;
16-
ivt_size = 0x00001000;
17-
interrupts_start = flash_start + 0x00002000;
18-
interrupts_size = 0x00000400;
19-
text_start = flash_start + 0x00002400;
20-
vfs_start = flash_start + 0x00100000;
21-
text_size = ((vfs_start) - (text_start));
22-
vfs_size = ((flash_end) - (vfs_start));
16+
2317
itcm_start = 0x00000000;
2418
itcm_size = 0x00008000;
2519
dtcm_start = 0x20000000;
@@ -29,12 +23,6 @@ ocrm_size = 0x00010000;
2923

3024
/* 20kiB stack. */
3125
__stack_size__ = 0x5000;
32-
_estack = __StackTop;
33-
_sstack = __StackLimit;
3426

3527
/* Do not use the traditional C heap. */
3628
__heap_size__ = 0;
37-
38-
/* Use second OCRAM bank for GC heap. */
39-
_gc_heap_start = ORIGIN(m_ocrm);
40-
_gc_heap_end = ORIGIN(m_ocrm) + LENGTH(m_ocrm);

ports/mimxrt/boards/MIMXRT1020_EVK/mpconfigboard.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ MICROPY_HW_FLASH_SIZE ?= 0x800000 # 8MB
99
MICROPY_HW_SDRAM_AVAIL = 1
1010
MICROPY_HW_SDRAM_SIZE = 0x2000000 # 32MB
1111

12+
MICROPY_BOOT_BUFFER_SIZE = (32 * 1024)
1213
MICROPY_PY_LWIP = 1
1314
MICROPY_PY_USSL = 1
1415
MICROPY_SSL_MBEDTLS = 1

0 commit comments

Comments
 (0)
0