This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

MCUBootloader won't build for custom board - zephyr/zephyr_pre0.elf section `text' will not fit in region `FLASH'

Hello,

I'm using the nRF Connect SDK 1.9.1 and I have defined a custom board with nRF52840. This works for normal code (samples, etc).

The .dst has the following structure for the memory, based off the nrf52840dk_nrf52840 board (here some of the configuration has been omitted such as spi, etc):

&flash0 {

	chosen {
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,uart-mcumgr = &uart0;
		zephyr,bt-mon-uart = &uart0;
		zephyr,bt-c2h-uart = &uart0;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
	};
	
	...
	
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x000000000 0x0000C000>;
		};
		slot0_partition: partition@c000 {
			label = "image-0";
			reg = <0x0000C000 0x00067000>;
		};
		slot1_partition: partition@73000 {
			label = "image-1";
			reg = <0x00073000 0x00067000>;
		};
		scratch_partition: partition@da000 {
			label = "image-scratch";
			reg = <0x000da000 0x0001e000>;
		};

		/*
		 * The flash starting at 0x000f8000 and ending at
		 * 0x000fffff is reserved for use by the application.
		 */

		/*
		 * Storage partition will be used by FCB/LittleFS/NVS
		 * if enabled.
		 */
		storage_partition: partition@f8000 {
			label = "storage";
			reg = <0x000f8000 0x00008000>;
		};
	};
};
If and only if I set CONFIG_BOOTLOADER_MCUBOOT=y in prj.conf, I get the following error when building my solution:
Combining 'mcuboot/zephyr/zephyr.hex'
...
zephyr/zephyr_pre0.elf section `text' will not fit in region `FLASH'
region `FLASH' overflowed by 27608 bytes
Once I get this error, I get a plethora of include errors, such as "undefined reference to `z_impl_k_queue_get".
This happens regardless of the project (hello world sample does this) and it always overflows by the same amount (27608 bytes).

I've tried reading the documentation for the bootloader, but I'm also unable to build it for my custom board there. 
This makes me think the problem is with my board definition. So my questions are the following:
  1. What steps do I need to take to configure the MCUBoot for a custom board?
  2. Is defining the memory map in the .dst of the board not enough?
  3. Must I write an overlay for the Bootloader? If yes, how should it look like?
Thanks
Related