Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Pio MHZ for RP2350, fix RP2350 generic menus #2366

Merged
merged 2 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 72 additions & 27 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
menu.BoardModel=Model
menu.flash=Flash Size
menu.psram=PSRAM Size
menu.psramcs=PSRAM CS
menu.psramfreq=PSRAM Speed
menu.freq=CPU Speed
menu.opt=Optimize
menu.rtti=RTTI
Expand Down Expand Up @@ -15460,14 +15462,6 @@ challenger_2350_wifi6_ble5.menu.freq.275=275 MHz (Overclock)
challenger_2350_wifi6_ble5.menu.freq.275.build.f_cpu=275000000L
challenger_2350_wifi6_ble5.menu.freq.300=300 MHz (Overclock)
challenger_2350_wifi6_ble5.menu.freq.300.build.f_cpu=300000000L
challenger_2350_wifi6_ble5.menu.psram.8mb=8MByte PSRAM
challenger_2350_wifi6_ble5.menu.psram.8mb.build.psram_length=0x800000
challenger_2350_wifi6_ble5.menu.psram.0mb=0MByte PSRAM
challenger_2350_wifi6_ble5.menu.psram.0mb.build.psram_length=0x000000
challenger_2350_wifi6_ble5.menu.psram.2mb=2MByte PSRAM
challenger_2350_wifi6_ble5.menu.psram.2mb.build.psram_length=0x200000
challenger_2350_wifi6_ble5.menu.psram.4mb=4MByte PSRAM
challenger_2350_wifi6_ble5.menu.psram.4mb.build.psram_length=0x400000
challenger_2350_wifi6_ble5.menu.opt.Small=Small (-Os) (standard)
challenger_2350_wifi6_ble5.menu.opt.Small.build.flags.optimize=-Os
challenger_2350_wifi6_ble5.menu.opt.Optimize=Optimize (-O)
Expand Down Expand Up @@ -15739,14 +15733,6 @@ challenger_2350_bconnect.menu.freq.275=275 MHz (Overclock)
challenger_2350_bconnect.menu.freq.275.build.f_cpu=275000000L
challenger_2350_bconnect.menu.freq.300=300 MHz (Overclock)
challenger_2350_bconnect.menu.freq.300.build.f_cpu=300000000L
challenger_2350_bconnect.menu.psram.8mb=8MByte PSRAM
challenger_2350_bconnect.menu.psram.8mb.build.psram_length=0x800000
challenger_2350_bconnect.menu.psram.0mb=0MByte PSRAM
challenger_2350_bconnect.menu.psram.0mb.build.psram_length=0x000000
challenger_2350_bconnect.menu.psram.2mb=2MByte PSRAM
challenger_2350_bconnect.menu.psram.2mb.build.psram_length=0x200000
challenger_2350_bconnect.menu.psram.4mb=4MByte PSRAM
challenger_2350_bconnect.menu.psram.4mb.build.psram_length=0x400000
challenger_2350_bconnect.menu.opt.Small=Small (-Os) (standard)
challenger_2350_bconnect.menu.opt.Small.build.flags.optimize=-Os
challenger_2350_bconnect.menu.opt.Optimize=Optimize (-O)
Expand Down Expand Up @@ -22135,14 +22121,6 @@ sparkfun_promicrorp2350.menu.freq.275=275 MHz (Overclock)
sparkfun_promicrorp2350.menu.freq.275.build.f_cpu=275000000L
sparkfun_promicrorp2350.menu.freq.300=300 MHz (Overclock)
sparkfun_promicrorp2350.menu.freq.300.build.f_cpu=300000000L
sparkfun_promicrorp2350.menu.psram.8mb=8MByte PSRAM
sparkfun_promicrorp2350.menu.psram.8mb.build.psram_length=0x800000
sparkfun_promicrorp2350.menu.psram.0mb=0MByte PSRAM
sparkfun_promicrorp2350.menu.psram.0mb.build.psram_length=0x000000
sparkfun_promicrorp2350.menu.psram.2mb=2MByte PSRAM
sparkfun_promicrorp2350.menu.psram.2mb.build.psram_length=0x200000
sparkfun_promicrorp2350.menu.psram.4mb=4MByte PSRAM
sparkfun_promicrorp2350.menu.psram.4mb.build.psram_length=0x400000
sparkfun_promicrorp2350.menu.opt.Small=Small (-Os) (standard)
sparkfun_promicrorp2350.menu.opt.Small.build.flags.optimize=-Os
sparkfun_promicrorp2350.menu.opt.Optimize=Optimize (-O)
Expand Down Expand Up @@ -26993,7 +26971,6 @@ generic_rp2350.build.ldscript=memmap_default.ld
generic_rp2350.build.boot2=boot2_generic_03h_4_padded_checksum
generic_rp2350.build.usb_manufacturer="Generic"
generic_rp2350.build.usb_product="RP2350"
generic_rp2350.build.psram_length=0x800000
generic_rp2350.menu.flash.16777216_0=16MB (no FS)
generic_rp2350.menu.flash.16777216_0.upload.maximum_size=16769024
generic_rp2350.menu.flash.16777216_0.build.flash_total=16777216
Expand Down Expand Up @@ -27162,14 +27139,82 @@ generic_rp2350.menu.freq.275=275 MHz (Overclock)
generic_rp2350.menu.freq.275.build.f_cpu=275000000L
generic_rp2350.menu.freq.300=300 MHz (Overclock)
generic_rp2350.menu.freq.300.build.f_cpu=300000000L
generic_rp2350.menu.psram.8mb=8MByte PSRAM
generic_rp2350.menu.psram.8mb.build.psram_length=0x800000
generic_rp2350.menu.psram.0mb=0MByte PSRAM
generic_rp2350.menu.psram.0mb.build.psram_length=0x000000
generic_rp2350.menu.psram.2mb=2MByte PSRAM
generic_rp2350.menu.psram.2mb.build.psram_length=0x200000
generic_rp2350.menu.psram.4mb=4MByte PSRAM
generic_rp2350.menu.psram.4mb.build.psram_length=0x400000
generic_rp2350.menu.psram.8mb=8MByte PSRAM
generic_rp2350.menu.psram.8mb.build.psram_length=0x800000
generic_rp2350.menu.psramcs.GPIO0=GPIO 0
generic_rp2350.menu.psramcs.GPIO0.build.psram_cs=-DRP2350_PSRAM_CS=0
generic_rp2350.menu.psramcs.GPIO1=GPIO 1
generic_rp2350.menu.psramcs.GPIO1.build.psram_cs=-DRP2350_PSRAM_CS=1
generic_rp2350.menu.psramcs.GPIO2=GPIO 2
generic_rp2350.menu.psramcs.GPIO2.build.psram_cs=-DRP2350_PSRAM_CS=2
generic_rp2350.menu.psramcs.GPIO3=GPIO 3
generic_rp2350.menu.psramcs.GPIO3.build.psram_cs=-DRP2350_PSRAM_CS=3
generic_rp2350.menu.psramcs.GPIO4=GPIO 4
generic_rp2350.menu.psramcs.GPIO4.build.psram_cs=-DRP2350_PSRAM_CS=4
generic_rp2350.menu.psramcs.GPIO5=GPIO 5
generic_rp2350.menu.psramcs.GPIO5.build.psram_cs=-DRP2350_PSRAM_CS=5
generic_rp2350.menu.psramcs.GPIO6=GPIO 6
generic_rp2350.menu.psramcs.GPIO6.build.psram_cs=-DRP2350_PSRAM_CS=6
generic_rp2350.menu.psramcs.GPIO7=GPIO 7
generic_rp2350.menu.psramcs.GPIO7.build.psram_cs=-DRP2350_PSRAM_CS=7
generic_rp2350.menu.psramcs.GPIO8=GPIO 8
generic_rp2350.menu.psramcs.GPIO8.build.psram_cs=-DRP2350_PSRAM_CS=8
generic_rp2350.menu.psramcs.GPIO9=GPIO 9
generic_rp2350.menu.psramcs.GPIO9.build.psram_cs=-DRP2350_PSRAM_CS=9
generic_rp2350.menu.psramcs.GPIO10=GPIO 10
generic_rp2350.menu.psramcs.GPIO10.build.psram_cs=-DRP2350_PSRAM_CS=10
generic_rp2350.menu.psramcs.GPIO11=GPIO 11
generic_rp2350.menu.psramcs.GPIO11.build.psram_cs=-DRP2350_PSRAM_CS=11
generic_rp2350.menu.psramcs.GPIO12=GPIO 12
generic_rp2350.menu.psramcs.GPIO12.build.psram_cs=-DRP2350_PSRAM_CS=12
generic_rp2350.menu.psramcs.GPIO13=GPIO 13
generic_rp2350.menu.psramcs.GPIO13.build.psram_cs=-DRP2350_PSRAM_CS=13
generic_rp2350.menu.psramcs.GPIO14=GPIO 14
generic_rp2350.menu.psramcs.GPIO14.build.psram_cs=-DRP2350_PSRAM_CS=14
generic_rp2350.menu.psramcs.GPIO15=GPIO 15
generic_rp2350.menu.psramcs.GPIO15.build.psram_cs=-DRP2350_PSRAM_CS=15
generic_rp2350.menu.psramcs.GPIO16=GPIO 16
generic_rp2350.menu.psramcs.GPIO16.build.psram_cs=-DRP2350_PSRAM_CS=16
generic_rp2350.menu.psramcs.GPIO17=GPIO 17
generic_rp2350.menu.psramcs.GPIO17.build.psram_cs=-DRP2350_PSRAM_CS=17
generic_rp2350.menu.psramcs.GPIO18=GPIO 18
generic_rp2350.menu.psramcs.GPIO18.build.psram_cs=-DRP2350_PSRAM_CS=18
generic_rp2350.menu.psramcs.GPIO19=GPIO 19
generic_rp2350.menu.psramcs.GPIO19.build.psram_cs=-DRP2350_PSRAM_CS=19
generic_rp2350.menu.psramcs.GPIO20=GPIO 20
generic_rp2350.menu.psramcs.GPIO20.build.psram_cs=-DRP2350_PSRAM_CS=20
generic_rp2350.menu.psramcs.GPIO21=GPIO 21
generic_rp2350.menu.psramcs.GPIO21.build.psram_cs=-DRP2350_PSRAM_CS=21
generic_rp2350.menu.psramcs.GPIO22=GPIO 22
generic_rp2350.menu.psramcs.GPIO22.build.psram_cs=-DRP2350_PSRAM_CS=22
generic_rp2350.menu.psramcs.GPIO23=GPIO 23
generic_rp2350.menu.psramcs.GPIO23.build.psram_cs=-DRP2350_PSRAM_CS=23
generic_rp2350.menu.psramcs.GPIO24=GPIO 24
generic_rp2350.menu.psramcs.GPIO24.build.psram_cs=-DRP2350_PSRAM_CS=24
generic_rp2350.menu.psramcs.GPIO25=GPIO 25
generic_rp2350.menu.psramcs.GPIO25.build.psram_cs=-DRP2350_PSRAM_CS=25
generic_rp2350.menu.psramcs.GPIO26=GPIO 26
generic_rp2350.menu.psramcs.GPIO26.build.psram_cs=-DRP2350_PSRAM_CS=26
generic_rp2350.menu.psramcs.GPIO27=GPIO 27
generic_rp2350.menu.psramcs.GPIO27.build.psram_cs=-DRP2350_PSRAM_CS=27
generic_rp2350.menu.psramcs.GPIO28=GPIO 28
generic_rp2350.menu.psramcs.GPIO28.build.psram_cs=-DRP2350_PSRAM_CS=28
generic_rp2350.menu.psramcs.GPIO29=GPIO 29
generic_rp2350.menu.psramcs.GPIO29.build.psram_cs=-DRP2350_PSRAM_CS=29
generic_rp2350.menu.psramcs.GPIO30=GPIO 30
generic_rp2350.menu.psramcs.GPIO30.build.psram_cs=-DRP2350_PSRAM_CS=30
generic_rp2350.menu.psramcs.GPIO31=GPIO 31
generic_rp2350.menu.psramcs.GPIO31.build.psram_cs=-DRP2350_PSRAM_CS=31
generic_rp2350.menu.psramfreq.freq109=109 MHz
generic_rp2350.menu.psramfreq.freq109.build.psram_freq=-DRP2350_PSRAM_MAX_SCK_HZ=109000000
generic_rp2350.menu.psramfreq.freq133=133 MHz
generic_rp2350.menu.psramfreq.freq133.build.psram_freq=-DRP2350_PSRAM_MAX_SCK_HZ=133000000
generic_rp2350.menu.opt.Small=Small (-Os) (standard)
generic_rp2350.menu.opt.Small.build.flags.optimize=-Os
generic_rp2350.menu.opt.Optimize=Optimize (-O)
Expand Down
7 changes: 5 additions & 2 deletions platform.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ compiler.warning_flags.more=-Wall -Werror=return-type -Wno-ignored-qualifiers -W
compiler.warning_flags.all=-Wall -Wextra -Werror=return-type -Wno-ignored-qualifiers -Wno-psabi -Wno-unused-parameter -Wno-missing-field-initializers

compiler.netdefines={build.libpicowdefs} -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1
compiler.defines={build.led} {build.usbstack_flags} {build.usbpid} {build.usbvid} {build.usbpwr} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' {compiler.netdefines} -DARDUINO_VARIANT="{build.variant}" -DPICO_FLASH_SIZE_BYTES={build.flash_total} "@{runtime.platform.path}/lib/{build.chip}/platform_def.txt"
compiler.psramdefines={build.psram_cs} {build.psram_freq}
compiler.defines={build.led} {build.usbstack_flags} {build.usbpid} {build.usbvid} {build.usbpwr} {compiler.psramdefines} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' {compiler.netdefines} -DARDUINO_VARIANT="{build.variant}" -DPICO_FLASH_SIZE_BYTES={build.flash_total} "@{runtime.platform.path}/lib/{build.chip}/platform_def.txt"
compiler.includes="-iprefix{runtime.platform.path}/" "@{runtime.platform.path}/lib/{build.chip}/platform_inc.txt" "@{runtime.platform.path}/lib/core_inc.txt" "-I{runtime.platform.path}/include"
compiler.flags={build.toolchainopts} -ffunction-sections -fdata-sections {build.flags.exceptions} {build.flags.stackprotect} {build.picodebugflags}
compiler.wrap="@{runtime.platform.path}/lib/{build.chip}/platform_wrap.txt" "@{runtime.platform.path}/lib/core_wrap.txt"
Expand Down Expand Up @@ -91,6 +92,8 @@ compiler.elf2hex.extra_flags=
build.flash_total=
build.flash_length=
build.psram_length=0
build.psram_cs=
build.psram_freq=
build.eeprom_start=
build.flags.optimize=-Os
build.flags.rtti=-fno-rtti
Expand All @@ -101,7 +104,7 @@ build.flags.libstdcpp=-lstdc++
build.flags.exceptions=-fno-exceptions
build.flags.stackprotect=
build.libpico=libpico.a
build.libpicow=libpipv4.a
build.libpicow=libipv4.a
build.boot2=boot2_generic_03h_4_padded_checksum
build.libpicowdefs=-DLWIP_IPV6=0 -DLWIP_IPV4=1
build.wificc=-DWIFICC=CYW43_COUNTRY_WORLDWIDE
Expand Down
2 changes: 1 addition & 1 deletion tools/json/challenger_2350_bconnect.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-D ARDUINO_CHALLENGER_2350_BCONNECT_RP2350 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
Expand Down
2 changes: 1 addition & 1 deletion tools/json/challenger_2350_wifi6_ble5.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-D ARDUINO_CHALLENGER_2350_WIFI_BLE_RP2350 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2",
"f_cpu": "133000000L",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
Expand Down
2 changes: 1 addition & 1 deletion tools/json/generic_rp2350.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-D ARDUINO_GENERIC_RP2350 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
"f_cpu": "133000000L",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
Expand Down
2 changes: 1 addition & 1 deletion tools/json/rpipico2.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO_2 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
"f_cpu": "133000000L",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
Expand Down
2 changes: 1 addition & 1 deletion tools/json/solderparty_rp2350_stamp.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-D ARDUINO_SOLDERPARTY_RP2350_STAMP -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
Expand Down
2 changes: 1 addition & 1 deletion tools/json/solderparty_rp2350_stamp_xl.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-D ARDUINO_SOLDERPARTY_RP2350_STAMP_XL -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
Expand Down
2 changes: 1 addition & 1 deletion tools/json/sparkfun_promicrorp2350.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-D ARDUINO_SPARKFUN_PROMICRO_RP2350 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250",
"f_cpu": "133000000L",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
Expand Down
38 changes: 25 additions & 13 deletions tools/makeboards.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,20 @@ def BuildFreq(name, defmhz):
print("%s.menu.freq.%s=%s MHz%s" % (name, f, f, warn))
print("%s.menu.freq.%s.build.f_cpu=%dL" % (name, f, f * 1000000))

def BuildPSRAM(name, psramsize):
out = 0
if psramsize != 0:
for s in [ psramsize, 0, 2, 4, 8]:
if (out == 1) and (s == psramsize):
continue
print("%s.menu.psram.%dmb=%dMByte PSRAM" % (name, s, s))
print("%s.menu.psram.%dmb.build.psram_length=0x%d00000" % (name, s, s))
out = 1
def BuildPSRAM(name):
for s in [ 0, 2, 4, 8]:
print("%s.menu.psram.%dmb=%dMByte PSRAM" % (name, s, s))
print("%s.menu.psram.%dmb.build.psram_length=0x%d00000" % (name, s, s))

def BuildPSRAMCS(name):
for s in range(0, 32):
print("%s.menu.psramcs.GPIO%d=GPIO %d" % (name, s, s))
print("%s.menu.psramcs.GPIO%d.build.psram_cs=-DRP2350_PSRAM_CS=%d" % (name, s, s))

def BuildPSRAMFreq(name):
for s in [ 109, 133 ]:
print("%s.menu.psramfreq.freq%d=%d MHz" % (name, s, s))
print("%s.menu.psramfreq.freq%d.build.psram_freq=-DRP2350_PSRAM_MAX_SCK_HZ=%d" % (name, s, s * 1000000))

def BuildOptimize(name):
for l in [ ("Small", "Small", "-Os", " (standard)"), ("Optimize", "Optimize", "-O", ""), ("Optimize2", "Optimize More", "-O2", ""),
Expand Down Expand Up @@ -237,7 +242,7 @@ def BuildHeader(name, chip, chaintuple, chipoptions, vendor_name, product_name,
print("%s.build.boot2=%s" % (name, boot2))
print('%s.build.usb_manufacturer="%s"' % (name, vendor_name))
print('%s.build.usb_product="%s"' % (name, product_name))
if (chip == "rp2350") and (name != "generic"):
if (chip == "rp2350") and (name != "generic_rp2350"):
print("%s.build.psram_length=0x%d00000" % (name, psramsize))
if extra != None:
m_extra = ''
Expand All @@ -255,6 +260,8 @@ def BuildGlobalMenuList():
print("menu.BoardModel=Model")
print("menu.flash=Flash Size")
print("menu.psram=PSRAM Size")
print("menu.psramcs=PSRAM CS")
print("menu.psramfreq=PSRAM Speed")
print("menu.freq=CPU Speed")
print("menu.opt=Optimize")
print("menu.rtti=RTTI")
Expand Down Expand Up @@ -300,8 +307,10 @@ def MakeBoard(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine,
BuildFlashMenu(name, chip, flashsizemb * 1024 * 1024, fssizelist)
if chip == "rp2350":
BuildFreq(name, 150)
if name != "generic":
BuildPSRAM(name, psramsize)
if name == "generic_rp2350":
BuildPSRAM(name)
BuildPSRAMCS(name)
BuildPSRAMFreq(name)
else:
BuildFreq(name, 133)
BuildOptimize(name)
Expand Down Expand Up @@ -342,10 +351,12 @@ def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddef
cpu = "cortex-m0plus"
ramsize = 256
jlink = "RP2040_M0_0"
fcpu = "133000000L"
elif chip == "rp2350":
cpu = "cortex-m33"
ramsize = 512
jlink = "RP2350_0"
fcpu = "150000000L"
json = """{
"build": {
"arduino": {
Expand All @@ -358,7 +369,7 @@ def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddef
"core": "earlephilhower",
"cpu": "CPU",
"extra_flags": "-D ARDUINO_BOARDDEFINE -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=USBPWR EXTRA_INFO",
"f_cpu": "133000000L",
"f_cpu": "FCPU",
"hwids": [
[
"0x2E8A",
Expand Down Expand Up @@ -406,6 +417,7 @@ def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddef
.replace('BOARDDEFINE', boarddefine)\
.replace('BOOT2', boot2)\
.replace('MCUCHIP', chip)\
.replace('FCPU', fcpu)\
.replace('CPU', cpu)\
.replace('JLINK', jlink)\
.replace('VID', vid.upper().replace("X", "x"))\
Expand Down