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


 /* This partition table should be used along with TFM configuration:
  * - TEST_S=OFF (NO REGRESSION)
  *
  * In this configuration, TFM binary does not include tests.
  * The partition sizes are compatible with the TF-M platform
  * flash_layout.h.
  */

  / {
	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@13000 {
			label = "image-0";
			reg = <0x00013000 0x0002D000>;
		};
		/* Non-secure image primary slot */
		slot1_partition: partition@40000 {
			label = "image-1";
			reg = <0x00040000 0x00009000>;
		};
		/*
		 * The flash starting at 0x7F000 and ending at
		 * 0x80000 is reserved for the application.
		 */
		storage_partition: partition@7f000 {
			label = "storage";
			reg = <0x0007F000 0x00001000>;
		};
	};
};
