/*
 * Copyright (c) 2020 Linaro Limited.
 *
 * SPDX-License-Identifier: Apache-2.0
 */


 /* This partition table should be used along with TFM configuration:
  * - TFM_PSA_API=ON (IPC)
  * - ISOLATION_LEVEL 2
  * - TEST_S=ON (REGRESSION)
  * - TEST_NS=ON (REGRESSION)
  *
  * In this configuration, TFM binary includes tests. As a consequence,
  * its size is bloated and it is not possible to set secondary partitions
  * for secured or non secured images.
  */

/ {
	chosen {
		zephyr,code-partition = &slot1_partition;
	};
};

&flash0 {

	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x00013000>;
			read-only;
		};
		/* Secure image primary slot */
		slot0_partition: partition@00013000 {
			label = "image-0";
			reg = <0x00013000 0x00038000>;
		};
		/* Non-secure image primary slot */
		slot1_partition: partition@0004B000 {
			label = "image-1";
			reg = <0x0004B000 0x0002A000>;
		};
		/*
		 * The flash starting at 0x7F000 and ending at
		 * 0x80000 is reserved for the application.
		 */
		storage_partition: partition@7F000 {
			label = "storage";
			reg = <0x0007F000 0x00001000>;
		};
	};
};
