From aac0081929eea88ca0e2889c424422a25982cd53 Mon Sep 17 00:00:00 2001 From: Alex Dolzhenkov Date: Tue, 29 Nov 2022 21:28:28 +1300 Subject: Fix linker script to prevent using not available flash memory --- gcc_nrf52-mcuboot.ld | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'gcc_nrf52-mcuboot.ld') diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld index 81b318c5..c18875b6 100644 --- a/gcc_nrf52-mcuboot.ld +++ b/gcc_nrf52-mcuboot.ld @@ -1,11 +1,39 @@ -/* Linker script to configure memory regions. */ +/**************************************************************** + * Memory map configuration for using application with MCU-boot * + ****************************************************************/ +/* + * Internal nRF52 flash memory: + * 0x00000000: MCUBoot(28 kB) + * 0x00007000: Reboot logs (4 kB) + * 0x00008000: MCUBoot header (0x20 bytes) + * 0x00008020: Application (463+ kB) + * 0x0007be50: MCUBoot image trailer (432 bytes) + * 0x0007c000: MCUBoot Scratch partition (4 kB) + * 0x0007d000: unused (12 kB) + * + * SPI flash: + * 0x00000000: Bootloader Assets, like Boot Graphic (256 kB) + * 0x00040000: Application 2 (including MCUBoot header) (464 kB) + * 0x000b4000: User files - littlefs (3376 kB) + */ SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys) +MCUBOOT_SIZE = 0x8000; +MCUBOOT_APP_IMAGE_HEADER_SIZE = 0x20; +MCUBOOT_APP_IMAGE_TRAILER_SIZE = 432; +APP_OFFSET = MCUBOOT_SIZE + MCUBOOT_APP_IMAGE_HEADER_SIZE; +APP_SIZE = 464K - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE; +SCRATCH_OFFSET = 0x7c000; +SCRATCH_SIZE = 4K; + MEMORY { - FLASH (rx) : ORIGIN = 0x08020, LENGTH = 0x78000 + /* MCUBOOT (r) : ORIGIN = 0x0, LENGTH = MCUBOOT_SIZE */ + FLASH (rx) : ORIGIN = APP_OFFSET, LENGTH = APP_SIZE + /* SCRATCH (r) : ORIGIN = SCRATCH_OFFSET, LENGTH = SCRATCH_SIZE */ + SPARE_SPACE (r) : ORIGIN = SCRATCH_OFFSET + SCRATCH_SIZE, LENGTH = 12K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K } -- cgit v1.2.3-70-g09d2 From fe32af1ce9c44db6a37a58d07579b5b37200778e Mon Sep 17 00:00:00 2001 From: Alex Dolzhenkov Date: Sat, 3 Dec 2022 20:42:55 +1300 Subject: #1463 Update mcuboot-app linker file to be more consistent --- gcc_nrf52-mcuboot.ld | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gcc_nrf52-mcuboot.ld') diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld index c18875b6..204c414d 100644 --- a/gcc_nrf52-mcuboot.ld +++ b/gcc_nrf52-mcuboot.ld @@ -5,7 +5,7 @@ * Internal nRF52 flash memory: * 0x00000000: MCUBoot(28 kB) * 0x00007000: Reboot logs (4 kB) - * 0x00008000: MCUBoot header (0x20 bytes) + * 0x00008000: MCUBoot header (32 bytes) * 0x00008020: Application (463+ kB) * 0x0007be50: MCUBoot image trailer (432 bytes) * 0x0007c000: MCUBoot Scratch partition (4 kB) @@ -21,12 +21,12 @@ SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys) MCUBOOT_SIZE = 0x8000; -MCUBOOT_APP_IMAGE_HEADER_SIZE = 0x20; +MCUBOOT_APP_IMAGE_HEADER_SIZE = 32; MCUBOOT_APP_IMAGE_TRAILER_SIZE = 432; APP_OFFSET = MCUBOOT_SIZE + MCUBOOT_APP_IMAGE_HEADER_SIZE; -APP_SIZE = 464K - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE; +APP_SIZE = SCRATCH_OFFSET - MCUBOOT_SIZE - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE; SCRATCH_OFFSET = 0x7c000; -SCRATCH_SIZE = 4K; +SCRATCH_SIZE = 0x1000; MEMORY { -- cgit v1.2.3-70-g09d2 From a356113d0ca36180ab55384bd232bb60d40d06f2 Mon Sep 17 00:00:00 2001 From: Alex Dolzhenkov Date: Sun, 4 Dec 2022 08:14:10 +1300 Subject: #1463 Fixed linker script syntax --- gcc_nrf52-mcuboot.ld | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc_nrf52-mcuboot.ld') diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld index 204c414d..8bee1de4 100644 --- a/gcc_nrf52-mcuboot.ld +++ b/gcc_nrf52-mcuboot.ld @@ -21,12 +21,12 @@ SEARCH_DIR(.) GROUP(-lgcc -lc -lnosys) MCUBOOT_SIZE = 0x8000; +SCRATCH_SIZE = 0x1000; +SCRATCH_OFFSET = 0x7c000; MCUBOOT_APP_IMAGE_HEADER_SIZE = 32; MCUBOOT_APP_IMAGE_TRAILER_SIZE = 432; APP_OFFSET = MCUBOOT_SIZE + MCUBOOT_APP_IMAGE_HEADER_SIZE; APP_SIZE = SCRATCH_OFFSET - MCUBOOT_SIZE - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE; -SCRATCH_OFFSET = 0x7c000; -SCRATCH_SIZE = 0x1000; MEMORY { -- cgit v1.2.3-70-g09d2 From 4f6a9571f3783f52eb00bd359f864ab05f62471a Mon Sep 17 00:00:00 2001 From: Alex Dolzhenkov Date: Mon, 5 Dec 2022 22:04:14 +1300 Subject: #1463 Replaced decimal numbers with hex --- gcc_nrf52-mcuboot.ld | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc_nrf52-mcuboot.ld') diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld index 8bee1de4..8337099e 100644 --- a/gcc_nrf52-mcuboot.ld +++ b/gcc_nrf52-mcuboot.ld @@ -23,8 +23,8 @@ GROUP(-lgcc -lc -lnosys) MCUBOOT_SIZE = 0x8000; SCRATCH_SIZE = 0x1000; SCRATCH_OFFSET = 0x7c000; -MCUBOOT_APP_IMAGE_HEADER_SIZE = 32; -MCUBOOT_APP_IMAGE_TRAILER_SIZE = 432; +MCUBOOT_APP_IMAGE_HEADER_SIZE = 0x20; +MCUBOOT_APP_IMAGE_TRAILER_SIZE = 0x1b0; APP_OFFSET = MCUBOOT_SIZE + MCUBOOT_APP_IMAGE_HEADER_SIZE; APP_SIZE = SCRATCH_OFFSET - MCUBOOT_SIZE - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE; -- cgit v1.2.3-70-g09d2 From 71e9a97e7c87e33ece6ddc85584c9b0e245db516 Mon Sep 17 00:00:00 2001 From: Alex Dolzhenkov Date: Tue, 27 Dec 2022 09:57:50 +1300 Subject: Update gcc_nrf52-mcuboot.ld Co-authored-by: JF --- gcc_nrf52-mcuboot.ld | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc_nrf52-mcuboot.ld') diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld index 8337099e..4c4b83d9 100644 --- a/gcc_nrf52-mcuboot.ld +++ b/gcc_nrf52-mcuboot.ld @@ -22,6 +22,7 @@ GROUP(-lgcc -lc -lnosys) MCUBOOT_SIZE = 0x8000; SCRATCH_SIZE = 0x1000; +TLV_SIZE = 0x28; /* Metadata added by imgtool at the end of the image */ SCRATCH_OFFSET = 0x7c000; MCUBOOT_APP_IMAGE_HEADER_SIZE = 0x20; MCUBOOT_APP_IMAGE_TRAILER_SIZE = 0x1b0; -- cgit v1.2.3-70-g09d2 From 1e8ed181ea4b4825ffe5671453c07af06ad36faa Mon Sep 17 00:00:00 2001 From: Alex Dolzhenkov Date: Tue, 27 Dec 2022 09:58:51 +1300 Subject: Update gcc_nrf52-mcuboot.ld Co-authored-by: JF --- gcc_nrf52-mcuboot.ld | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc_nrf52-mcuboot.ld') diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld index 4c4b83d9..6c3a769b 100644 --- a/gcc_nrf52-mcuboot.ld +++ b/gcc_nrf52-mcuboot.ld @@ -27,7 +27,8 @@ SCRATCH_OFFSET = 0x7c000; MCUBOOT_APP_IMAGE_HEADER_SIZE = 0x20; MCUBOOT_APP_IMAGE_TRAILER_SIZE = 0x1b0; APP_OFFSET = MCUBOOT_SIZE + MCUBOOT_APP_IMAGE_HEADER_SIZE; -APP_SIZE = SCRATCH_OFFSET - MCUBOOT_SIZE - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE; +APP_SIZE = SCRATCH_OFFSET - MCUBOOT_SIZE - MCUBOOT_APP_IMAGE_HEADER_SIZE - MCUBOOT_APP_IMAGE_TRAILER_SIZE - TLV_SIZE; + MEMORY { -- cgit v1.2.3-70-g09d2