-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathplatformio.ini
More file actions
278 lines (263 loc) · 10.3 KB
/
platformio.ini
File metadata and controls
278 lines (263 loc) · 10.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = ZuluSCSI_Blaster, ZuluSCSI_Wide, ZuluSCSI_RP2040, ZuluSCSI_Pico, ZuluSCSI_Pico_DaynaPORT, ZuluSCSI_Pico_2, ZuluSCSI_Pico_2_DaynaPORT
[env]
build_flags =
-DBUILD_ENV=$PIOENV
; ZuluSCSI settings shared among Raspberry Pi microcontroller like the RP2040 and RP2350
; Note: getting the code to break on main, check the comments in the rp2040-template.ld or rp23xx-template.ld
; They should instruct you on the changes needed to move code out of SRAM and back to flash
[env:ZuluSCSI_RP2MCU]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#6164ed92d83c1241a1d84ad848158d7b0fb486e3
platform_packages =
framework-arduinopico@https://github.com/rabbitholecomputing/arduino-pico.git#v5.4.2-DaynaPORT
extra_scripts =
src/build_bootloader.py
src/process-linker-script.py
board_build.core = earlephilhower
; How much flash in bytes the bootloader and main app will be allocated
; It is used as the starting point for a ROM image saved in flash
; Changing this will cause issues with boards that already have a ROM drive in flash
; Current setting allows 800KB (size of early Mac Floppies) for 2MB flash
program_flash_allocation = 1273856
board_build.ldscript = ${BUILD_DIR}/rp_linker.ld ; created by src/process-linker-script.py
framework = arduino
lib_ldf_mode = chain+
lib_deps =
SdFat=https://github.com/rabbitholecomputing/SdFat#2.2.3-gpt-exfat
minIni
SCSI2SD
ZuluContainerFS=https://github.com/rabbitholecomputing/ZuluContainerFS.git
; When updating git tag for CUEParser here, also update lib\ZuluSCSI_platform_RP2MCU\library.json
CUEParser=https://github.com/rabbitholecomputing/CUEParser#v2026.03.13
ZuluSCSI_platform_RP2MCU
upload_protocol = cmsis-dap
debug_tool = cmsis-dap
debug_build_flags =
-O2 -ggdb -g3
build_flags =
${env.build_flags}
-O2 -Isrc -ggdb -g3
-Wall -Wno-sign-compare -Wno-ignored-qualifiers -Wno-overloaded-virtual
-DSPI_DRIVER_SELECT=3
-DSD_CHIP_SELECT_MODE=2
-DENABLE_DEDICATED_SPI=1
-DHAS_SDIO_CLASS
-DUSE_ARDUINO=1
-DPICO_FLASH_SPI_CLKDIV=2
-DPLATFORM_MASS_STORAGE
-DCONTAINER_IMAGE_SUPPORT
-DFILE_COPY_CONSTRUCTOR_SELECT=FILE_COPY_CONSTRUCTOR_PUBLIC
-DDISABLE_FS_H_WARNING
-DRECLOCKING_SUPPORTED
-DROMDRIVE_OFFSET=${env:ZuluSCSI_RP2MCU.program_flash_allocation}
; build flags mirroring the "framework-arduinopico#x.x.x-DaynaPORT" static library build
-DPICO_CYW43_ARCH_POLL=1
-DCYW43_PIN_WL_DYNAMIC=1
-DCYW43_LWIP=0
-DCYW43_USE_OTP_MAC=0
; ZuluSCSI RP2040 hardware platform, based on the Raspberry Pi foundation RP2040 microcontroller
[env:ZuluSCSI_RP2040]
extends = env:ZuluSCSI_RP2MCU
board = zuluscsi_rp2040
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp2040-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp2040_btldr.ld
lib_ignore = SDIO_RP2350
lib_deps =
${env:ZuluSCSI_RP2MCU.lib_deps}
adafruit/Adafruit SSD1306@^2.5.15
adafruit/Adafruit GFX Library@^1.12.1
adafruit/Adafruit BusIO@^1.17.1
ZuluSCSI_UI_RP2MCU
ZuluSCSI_audio_RP2MCU
debug_build_flags =
${env:ZuluSCSI_RP2MCU.debug_build_flags}
; The values can be adjusted down to get a debug build to fit in to SRAM
-DLOGBUFSIZE=4096
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_RP2040
-DZULUSCSI_MCU_RP20XX
-DENABLE_AUDIO_OUTPUT
-DENABLE_AUDIO_OUTPUT_SPDIF
-DCONTROL_BOARD
-DSSD1306_NO_SPLASH
-DLOGBUFSIZE=8192
; Variant of RP2040 platform, based on Raspberry Pico board and a carrier PCB
; Part of the ZuluSCSI_RP2040 platform, but with different pins.
[env:ZuluSCSI_Pico]
extends = env:ZuluSCSI_RP2MCU
board = rpipico
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp2040-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp2040_btldr.ld
lib_ignore = SDIO_RP2350
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_PICO
-DZULUSCSI_MCU_RP20XX
; Build for the ZuluSCSI Pico carrier board with a Pico-W
; for SCSI DaynaPORT emulation
[env:ZuluSCSI_Pico_DaynaPORT]
extends = env:ZuluSCSI_RP2MCU
board = rpipicow
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp2040-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp2040_btldr.ld
lib_ignore = SDIO_RP2350
debug_build_flags =
${env:ZuluSCSI_RP2MCU.debug_build_flags}
; This controls the depth NETWORK_PACKET_MAX_SIZE (1520 bytes)
; For example a queue size of 10 would be 10 x 1520 = 30400 bytes
-DNETWORK_PACKET_QUEUE_SIZE=8
; This flag enables verbose logging of TCP/IP traffic and other information
; it also takes up a bit of SRAM so it should be disabled with production code
-DNETWORK_DEBUG_LOGGING
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_PICO
-DZULUSCSI_MCU_RP20XX
-DZULUSCSI_NETWORK
-DZULUSCSI_DAYNAPORT
-DCYW43_PIO_CLOCK_DIV_DYNAMIC=1
; This controls the depth of NETWORK_PACKET_MAX_SIZE (1520 bytes)
; For example a queue size of 10 would be 10 x 1520 = 15200 bytes
-DNETWORK_PACKET_QUEUE_SIZE=14
; This flag enables verbose logging of TCP/IP traffic and other information
; it also takes up a bit of SRAM so it should be disabled with production code
; -DNETWORK_DEBUG_LOGGING
; Variant of RP2040 platform, based on Raspberry Pico board and a carrier PCB
; Differs in pinout from ZuluSCSI_RP2040 platform, but shares most of the code.
[env:ZuluSCSI_BS2]
extends = env:ZuluSCSI_RP2MCU
board = rpipico
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp2040-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp2040_btldr.ld
lib_ignore = SDIO_RP2350
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_BS2
-DZULUSCSI_MCU_RP20XX
; ZuluSCSI Pico2 hardware platform, based on the Raspberry Pi foundation RP2350A microcontroller
[env:ZuluSCSI_Pico_2]
extends = env:ZuluSCSI_RP2MCU
board = rpipico2
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp23xx-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp23xx_btldr.ld
lib_deps =
${env:ZuluSCSI_RP2MCU.lib_deps}
SDIO_RP2350=https://github.com/rabbitholecomputing/SDIO_RP2350#1.0.6
debug_build_flags =
${env:ZuluSCSI_RP2MCU.debug_build_flags}
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_PICO_2
-DZULUSCSI_MCU_RP23XX
-DSD_USE_RP2350_SDIO
;========================================
; ZuluSCSI RP2350 hardware platform, based on the Raspberry Pi foundation RP2350 microcontroller
[env:ZuluSCSI_Blaster]
extends = env:ZuluSCSI_RP2MCU
board = rhc_zuluscsi_blaster
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp23xx-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp23xx_btldr.ld
lib_deps =
${env:ZuluSCSI_RP2MCU.lib_deps}
SDIO_RP2350=https://github.com/rabbitholecomputing/SDIO_RP2350#1.0.6
RP2350_Logic_Sniffer=https://github.com/rabbitholecomputing/RP2350_Logic_Sniffer#1.0.1
adafruit/Adafruit SSD1306@^2.5.15
adafruit/Adafruit GFX Library@^1.12.1
adafruit/Adafruit BusIO@^1.17.1
ZuluSCSI_UI_RP2MCU
ZuluSCSI_audio_RP2MCU
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_BLASTER
-DZULUSCSI_MCU_RP23XX
-DENABLE_AUDIO_OUTPUT
-DENABLE_AUDIO_OUTPUT_I2S
-DSD_USE_RP2350_SDIO
-DZULUSCSI_NETWORK
-DZULUSCSI_DAYNAPORT
-DCYW43_PIO_CLOCK_DIV_DYNAMIC=1
-DZULUSCSI_RM2
; Use the -Wl line below as a "build_flags" entry if you wish to make a map file
; to check memory locations of the compiled code.
; -Wl,-Map="${platformio.build_dir}/${this.__env__}/firmware.map"
-DCONTROL_BOARD
-DSSD1306_NO_SPLASH
[env:ZuluSCSI_Pico_2_DaynaPORT]
extends = env:ZuluSCSI_RP2MCU
board = rpipico2w
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp23xx-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp23xx_btldr.ld
lib_deps =
${env:ZuluSCSI_RP2MCU.lib_deps}
SDIO_RP2350=https://github.com/rabbitholecomputing/SDIO_RP2350#1.0.6
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_PICO_2
-DZULUSCSI_MCU_RP23XX
-DZULUSCSI_PICO_2_DAYNAPORT
-DZULUSCSI_NETWORK
-DZULUSCSI_DAYNAPORT
-DCYW43_PIO_CLOCK_DIV_DYNAMIC=1
-DSD_USE_RP2350_SDIO
;========================================
; RP2350B based variant with 16-bit wide SCSI bus support
[env:ZuluSCSI_Wide]
extends = env:ZuluSCSI_RP2MCU
board = zuluscsi_wide
linker_script_template = lib/ZuluSCSI_platform_RP2MCU/rp23xx-template.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2MCU/rp23xx_btldr.ld
lib_deps =
${env:ZuluSCSI_RP2MCU.lib_deps}
SDIO_RP2350=https://github.com/rabbitholecomputing/SDIO_RP2350#1.0.6
RP2350_Logic_Sniffer=https://github.com/rabbitholecomputing/RP2350_Logic_Sniffer#1.0.1
compact25519=https://github.com/rabbitholecomputing/compact25519
adafruit/Adafruit SSD1306@^2.5.15
adafruit/Adafruit GFX Library@^1.12.1
adafruit/Adafruit BusIO@^1.17.1
ZuluSCSI_UI_RP2MCU
ZuluSCSI_audio_RP2MCU
build_flags =
${env:ZuluSCSI_RP2MCU.build_flags}
-DZULUSCSI_WIDE
-DZULUSCSI_MCU_RP23XX
-DENABLE_AUDIO_OUTPUT
-DENABLE_AUDIO_OUTPUT_I2S
-DRP2MCU_SCSI_ACCEL_WIDE
-DSD_USE_RP2350_SDIO
-DPICO_RP2350A=0
-DCONTROL_BOARD
-DSSD1306_NO_SPLASH
; Firmware for ZuluSCSI V1.0/v1.1/v1.2 hardware platforms (GD32-based microcontrollers)
; has been transitioned to Long Term Support state, and is maintained in the LTS/v1.x branch.
; The v2026.04.04 release is the last non-LTS firmware for the first-generation ZuluSCSI V1.x.
; The new V1.x LTS git branch is being maintained at https://github.com/ZuluSCSI/ZuluSCSI-firmware/tree/LTS/v1.x
; Example platform to serve as a base for porting efforts
[env:template]
platform = ststm32
framework = arduino
board = bluepill_f103c8
build_flags =
${env.build_flags}
-Os -Isrc
-DLOGBUFSIZE=512
-DPREFETCH_BUFFER_SIZE=0
-DMAX_SECTOR_SIZE=2048
-DSCSI2SD_BUFFER_SIZE=4096
-DINI_CACHE_SIZE=0
-DUSE_ARDUINO=1
lib_deps =
SdFat=https://github.com/rabbitholecomputing/SdFat#2.2.3-gpt-exfat
minIni
ZuluSCSI_platform_template
SCSI2SD
CUEParser=https://github.com/rabbitholecomputing/CUEParser#v2026.03.13