diff --git a/firmware/config/boards/subaru_eg33/board.mk b/firmware/config/boards/subaru_eg33/board.mk index 515ee72a68..ddc52b4ad2 100644 --- a/firmware/config/boards/subaru_eg33/board.mk +++ b/firmware/config/boards/subaru_eg33/board.mk @@ -34,6 +34,9 @@ DDEFS += -DEFI_LOGIC_ANALYZER=FALSE DDEFS += -DHAL_USE_UART=FALSE DDEFS += -DUART_USE_WAIT=FALSE +#Linker options, flash size +USE_OPT += -Wl,--defsym=FLASH_SIZE=1m + # Shared variables ALLINC += $(BOARDINC) diff --git a/firmware/hw_layer/ports/stm32/stm32f7/STM32F7.ld b/firmware/hw_layer/ports/stm32/stm32f7/STM32F7.ld index 794453617e..46814a62ec 100644 --- a/firmware/hw_layer/ports/stm32/stm32f7/STM32F7.ld +++ b/firmware/hw_layer/ports/stm32/stm32f7/STM32F7.ld @@ -24,11 +24,16 @@ * BSS is placed in DTCM RAM in order to simplify DMA buffers management. * 'bl' is related to rusefi bootloader */ + + /* TODO: 512k flash limit is a mitigation for https://github.com/rusefi/rusefi/issues/3566 and https://github.com/rusefi/rusefi/issues/3775 */ +flash_size = DEFINED(FLASH_SIZE) ? FLASH_SIZE : 512k; + MEMORY { bl : org = 0x08000000, len = 16k /* bootloader section */ - /* TODO: 512k flash limit is a mitigation for https://github.com/rusefi/rusefi/issues/3566 and https://github.com/rusefi/rusefi/issues/3775 */ - flash0 (rx) : org = DEFINED(BOOTLOADER) ? 0x08008000 : 0x08000000, len = DEFINED(BOOTLOADER) ? (512k - 32k) : 512k /* change address & length if bootloader */ + /* change address & length if bootloader */ + flash0 (rx) : org = DEFINED(BOOTLOADER) ? 0x08008000 : 0x08000000, len = DEFINED(BOOTLOADER) ? (flash_size - 32k) : FLASH_SIZE + /* TODO: should we use same flash_size for flash@ITCM? */ flash1 (rx) : org = DEFINED(BOOTLOADER) ? 0x00208000 : 0x00200000, len = DEFINED(BOOTLOADER) ? (2m - 32k) : 2m /* Flash as ITCM */ flash2 (rx) : org = 0x00000000, len = 0 flash3 (rx) : org = 0x00000000, len = 0