/*
 * Copyright (c) 2021 Yestin Sun
 *
 * 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 DT_SIZE_K(100)>;
			read-only;
		};
		/* Secure image primary slot */
		slot0_partition: partition@19000 {
			label = "image-0";
			reg = <0x00019000 DT_SIZE_K(240)>;
		};
		/* Non-secure image primary slot */
		slot1_partition: partition@55000 {
			label = "image-1";
			reg = <0x00055000 DT_SIZE_K(168)>;
		};
		/*
		 * The flash starting at 0x7F000 and ending at
		 * 0x80000 is reserved for the application.
		 */
		storage_partition: partition@7f000 {
			label = "storage";
			reg = <0x0007F000 DT_SIZE_K(4)>;
		};
	};
};
