/*
 * Copyright (c) 2020 Nordic Semiconductor ASA.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* Modify the SRAM partitioning to accommodate the requirements
 * for the Secure (TF-M) firmware for the configuration that is
 * used in this sample.
 */

/* Increase the size of the Secure Firmware (TF-M).
 * This modification is not required at the moment,
 * since TF-M region definitions are configured
 * statically in the TF-M project.
 */
&sram0_s {
	reg = <0x20000000 DT_SIZE_K(88)>;
};

/* Decrease the size of the Non-Secure Firmware (Zephyr),
 * and move its starting address to the offset expected by
 * TF-M.
 */
/delete-node/ &sram0_ns;
/ {
	reserved-memory {
		sram0_ns: image_ns@20016000 {
			reg = <0x20016000 DT_SIZE_K(168)>;
		};
	};
};

/* Disable UART1, because it is used by default in TF-M */
&uart1 {
	status = "disabled";
};
