From 6bfb83e30aa28e7bbfb0f77f378da05b32574f3d Mon Sep 17 00:00:00 2001 From: Dryw Wade Date: Thu, 22 May 2025 10:40:48 -0600 Subject: [PATCH] rp2: Make FLASH LENGTH match PICO_FLASH_SIZE_BYTES in .ld files. With a fallback to default sizes if `PICO_FLASH_SIZE_BYTES` is not defined. Signed-off-by: Dryw Wade --- ports/rp2/CMakeLists.txt | 14 ++++++++++++++ ports/rp2/memmap_mp_rp2040.ld | 2 +- ports/rp2/memmap_mp_rp2350.ld | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ports/rp2/CMakeLists.txt b/ports/rp2/CMakeLists.txt index f0b278df2b..cf9f180792 100644 --- a/ports/rp2/CMakeLists.txt +++ b/ports/rp2/CMakeLists.txt @@ -528,6 +528,20 @@ target_link_options(${MICROPY_TARGET} PRIVATE -Wl,--wrap=runtime_init_clocks ) +if(PICO_FLASH_SIZE_BYTES GREATER 0) + target_link_options(${MICROPY_TARGET} PRIVATE + -Wl,--defsym=__micropy_flash_size__=${PICO_FLASH_SIZE_BYTES} + ) +elseif(PICO_RP2040) + target_link_options(${MICROPY_TARGET} PRIVATE + -Wl,--defsym=__micropy_flash_size__=2048k # Default to 2MB + ) +elseif(PICO_RP2350) + target_link_options(${MICROPY_TARGET} PRIVATE + -Wl,--defsym=__micropy_flash_size__=4096k # Default to 4MB + ) +endif() + if(PICO_RP2350) target_link_options(${MICROPY_TARGET} PRIVATE -Wl,--defsym=__micropy_extra_stack__=4096 diff --git a/ports/rp2/memmap_mp_rp2040.ld b/ports/rp2/memmap_mp_rp2040.ld index a5799cd88b..5c8d9f4718 100644 --- a/ports/rp2/memmap_mp_rp2040.ld +++ b/ports/rp2/memmap_mp_rp2040.ld @@ -23,7 +23,7 @@ MEMORY { - FLASH(rx) : ORIGIN = 0x10000000, LENGTH = 2048k + FLASH(rx) : ORIGIN = 0x10000000, LENGTH = __micropy_flash_size__ RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k diff --git a/ports/rp2/memmap_mp_rp2350.ld b/ports/rp2/memmap_mp_rp2350.ld index 1e1cbbfd70..1c4770efe1 100644 --- a/ports/rp2/memmap_mp_rp2350.ld +++ b/ports/rp2/memmap_mp_rp2350.ld @@ -23,7 +23,7 @@ MEMORY { - FLASH(rx) : ORIGIN = 0x10000000, LENGTH = 4096k + FLASH(rx) : ORIGIN = 0x10000000, LENGTH = __micropy_flash_size__ RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 512k SCRATCH_X(rwx) : ORIGIN = 0x20080000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20081000, LENGTH = 4k