From 4f3fef266526fef43d2a776a429c6965fba91f1f Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Fri, 30 Aug 2024 11:41:10 +0200 Subject: [PATCH] Update PIO board definition for PSRAM --- tools/json/challenger_2350_bconnect.json | 3 ++- tools/json/challenger_2350_wifi6_ble5.json | 3 ++- tools/json/sparkfun_promicrorp2350.json | 3 ++- tools/makeboards.py | 7 +++++-- tools/platformio-build.py | 2 ++ 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/json/challenger_2350_bconnect.json b/tools/json/challenger_2350_bconnect.json index 1734b172b..ae5b84737 100644 --- a/tools/json/challenger_2350_bconnect.json +++ b/tools/json/challenger_2350_bconnect.json @@ -49,7 +49,8 @@ "picotool", "picoprobe", "pico-debug" - ] + ], + "psram_length": 8388608 }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" diff --git a/tools/json/challenger_2350_wifi6_ble5.json b/tools/json/challenger_2350_wifi6_ble5.json index 05b20dfb0..d59326451 100644 --- a/tools/json/challenger_2350_wifi6_ble5.json +++ b/tools/json/challenger_2350_wifi6_ble5.json @@ -49,7 +49,8 @@ "picotool", "picoprobe", "pico-debug" - ] + ], + "psram_length": 8388608 }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" diff --git a/tools/json/sparkfun_promicrorp2350.json b/tools/json/sparkfun_promicrorp2350.json index 3de8792c3..3be29907c 100644 --- a/tools/json/sparkfun_promicrorp2350.json +++ b/tools/json/sparkfun_promicrorp2350.json @@ -49,7 +49,8 @@ "picotool", "picoprobe", "pico-debug" - ] + ], + "psram_length": 8388608 }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "SparkFun" diff --git a/tools/makeboards.py b/tools/makeboards.py index 26cb27889..d84efe84e 100755 --- a/tools/makeboards.py +++ b/tools/makeboards.py @@ -331,13 +331,13 @@ def MakeBoard(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine, BuildUploadMethodMenu(name, 256) else: BuildUploadMethodMenu(name, 512) - MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2, extra, board_url) + MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, psramsize, boot2, extra, board_url) global pkgjson thisbrd = {} thisbrd['name'] = "%s %s" % (vendor_name, product_name) pkgjson['packages'][0]['platforms'][0]['boards'].append(thisbrd) -def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2, extra, board_url): +def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, psramsize, boot2, extra, board_url): # TODO FIX: Use the same expanded PID list as in BuildHeader above? if isinstance(pid, list): pid = pid[0] @@ -413,6 +413,9 @@ def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddef "url": board_url or 'https://www.raspberrypi.org/products/raspberry-pi-pico/', "vendor": vendor_name, } + # add nonzero PSRAM sizes of known boards (can still be overwritten in platformio.ini) + if psramsize != 0 and name != "generic_rp2350": + j["upload"]["psram_length"] = psramsize * 1024 * 1024 jsondir = os.path.abspath(os.path.dirname(__file__)) + "/json" with open(jsondir + "/" + name + ".json", "w", newline='\n') as jout: diff --git a/tools/platformio-build.py b/tools/platformio-build.py index 8d000fef6..559a2dd66 100755 --- a/tools/platformio-build.py +++ b/tools/platformio-build.py @@ -22,6 +22,7 @@ chip = board.get("build.mcu") upload_protocol = env.subst("$UPLOAD_PROTOCOL") or "picotool" ram_size = int(board.get("upload.maximum_ram_size")) +psram_len = int(board.get("upload.psram_length", "0")) if chip == "rp2040": #ram_size = board.get("upload.maximum_ram_size") # PlatformIO gives 264K here # but the RAM size we need is without the SCRATCH memory. @@ -393,6 +394,7 @@ def configure_network_flags(cpp_defines): "--sub", "__FS_START__", "$FS_START", "--sub", "__FS_END__", "$FS_END", "--sub", "__RAM_LENGTH__", "%dk" % (ram_size // 1024), + "--sub", "__PSRAM_LENGTH__", "%d" % (psram_len) ]), "Generating linkerscript $BUILD_DIR/memmap_default.ld") )