; PlatformIO Project Configuration File https://docs.platformio.org/page/projectconf.html

[platformio]
default_envs = ZuluSCSIv1_0, ZuluSCSIv1_0_mini, ZuluSCSIv1_1, ZuluSCSI_RP2040, ZuluSCSI_BS2

; Example platform to serve as a base for porting efforts
[env:template]
platform = ststm32
framework = arduino
board = bluepill_f103c8
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.0-gpt
    minIni
    ZuluSCSI_platform_template
    SCSI2SD
    CUEParser

; ZuluSCSI V1.0 hardware platform with GD32F205 CPU.
[env:ZuluSCSIv1_0]
platform = https://github.com/CommunityGD32Cores/platform-gd32.git
board = genericGD32F205VC
board_build.mcu = gd32f205vct6
board_build.core = gd32
board_build.ldscript = lib/ZuluSCSI_platform_GD32F205/zuluscsi_gd32f205.ld
ldscript_bootloader = lib/ZuluSCSI_platform_GD32F205/zuluscsi_gd32f205_btldr.ld
framework = spl
lib_compat_mode = off
lib_deps =
    SdFat_NoArduino
    minIni
    ZuluSCSI_platform_GD32F205
    SCSI2SD
    CUEParser
upload_protocol = stlink
platform_packages = 
    toolchain-gccarmnoneeabi@1.60301.0
    framework-spl-gd32@https://github.com/CommunityGD32Cores/gd32-pio-spl-package.git
extra_scripts = src/build_bootloader.py
debug_build_flags = -Os -ggdb -g3
build_flags = 
     -Os -Wall -Wno-sign-compare -ggdb -g3 -Isrc
     -D__SYSTEM_CLOCK_120M_PLL_IRC8M=120000000
     -DSPI_DRIVER_SELECT=3
     -DSD_CHIP_SELECT_MODE=2
     -DENABLE_DEDICATED_SPI=1
     -DZULUSCSI_V1_0

; ZuluSCSI V1.0 mini hardware platform with GD32F205 CPU.
[env:ZuluSCSIv1_0_mini]
extends = env:ZuluSCSIv1_0
build_flags = 
     -Os -Wall -Wno-sign-compare -ggdb -g3 -Isrc
     -D__SYSTEM_CLOCK_120M_PLL_IRC8M=120000000
     -DSPI_DRIVER_SELECT=3
     -DSD_CHIP_SELECT_MODE=2
     -DENABLE_DEDICATED_SPI=1
     -DZULUSCSI_V1_0
     -DZULUSCSI_V1_0_mini

; ZuluSCSI V1.1 hardware platform, similar to V1.0 but with improved performance.
[env:ZuluSCSIv1_1]
extends = env:ZuluSCSIv1_0
build_flags = 
     -Os -Wall -Wno-sign-compare -ggdb -g3 -Isrc
     -D__SYSTEM_CLOCK_120M_PLL_IRC8M=120000000
     -DSPI_DRIVER_SELECT=3
     -DSD_CHIP_SELECT_MODE=2
     -DENABLE_DEDICATED_SPI=1
     -DHAS_SDIO_CLASS
     -DZULUSCSI_V1_1

; ZuluSCSI RP2040 hardware platform, based on the Raspberry Pi foundation RP2040 microcontroller
[env:ZuluSCSI_RP2040]
platform = raspberrypi@1.8.0
framework = arduino
board = ZuluSCSI_RP2040
extra_scripts = src/build_bootloader.py
board_build.ldscript = lib/ZuluSCSI_platform_RP2040/rp2040.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2040/rp2040_btldr.ld
lib_deps =
    SdFat=https://github.com/rabbitholecomputing/SdFat#2.2.0-gpt
    minIni
    ZuluSCSI_platform_RP2040
    SCSI2SD
    CUEParser
build_flags =
    -O2 -Isrc -ggdb -g3
    -Wall -Wno-sign-compare -Wno-ignored-qualifiers
    -DSPI_DRIVER_SELECT=3
    -DSD_CHIP_SELECT_MODE=2
    -DENABLE_DEDICATED_SPI=1
    -DHAS_SDIO_CLASS
    -DUSE_ARDUINO=1
    -DZULUSCSI_V2_0

; ZuluSCSI RP2040 hardware platform, as above, but with audio output support enabled
[env:ZuluSCSI_RP2040_Audio]
extends = env:ZuluSCSI_RP2040
build_flags =
    ${env:ZuluSCSI_RP2040.build_flags}
    -DENABLE_AUDIO_OUTPUT

; 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]
platform = raspberrypi@1.8.0
framework = arduino
board = ZuluSCSI_RP2040
extra_scripts = src/build_bootloader.py
board_build.ldscript = lib/ZuluSCSI_platform_RP2040/rp2040.ld
ldscript_bootloader = lib/ZuluSCSI_platform_RP2040/rp2040_btldr.ld
lib_deps =
    SdFat=https://github.com/rabbitholecomputing/SdFat#2.2.0-gpt
    minIni
    ZuluSCSI_platform_RP2040
    SCSI2SD
    CUEParser
build_flags =
    -O2 -Isrc -ggdb -g3
    -Wall -Wno-sign-compare -Wno-ignored-qualifiers
    -DSPI_DRIVER_SELECT=3
    -DSD_CHIP_SELECT_MODE=2
    -DENABLE_DEDICATED_SPI=1
    -DHAS_SDIO_CLASS
    -DUSE_ARDUINO=1
    -DZULUSCSI_BS2
