/* 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_K(4096)
#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 = "intel,pcie";
		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>;
			sjw = <1>;
			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>;
		};
	};
};
