/* SPDX-License-Identifier: Apache-2.0 */

/dts-v1/;

#include <mem.h>

#ifndef DT_DRAM_BASE
#define DT_DRAM_BASE		0
#endif
#ifndef DT_DRAM_SIZE
#define DT_DRAM_SIZE		DT_SIZE_M(32)
#endif
#define DT_FLASH_SIZE		DT_SIZE_K(4096)

#include <intel/ia32.dtsi>
#include <zephyr/dt-bindings/pcie/pcie.h>

/ {
	model = "QEMU X86 emulator";
	compatible = "qemu,x86_emulator";

	flash0: flash@500000 {
		compatible = "soc-nv-flash";
		reg = <0x00500000 DT_FLASH_SIZE>;
	};

	aliases {
		uart-0 = &uart0;
		uart-1 = &uart1;
		eeprom-0 = &eeprom0;
		eeprom-1 = &eeprom1;
		rtc = &rtc;
	};

	chosen {
		zephyr,sram = &dram0;
		zephyr,flash = &flash0;
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,bt-uart = &uart1;
		zephyr,uart-pipe = &uart1;
		zephyr,bt-mon-uart = &uart1;
		zephyr,code-partition = &slot0_partition;
		zephyr,flash-controller = &sim_flash;
		zephyr,ieee802154 = &ieee802154;
		zephyr,canbus = &can0;
	};

	pcie0: pcie0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "pcie-controller";
		acpi-hid = "PNP0A08";
		ranges;

		can0: can0 {
			compatible = "kvaser,pcican";
			status = "okay";
			vendor-id = <0x10e8>;
			device-id = <0x8406>;
			interrupts = <11 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
			interrupt-parent = <&intc>;
			bus-speed = <125000>;
			sample-point = <875>;

			can-transceiver {
				max-bitrate = <1000000>;
			};
		};

		eth0: eth0 {
			compatible = "intel,e1000";

			vendor-id = <0x8086>;
			device-id = <0x100e>;

			interrupts = <11 IRQ_TYPE_LOWEST_EDGE_RISING 3>;
			interrupt-parent = <&intc>;

			status = "okay";
		};
	};

	sim_flash: sim_flash {
		compatible = "zephyr,sim-flash";

		#address-cells = <1>;
		#size-cells = <1>;
		erase-value = <0xff>;

		flash_sim0: flash_sim@0 {
			compatible = "soc-nv-flash";
			reg = <0x00000000 DT_SIZE_K(1024)>;

			erase-block-size = <1024>;
			write-block-size = <4>;
		};
	};

	eeprom1: eeprom1 {
		status = "okay";
		compatible = "zephyr,emu-eeprom";
		size = <DT_SIZE_K(4)>;
		pagesize = <DT_SIZE_K(8)>;
		partition = <&eepromemu_partition>;
		rambuf;
	};

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

	ieee802154: ieee802154 {
		compatible = "zephyr,ieee802154-uart-pipe";
	};

};

&uart0 {
	status = "okay";
	current-speed = <115200>;
};

&uart1 {
	status = "okay";
	current-speed = <115200>;
};

&hpet {
	status = "okay";
};

&flash_sim0 {

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

		/*
		 * Storage partition will be used by FCB/LittleFS/NVS
		 * if enabled.
		 */
		storage_partition: partition@1000 {
			label = "storage";
			reg = <0x00001000 0x00010000>;
		};

		slot0_partition: partition@11000 {
			label = "image-0";
			reg = <0x00011000 0x00010000>;
		};
		slot1_partition: partition@21000 {
			label = "image-1";
			reg = <0x00021000 0x00010000>;
		};
		eepromemu_partition: partition@31000 {
			label = "eeprom-emu";
			reg = <0x00031000 0x00010000>;
		};
	};
};
