/* RP2350 (Pico 2) memory layout for rp235x-hal + cortex-m-rt. The bootrom requires the IMAGE_DEF (.start_block) right after the vector table. */ MEMORY { FLASH : ORIGIN = 0x10000000, LENGTH = 4096K RAM : ORIGIN = 0x20000000, LENGTH = 512K } SECTIONS { /* ### RP2350 image definition block — the bootrom scans for this to boot the image. */ .start_block : ALIGN(4) { __start_block_addr = .; KEEP(*(.start_block)); KEEP(*(.boot_info)); } > FLASH } INSERT AFTER .vector_table; /* move .text after the start block */ _stext = ADDR(.start_block) + SIZEOF(.start_block); SECTIONS { /* picotool 'Binary Info' entries */ .bi_entries : ALIGN(4) { __bi_entries_start = .; KEEP(*(.bi_entries)); . = ALIGN(4); __bi_entries_end = .; } > FLASH } INSERT AFTER .text; SECTIONS { .end_block : ALIGN(4) { __end_block_addr = .; KEEP(*(.end_block)); } > FLASH } INSERT AFTER .bi_entries; PROVIDE(start_to_end = __end_block_addr - __start_block_addr); PROVIDE(end_to_start = __start_block_addr - __end_block_addr);