/*
 * Copyright (c) 2021 Yestin Sun
 *
 * 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=OFF (By default)
  *
  * 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 0x00019000>;
			read-only;
		};
		/* Secure image primary slot */
		slot0_partition: partition@19000 {
			label = "image-0";
			reg = <0x00019000 0x00038000>;
		};
		/* Non-secure image primary slot */
		slot1_partition: partition@51000 {
			label = "image-1";
			reg = <0x00051000 0x0002A000>;
		};
		/*
		 * The flash starting at 0x7F000 and ending at
		 * 0x80000 is reserved for the application.
		 */
		storage_partition: partition@7f000 {
			label = "storage";
			reg = <0x0007F000 0x00001000>;
		};
	};
};
