// SPDX-License-Identifier: GPL-2.0
/*
 * https://beagleboard.org/play
 *
 * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
 * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
 */

#include "k3-am625-beagleplay.dts"
#include "k3-am625-beagleplay-ddr4-1600MTs.dtsi"
#include "k3-am62-ddr.dtsi"

#include "k3-am625-beagleplay-u-boot.dtsi"

/ {
	aliases {
		remoteproc0 = &sysctrler;
		remoteproc1 = &a53_0;
	};

	a53_0: a53@0 {
		compatible = "ti,am654-rproc";
		reg = <0x00 0x00a90000 0x00 0x10>;
		power-domains = <&k3_pds 61 TI_SCI_PD_EXCLUSIVE>,
				<&k3_pds 135 TI_SCI_PD_EXCLUSIVE>;
		resets = <&k3_reset 135 0>;
		clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
		clock-names = "gtc", "core";
		assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
		assigned-clock-parents = <&k3_clks 61 2>;
		assigned-clock-rates = <200000000>, <1250000000>;
		ti,sci = <&dmsc>;
		ti,sci-proc-id = <32>;
		ti,sci-host-id = <10>;
		bootph-pre-ram;
	};

	dm_tifs: dm-tifs {
		compatible = "ti,j721e-dm-sci";
		ti,host-id = <36>;
		ti,secure-host;
		mbox-names = "rx", "tx";
		mboxes= <&secure_proxy_main 22>,
			<&secure_proxy_main 23>;
		bootph-pre-ram;
	};
};

&main_timer0 {
	/delete-property/ clocks;
	/delete-property/ clocks-names;
	/delete-property/ assigned-clocks;
	/delete-property/ assigned-clock-parents;
	clock-frequency = <25000000>;
};

&dmsc {
	mboxes= <&secure_proxy_main 0>,
		<&secure_proxy_main 1>,
		<&secure_proxy_main 0>;
	mbox-names = "rx", "tx", "notify";
	ti,host-id = <35>;
	ti,secure-host;
};

&secure_proxy_sa3 {
	/* We require this for boot handshake */
	status = "okay";
};

&cbass_main {
	sysctrler: sysctrler {
		compatible = "ti,am654-tisci-rproc-r5";
		mboxes= <&secure_proxy_main 1>, <&secure_proxy_main 0>, <&secure_proxy_sa3 0>;
		mbox-names = "tx", "rx", "boot_notify";
		bootph-pre-ram;
	};
};

&main_pktdma {
	ti,sci = <&dm_tifs>;
};

&main_bcdma {
	ti,sci = <&dm_tifs>;
};

&binman {
	tiboot3-am62x-gp-evm.bin {
		filename = "tiboot3-am62x-gp-evm.bin";
		symlink = "tiboot3.bin";
		ti-secure-rom {
			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
			combined;
			dm-data;
			content-sbl = <&u_boot_spl_unsigned>;
			load = <0x43c00000>;
			content-sysfw = <&ti_fs_gp>;
			load-sysfw = <0x40000>;
			content-sysfw-data = <&combined_tifs_cfg_gp>;
			load-sysfw-data = <0x67000>;
			content-dm-data = <&combined_dm_cfg_gp>;
			load-dm-data = <0x43c3a800>;
			sw-rev = <1>;
			keyfile = "ti-degenerate-key.pem";
		};
		u_boot_spl_unsigned: u-boot-spl {
			no-expanded;
		};
		ti_fs_gp: ti-fs-gp.bin {
			filename = "ti-sysfw/ti-fs-firmware-am62x-gp.bin";
			type = "blob-ext";
		};
		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
			filename = "combined-tifs-cfg.bin";
			type = "blob-ext";
		};
		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
			filename = "combined-dm-cfg.bin";
			type = "blob-ext";
		};

	};
};

#include "k3-binman-capsule-r5.dtsi"

// Capsule update GUIDs in string form.  See beagleplay.h
#define BEAGLEPLAY_TIBOOT3_IMAGE_GUID_STR "0e225a09-f720-4d57-9120-e28f737f5a5e"

&capsule_tiboot3 {
	efi-capsule {
		image-guid = BEAGLEPLAY_TIBOOT3_IMAGE_GUID_STR;

		blob {
			filename = "tiboot3-am62x-gp-evm.bin";
		};
	};
};
