Skip to content

Commit fa086ff

Browse files
committed
WIP: Initial OPI support
1 parent 399b5e6 commit fa086ff

26 files changed

+1426
-47
lines changed

boards.txt

Lines changed: 159 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ menu.LORAWAN_REGION=LoRaWan Region
1616
menu.LoRaWanDebugLevel=LoRaWan Debug Level
1717
menu.LoopCore=Arduino Runs On
1818
menu.EventsCore=Events Run On
19+
menu.MemoryType=Memory Type
1920

2021
##############################################################
2122
### DO NOT PUT BOARDS ABOVE THE OFFICIAL ESPRESSIF BOARDS! ###
@@ -55,9 +56,52 @@ esp32s3.build.flash_mode=dio
5556
esp32s3.build.boot=qio
5657
esp32s3.build.partitions=default
5758
esp32s3.build.defines=
58-
esp32s3.build.extra_libs="-L{compiler.sdk.path}/lib/spiram"
5959
esp32s3.build.loop_core=
6060
esp32s3.build.event_core=
61+
esp32s3.build.memory_type=qspi_qspi
62+
63+
esp32s3.menu.MemoryType.default=QSPI Flash and PSRAM
64+
esp32s3.menu.MemoryType.default.build.memory_type=qspi_qspi
65+
esp32s3.menu.MemoryType.qspi_opi=QSPI Flash and OPI PSRAM
66+
esp32s3.menu.MemoryType.qspi_opi.build.memory_type=qspi_opi
67+
esp32s3.menu.MemoryType.opi_opi=OPI Flash and PSRAM
68+
esp32s3.menu.MemoryType.opi_opi.build.memory_type=opi_opi
69+
70+
esp32s3.menu.PSRAM.disabled=Disabled
71+
esp32s3.menu.PSRAM.disabled.build.defines=
72+
esp32s3.menu.PSRAM.enabled=Enabled
73+
esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
74+
75+
esp32s3.menu.FlashMode.qio=QIO
76+
esp32s3.menu.FlashMode.qio.build.flash_mode=dio
77+
esp32s3.menu.FlashMode.qio.build.boot=qio
78+
esp32s3.menu.FlashMode.dio=DIO
79+
esp32s3.menu.FlashMode.dio.build.flash_mode=dio
80+
esp32s3.menu.FlashMode.dio.build.boot=dio
81+
esp32s3.menu.FlashMode.qout=QOUT
82+
esp32s3.menu.FlashMode.qout.build.flash_mode=dout
83+
esp32s3.menu.FlashMode.qout.build.boot=qout
84+
esp32s3.menu.FlashMode.dout=DOUT
85+
esp32s3.menu.FlashMode.dout.build.flash_mode=dout
86+
esp32s3.menu.FlashMode.dout.build.boot=dout
87+
esp32s3.menu.FlashMode.opi=OPI
88+
esp32s3.menu.FlashMode.opi.build.flash_mode=dout
89+
esp32s3.menu.FlashMode.opi.build.boot=opi
90+
91+
esp32s3.menu.FlashFreq.80=80MHz
92+
esp32s3.menu.FlashFreq.80.build.flash_freq=80m
93+
esp32s3.menu.FlashFreq.40=40MHz
94+
esp32s3.menu.FlashFreq.40.build.flash_freq=40m
95+
96+
esp32s3.menu.FlashSize.4M=4MB (32Mb)
97+
esp32s3.menu.FlashSize.4M.build.flash_size=4MB
98+
esp32s3.menu.FlashSize.8M=8MB (64Mb)
99+
esp32s3.menu.FlashSize.8M.build.flash_size=8MB
100+
esp32s3.menu.FlashSize.8M.build.partitions=default_8MB
101+
esp32s3.menu.FlashSize.16M=16MB (128Mb)
102+
esp32s3.menu.FlashSize.16M.build.flash_size=16MB
103+
esp32s3.menu.FlashSize.32M=32MB (256Mb)
104+
esp32s3.menu.FlashSize.32M.build.flash_size=32MB
61105

62106
esp32s3.menu.LoopCore.1=Core 1
63107
esp32s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
@@ -96,16 +140,6 @@ esp32s3.menu.UploadMode.cdc=Internal USB
96140
esp32s3.menu.UploadMode.cdc.upload.use_1200bps_touch=true
97141
esp32s3.menu.UploadMode.cdc.upload.wait_for_upload_port=true
98142

99-
esp32s3.menu.PSRAM.disabled=Disabled
100-
esp32s3.menu.PSRAM.disabled.build.defines=
101-
esp32s3.menu.PSRAM.disabled.build.extra_libs="-L{compiler.sdk.path}/lib/spiram"
102-
esp32s3.menu.PSRAM.qspi=QSPI
103-
esp32s3.menu.PSRAM.qspi.build.defines=-DBOARD_HAS_PSRAM
104-
esp32s3.menu.PSRAM.qspi.build.extra_libs="-L{compiler.sdk.path}/lib/spiram"
105-
esp32s3.menu.PSRAM.opi=OPI
106-
esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM -DCONFIG_SPIRAM_BOOT_INIT -DCONFIG_SPIRAM_MODE_OCT=1
107-
esp32s3.menu.PSRAM.opi.build.extra_libs="-L{compiler.sdk.path}/lib/opiram"
108-
109143
esp32s3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
110144
esp32s3.menu.PartitionScheme.default.build.partitions=default
111145
esp32s3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
@@ -153,35 +187,6 @@ esp32s3.menu.CPUFreq.20.build.f_cpu=20000000L
153187
esp32s3.menu.CPUFreq.10=10MHz
154188
esp32s3.menu.CPUFreq.10.build.f_cpu=10000000L
155189

156-
esp32s3.menu.FlashMode.qio=QIO
157-
esp32s3.menu.FlashMode.qio.build.flash_mode=dio
158-
esp32s3.menu.FlashMode.qio.build.boot=qio
159-
esp32s3.menu.FlashMode.dio=DIO
160-
esp32s3.menu.FlashMode.dio.build.flash_mode=dio
161-
esp32s3.menu.FlashMode.dio.build.boot=dio
162-
esp32s3.menu.FlashMode.qout=QOUT
163-
esp32s3.menu.FlashMode.qout.build.flash_mode=dout
164-
esp32s3.menu.FlashMode.qout.build.boot=qout
165-
esp32s3.menu.FlashMode.dout=DOUT
166-
esp32s3.menu.FlashMode.dout.build.flash_mode=dout
167-
esp32s3.menu.FlashMode.dout.build.boot=dout
168-
169-
esp32s3.menu.FlashFreq.80=80MHz
170-
esp32s3.menu.FlashFreq.80.build.flash_freq=80m
171-
esp32s3.menu.FlashFreq.40=40MHz
172-
esp32s3.menu.FlashFreq.40.build.flash_freq=40m
173-
174-
esp32s3.menu.FlashSize.4M=4MB (32Mb)
175-
esp32s3.menu.FlashSize.4M.build.flash_size=4MB
176-
esp32s3.menu.FlashSize.8M=8MB (64Mb)
177-
esp32s3.menu.FlashSize.8M.build.flash_size=8MB
178-
esp32s3.menu.FlashSize.8M.build.partitions=default_8MB
179-
esp32s3.menu.FlashSize.2M=2MB (16Mb)
180-
esp32s3.menu.FlashSize.2M.build.flash_size=2MB
181-
esp32s3.menu.FlashSize.2M.build.partitions=minimal
182-
esp32s3.menu.FlashSize.16M=16MB (128Mb)
183-
esp32s3.menu.FlashSize.16M.build.flash_size=16MB
184-
185190
esp32s3.menu.UploadSpeed.921600=921600
186191
esp32s3.menu.UploadSpeed.921600.upload.speed=921600
187192
esp32s3.menu.UploadSpeed.115200=115200
@@ -884,8 +889,8 @@ esp32s3box.build.flash_freq=80m
884889
esp32s3box.build.flash_mode=dio
885890
esp32s3box.build.boot=qio
886891
esp32s3box.build.partitions=default
887-
esp32s3box.build.extra_libs="-L{compiler.sdk.path}/lib/opiram"
888-
esp32s3box.build.defines=-DBOARD_HAS_PSRAM -DCONFIG_SPIRAM_BOOT_INIT -DCONFIG_SPIRAM_MODE_OCT=1
892+
esp32s3box.build.defines=-DBOARD_HAS_PSRAM
893+
esp32s3box.build.memory_type=qspi_opi
889894
esp32s3box.build.loop_core=-DARDUINO_RUNNING_CORE=1
890895
esp32s3box.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
891896

@@ -955,6 +960,118 @@ esp32s3box.menu.DebugLevel.verbose.build.code_debug=5
955960

956961
##############################################################
957962

963+
esp32s3camlcd.name=ESP32S3 CAM LCD
964+
esp32s3camlcd.vid.0=0x303a
965+
esp32s3camlcd.pid.0=0x1001
966+
967+
esp32s3camlcd.upload.tool=esptool_py
968+
esp32s3camlcd.upload.maximum_size=1310720
969+
esp32s3camlcd.upload.maximum_data_size=327680
970+
esp32s3camlcd.upload.flags=
971+
esp32s3camlcd.upload.extra_flags=
972+
esp32s3camlcd.upload.use_1200bps_touch=false
973+
esp32s3camlcd.upload.wait_for_upload_port=false
974+
975+
esp32s3camlcd.serial.disableDTR=false
976+
esp32s3camlcd.serial.disableRTS=false
977+
978+
esp32s3camlcd.build.tarch=xtensa
979+
esp32s3camlcd.build.bootloader_addr=0x0
980+
esp32s3camlcd.build.target=esp32s3
981+
esp32s3camlcd.build.mcu=esp32s3
982+
esp32s3camlcd.build.core=esp32
983+
esp32s3camlcd.build.variant=esp32s3camlcd
984+
esp32s3camlcd.build.board=ESP32S3_CAM_LCD
985+
986+
esp32s3camlcd.build.usb_mode=1
987+
esp32s3camlcd.build.cdc_on_boot=0
988+
esp32s3camlcd.build.msc_on_boot=0
989+
esp32s3camlcd.build.dfu_on_boot=0
990+
esp32s3camlcd.build.f_cpu=240000000L
991+
esp32s3camlcd.build.flash_size=4MB
992+
esp32s3camlcd.build.flash_freq=80m
993+
esp32s3camlcd.build.flash_mode=dout
994+
esp32s3camlcd.build.boot=opi
995+
esp32s3camlcd.build.partitions=default
996+
esp32s3camlcd.build.defines=-DBOARD_HAS_PSRAM
997+
esp32s3camlcd.build.memory_type=opi_opi
998+
esp32s3camlcd.build.loop_core=
999+
esp32s3camlcd.build.event_core=
1000+
1001+
esp32s3camlcd.menu.LoopCore.1=Core 1
1002+
esp32s3camlcd.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
1003+
esp32s3camlcd.menu.LoopCore.0=Core 0
1004+
esp32s3camlcd.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
1005+
1006+
esp32s3camlcd.menu.EventsCore.1=Core 1
1007+
esp32s3camlcd.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
1008+
esp32s3camlcd.menu.EventsCore.0=Core 0
1009+
esp32s3camlcd.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
1010+
1011+
esp32s3camlcd.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
1012+
esp32s3camlcd.menu.PartitionScheme.default.build.partitions=default
1013+
esp32s3camlcd.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
1014+
esp32s3camlcd.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
1015+
esp32s3camlcd.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
1016+
esp32s3camlcd.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
1017+
esp32s3camlcd.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
1018+
esp32s3camlcd.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
1019+
esp32s3camlcd.menu.PartitionScheme.minimal.build.partitions=minimal
1020+
esp32s3camlcd.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
1021+
esp32s3camlcd.menu.PartitionScheme.no_ota.build.partitions=no_ota
1022+
esp32s3camlcd.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
1023+
esp32s3camlcd.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
1024+
esp32s3camlcd.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
1025+
esp32s3camlcd.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
1026+
esp32s3camlcd.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
1027+
esp32s3camlcd.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
1028+
esp32s3camlcd.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
1029+
esp32s3camlcd.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
1030+
esp32s3camlcd.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
1031+
esp32s3camlcd.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
1032+
esp32s3camlcd.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
1033+
esp32s3camlcd.menu.PartitionScheme.huge_app.build.partitions=huge_app
1034+
esp32s3camlcd.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
1035+
esp32s3camlcd.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
1036+
esp32s3camlcd.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
1037+
esp32s3camlcd.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
1038+
esp32s3camlcd.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
1039+
esp32s3camlcd.menu.PartitionScheme.fatflash.build.partitions=ffat
1040+
esp32s3camlcd.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
1041+
esp32s3camlcd.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
1042+
esp32s3camlcd.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
1043+
esp32s3camlcd.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
1044+
1045+
esp32s3camlcd.menu.UploadSpeed.921600=921600
1046+
esp32s3camlcd.menu.UploadSpeed.921600.upload.speed=921600
1047+
esp32s3camlcd.menu.UploadSpeed.115200=115200
1048+
esp32s3camlcd.menu.UploadSpeed.115200.upload.speed=115200
1049+
esp32s3camlcd.menu.UploadSpeed.256000.windows=256000
1050+
esp32s3camlcd.menu.UploadSpeed.256000.upload.speed=256000
1051+
esp32s3camlcd.menu.UploadSpeed.230400.windows.upload.speed=256000
1052+
esp32s3camlcd.menu.UploadSpeed.230400=230400
1053+
esp32s3camlcd.menu.UploadSpeed.230400.upload.speed=230400
1054+
esp32s3camlcd.menu.UploadSpeed.460800.linux=460800
1055+
esp32s3camlcd.menu.UploadSpeed.460800.macosx=460800
1056+
esp32s3camlcd.menu.UploadSpeed.460800.upload.speed=460800
1057+
esp32s3camlcd.menu.UploadSpeed.512000.windows=512000
1058+
esp32s3camlcd.menu.UploadSpeed.512000.upload.speed=512000
1059+
1060+
esp32s3camlcd.menu.DebugLevel.none=None
1061+
esp32s3camlcd.menu.DebugLevel.none.build.code_debug=0
1062+
esp32s3camlcd.menu.DebugLevel.error=Error
1063+
esp32s3camlcd.menu.DebugLevel.error.build.code_debug=1
1064+
esp32s3camlcd.menu.DebugLevel.warn=Warn
1065+
esp32s3camlcd.menu.DebugLevel.warn.build.code_debug=2
1066+
esp32s3camlcd.menu.DebugLevel.info=Info
1067+
esp32s3camlcd.menu.DebugLevel.info.build.code_debug=3
1068+
esp32s3camlcd.menu.DebugLevel.debug=Debug
1069+
esp32s3camlcd.menu.DebugLevel.debug.build.code_debug=4
1070+
esp32s3camlcd.menu.DebugLevel.verbose=Verbose
1071+
esp32s3camlcd.menu.DebugLevel.verbose.build.code_debug=5
1072+
1073+
##############################################################
1074+
9581075
esp32s2usb.name=ESP32S2 Native USB
9591076
esp32s2usb.vid.0=0x303a
9601077
esp32s2usb.pid.0=0x0003

platform.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ compiler.elf2hex.extra_flags=
117117
compiler.libraries.ldflags=
118118

119119
# This can be overriden in boards.txt
120+
build.memory_type=qspi_qspi
120121
build.flash_size=4MB
121122
build.flash_mode=dio
122123
build.boot=qio
@@ -165,7 +166,7 @@ recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.fla
165166
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"
166167

167168
## Combine gc-sections, archives, and objects
168-
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-Wl,--Map={build.path}/{build.project_name}.map" "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} {build.extra_flags} -Wl,--start-group {object_files} "{archive_file_path}" {build.extra_libs} {compiler.c.elf.libs} {compiler.libraries.ldflags} -Wl,--end-group -Wl,-EL -o "{build.path}/{build.project_name}.elf"
169+
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-Wl,--Map={build.path}/{build.project_name}.map" "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" "-L{compiler.sdk.path}/{build.memory_type}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} {build.extra_flags} -Wl,--start-group {object_files} "{archive_file_path}" {build.extra_libs} {compiler.c.elf.libs} {compiler.libraries.ldflags} -Wl,--end-group -Wl,-EL -o "{build.path}/{build.project_name}.elf"
169170

170171
## Create partitions.bin
171172
recipe.objcopy.partitions.bin.pattern={tools.gen_esp32part.cmd} -q "{build.path}/partitions.csv" "{build.path}/{build.project_name}.partitions.bin"

tools/platformio-build-esp32.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,8 @@
290290

291291
LIBPATH=[
292292
join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "lib"),
293-
join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "ld")
293+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "ld"),
294+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "qspi_qspi")
294295
],
295296

296297
LIBS=[

tools/platformio-build-esp32c3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,8 @@
280280

281281
LIBPATH=[
282282
join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "lib"),
283-
join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "ld")
283+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "ld"),
284+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "qspi_qspi")
284285
],
285286

286287
LIBS=[

tools/platformio-build-esp32s2.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,8 @@
277277

278278
LIBPATH=[
279279
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "lib"),
280-
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "ld")
280+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "ld"),
281+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "qspi_qspi")
281282
],
282283

283284
LIBS=[

tools/platformio-build-esp32s3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,8 @@
294294

295295
LIBPATH=[
296296
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "lib"),
297-
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "ld")
297+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "ld"),
298+
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "qspi_qspi")
298299
],
299300

300301
LIBS=[
13.5 KB
Binary file not shown.
Binary file not shown.
1.4 MB
Binary file not shown.
1.32 MB
Binary file not shown.

0 commit comments

Comments
 (0)