/*
 * Copyright (c) 2019 Jan Van Winkel (jan.van_winkel@dxplore.eu)
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <posix/posix.dtsi>

/ {
	model = "Native POSIX Board";
	compatible = "zephyr,posix";

	chosen {
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,uart-mcumgr = &uart0;
		zephyr,flash = &flash0;
	};

	aliases {
		eeprom-0 = &eeprom0;
	};

	flashcontroller0: flash-controller@0 {
		compatible = "zephyr,sim-flash";
		reg = <0x00000000 DT_SIZE_K(2048)>;

		#address-cells = <1>;
		#size-cells = <1>;

		label = "flash_ctrl";

		flash0: flash@0 {
			status = "okay";
			compatible = "soc-nv-flash";
			label = "flash";
			erase-block-size = <4096>;
			write-block-size = <1>;
			reg = <0x00000000 DT_SIZE_K(2048)>;

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

				boot_partition: partition@0 {
					label = "mcuboot";
					reg = <0x000000000 0x0000C000>;
				};
				slot0_partition: partition@c000 {
					label = "image-0";
					reg = <0x0000C000 0x000069000>;
				};
				slot1_partition: partition@75000 {
					label = "image-1";
					reg = <0x00075000 0x000069000>;
				};
				scratch_partition: partition@de000 {
					label = "image-scratch";
					reg = <0x000de000 0x0001e000>;
				};
				storage_partition: partition@fc000 {
					label = "storage";
					reg = <0x000fc000 0x00004000>;
				};
			};
		};
	};

	eeprom0: eeprom {
		status = "okay";
		compatible = "zephyr,sim-eeprom";
		label = "EEPROM_0";
		size = <DT_SIZE_K(32)>;
	};

	uart0: uart {
		status = "okay";
		compatible = "zephyr,native-posix-uart";
		label = "UART_0";
		/* Dummy current-speed entry to comply with serial
		 * DTS binding
		 */
		current-speed = <0>;
	};
};
