[FAQ] AM625: AM62x Minimal DTS Bring-Up Guide

Other Parts Discussed in Thread: AM625


To successfully bring up a custom AM625 board, the primary objective is to establish a minimal Device Tree (DTS) to serve as the baseline for the board port.

This FAQ is designed to guide developers through the creation of that essential baseline. It provides the specific configuration steps required for both U-Boot and Linux, ensuring a functional starting point is established before enabling additional peripherals.

For simplicity, the only peripherals initially supported by the minimal configuration are the SD card reader and UART. 

  • Development Baseline

    • Target board: AM62x-SK EVM
    • SDK: PROCESSOR-SDK-LINUX-AM62X 11.01.05.03
    • Initial Scope: Booting with SD card and using UART console for system access
  • U-Boot Device Tree Modifications

    1. Files to modify
      1. ti-u-boot/dts/upstream/src/arm64/ti/k3-am625-sk.dts
      2. ti-u-boot/dts/upstream/src/arm64/ti/k3-am62x-sk-common.dtsi
    2. Git diff patch to reach a minimal u-boot device tree configuration
      1. diff --git a/dts/upstream/src/arm64/ti/k3-am625-sk.dts b/dts/upstream/src/arm64/ti/k3-am625-sk.dts
        index 6cd74660..a7284e89 100644
        --- a/dts/upstream/src/arm64/ti/k3-am625-sk.dts
        +++ b/dts/upstream/src/arm64/ti/k3-am625-sk.dts
        @@ -16,15 +16,6 @@
         	compatible = "ti,am625-sk", "ti,am625";
         	model = "Texas Instruments AM625 SK";
         
        -	opp-table {
        -		/* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
        -		opp-1400000000 {
        -			opp-hz = /bits/ 64 <1400000000>;
        -			opp-supported-hw = <0x01 0x0004>;
        -			clock-latency-ns = <6000000>;
        -		};
        -	};
        -
         	memory@80000000 {
         		bootph-pre-ram;
         		device_type = "memory";
        @@ -48,17 +39,6 @@
         		states = <1800000 0x0>,
         			 <3300000 0x1>;
         	};
        -
        -	vcc_1v8: regulator-5 {
        -		/* output of TPS6282518DMQ */
        -		compatible = "regulator-fixed";
        -		regulator-name = "vcc_1v8";
        -		regulator-min-microvolt = <1800000>;
        -		regulator-max-microvolt = <1800000>;
        -		vin-supply = <&vcc_3v3_sys>;
        -		regulator-always-on;
        -		regulator-boot-on;
        -	};
         };
         
         &vmain_pd {
        @@ -166,114 +146,7 @@
         	};
         };
         
        -&sdhci0 {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_mmc0_pins_default>;
        -	disable-wp;
        -};
        -
         &sdhci1 {
         	vmmc-supply = <&vdd_mmc1>;
         	vqmmc-supply = <&vdd_sd_dv>;
         };
        -
        -&cpsw3g {
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>;
        -
        -	cpts@3d000 {
        -		/* MAP HW3_TS_PUSH to GENF1 */
        -		ti,pps = <2 1>;
        -	};
        -};
        -
        -&cpsw_port2 {
        -	phy-mode = "rgmii-rxid";
        -	phy-handle = <&cpsw3g_phy1>;
        -};
        -
        -&cpsw3g_mdio {
        -	cpsw3g_phy1: ethernet-phy@1 {
        -		reg = <1>;
        -		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
        -		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
        -		ti,min-output-impedance;
        -	};
        -};
        -
        -&fss {
        -	bootph-all;
        -};
        -
        -&ospi0 {
        -	flash@0 {
        -		bootph-all;
        -		compatible = "jedec,spi-nor";
        -		reg = <0x0>;
        -		spi-tx-bus-width = <8>;
        -		spi-rx-bus-width = <8>;
        -		spi-max-frequency = <25000000>;
        -		cdns,tshsl-ns = <60>;
        -		cdns,tsd2d-ns = <60>;
        -		cdns,tchsh-ns = <60>;
        -		cdns,tslch-ns = <60>;
        -		cdns,read-delay = <4>;
        -		cdns,phy-mode;
        -
        -		partitions {
        -			bootph-all;
        -			compatible = "fixed-partitions";
        -			#address-cells = <1>;
        -			#size-cells = <1>;
        -
        -			partition@0 {
        -				label = "ospi.tiboot3";
        -				reg = <0x0 0x80000>;
        -			};
        -
        -			partition@80000 {
        -				label = "ospi.tispl";
        -				reg = <0x80000 0x200000>;
        -			};
        -
        -			partition@280000 {
        -				label = "ospi.u-boot";
        -				reg = <0x280000 0x400000>;
        -			};
        -
        -			partition@680000 {
        -				label = "ospi.env";
        -				reg = <0x680000 0x40000>;
        -			};
        -
        -			partition@6c0000 {
        -				label = "ospi.env.backup";
        -				reg = <0x6c0000 0x40000>;
        -			};
        -
        -			partition@800000 {
        -				label = "ospi.rootfs";
        -				reg = <0x800000 0x37c0000>;
        -			};
        -
        -			partition@3fc0000 {
        -				bootph-pre-ram;
        -				label = "ospi.phypattern";
        -				reg = <0x3fc0000 0x40000>;
        -			};
        -		};
        -	};
        -};
        -
        -&tlv320aic3106 {
        -	DVDD-supply = <&vcc_1v8>;
        -};
        -
        -&timesync_router {
        -	mux-reg-masks-state = <
        -		K3_TS_OFFSET(12, 0x0001ffff, 17)
        -		>;
        -	status = "okay";
        -};
        diff --git a/dts/upstream/src/arm64/ti/k3-am62x-sk-common.dtsi b/dts/upstream/src/arm64/ti/k3-am62x-sk-common.dtsi
        index d64a5859..217137cf 100644
        --- a/dts/upstream/src/arm64/ti/k3-am62x-sk-common.dtsi
        +++ b/dts/upstream/src/arm64/ti/k3-am62x-sk-common.dtsi
        @@ -14,14 +14,9 @@
         		serial0 = &wkup_uart0;
         		serial1 = &mcu_uart0;
         		serial2 = &main_uart0;
        -		mmc0 = &sdhci0;
         		mmc1 = &sdhci1;
         		mmc2 = &sdhci2;
        -		spi0 = &ospi0;
        -		ethernet0 = &cpsw_port1;
        -		ethernet1 = &cpsw_port2;
         		usb0 = &usb0;
        -		usb1 = &usb1;
         	};
         
         	chosen {
        @@ -30,16 +25,6 @@
         		ranges;
         
         		stdout-path = "serial2:115200n8";
        -
        -		framebuffer0: framebuffer@0 {
        -			compatible = "simple-framebuffer";
        -			power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
        -			clocks = <&k3_clks 186 6>,
        -				 <&dss_vp1_clk>,
        -				 <&k3_clks 186 2>;
        -			display = <&dss>;
        -			status = "disabled";
        -		};
         	};
         
         	reserved-memory {
        @@ -47,15 +32,6 @@
         		#size-cells = <2>;
         		ranges;
         
        -		ramoops@9c700000 {
        -			compatible = "ramoops";
        -			reg = <0x00 0x9c700000 0x00 0x00100000>;
        -			record-size = <0x8000>;
        -			console-size = <0x8000>;
        -			ftrace-size = <0x00>;
        -			pmsg-size = <0x8000>;
        -		};
        -
         		/* global cma region */
         		linux,cma {
         			compatible = "shared-dma-pool";
        @@ -64,12 +40,6 @@
         			linux,cma-default;
         		};
         
        -		rtos_ipc_memory_region: ipc-memories@9c800000 {
        -			compatible = "shared-dma-pool";
        -			reg = <0x00 0x9c800000 0x00 0x00300000>;
        -			no-map;
        -		};
        -
         		mcu_m4fss_dma_memory_region: m4f-dma-memory@9cb00000 {
         			compatible = "shared-dma-pool";
         			reg = <0x00 0x9cb00000 0x00 0x100000>;
        @@ -151,66 +121,6 @@
         		vin-supply = <&vcc_3v3_sys>;
         		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
         	};
        -
        -	leds {
        -		compatible = "gpio-leds";
        -		pinctrl-names = "default";
        -		pinctrl-0 = <&usr_led_pins_default>;
        -
        -		led-0 {
        -			label = "am62-sk:green:heartbeat";
        -			gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
        -			linux,default-trigger = "heartbeat";
        -			function = LED_FUNCTION_HEARTBEAT;
        -			default-state = "off";
        -		};
        -	};
        -
        -	tlv320_mclk: clk-0 {
        -		#clock-cells = <0>;
        -		compatible = "fixed-clock";
        -		clock-frequency = <12288000>;
        -	};
        -
        -	codec_audio: sound {
        -		compatible = "simple-audio-card";
        -		simple-audio-card,name = "AM62x-SKEVM";
        -		simple-audio-card,widgets =
        -			"Headphone",	"Headphone Jack",
        -			"Line",		"Line In",
        -			"Microphone",	"Microphone Jack";
        -		simple-audio-card,routing =
        -			"Headphone Jack",	"HPLOUT",
        -			"Headphone Jack",	"HPROUT",
        -			"LINE1L",		"Line In",
        -			"LINE1R",		"Line In",
        -			"MIC3R",		"Microphone Jack",
        -			"Microphone Jack",	"Mic Bias";
        -		simple-audio-card,format = "dsp_b";
        -		simple-audio-card,bitclock-master = <&sound_master>;
        -		simple-audio-card,frame-master = <&sound_master>;
        -		simple-audio-card,bitclock-inversion;
        -
        -		simple-audio-card,cpu {
        -			sound-dai = <&mcasp1>;
        -		};
        -
        -		sound_master: simple-audio-card,codec {
        -			sound-dai = <&tlv320aic3106>;
        -			clocks = <&tlv320_mclk>;
        -		};
        -	};
        -
        -	hdmi0: connector-hdmi {
        -		compatible = "hdmi-connector";
        -		label = "hdmi";
        -		type = "a";
        -		port {
        -			hdmi_connector_in: endpoint {
        -				remote-endpoint = <&sii9022_out>;
        -			};
        -		};
        -	};
         };
         
         &phy_gmii_sel {
        @@ -388,10 +298,6 @@
         	};
         };
         
        -&cpsw_mac_syscon {
        -	bootph-all;
        -};
        -
         &wkup_uart0 {
         	/* WKUP UART0 is used by DM firmware */
         	bootph-pre-ram;
        @@ -454,55 +360,6 @@
         	pinctrl-names = "default";
         	pinctrl-0 = <&main_i2c1_pins_default>;
         	clock-frequency = <100000>;
        -
        -	tlv320aic3106: audio-codec@1b {
        -		#sound-dai-cells = <0>;
        -		compatible = "ti,tlv320aic3106";
        -		reg = <0x1b>;
        -		ai3x-micbias-vg = <1>;	/* 2.0V */
        -
        -		/* Regulators */
        -		AVDD-supply = <&vcc_3v3_sys>;
        -		IOVDD-supply = <&vcc_3v3_sys>;
        -		DRVDD-supply = <&vcc_3v3_sys>;
        -	};
        -
        -	sii9022: bridge-hdmi@3b {
        -		compatible = "sil,sii9022";
        -		reg = <0x3b>;
        -		interrupt-parent = <&exp1>;
        -		interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
        -		#sound-dai-cells = <0>;
        -		sil,i2s-data-lanes = < 0 >;
        -
        -		ports {
        -			#address-cells = <1>;
        -			#size-cells = <0>;
        -
        -			port@0 {
        -				reg = <0>;
        -
        -				sii9022_in: endpoint {
        -					remote-endpoint = <&dpi1_out>;
        -				};
        -			};
        -
        -			port@1 {
        -				reg = <1>;
        -
        -				sii9022_out: endpoint {
        -					remote-endpoint = <&hdmi_connector_in>;
        -				};
        -			};
        -		};
        -	};
        -};
        -
        -&main_i2c2 {
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_i2c2_pins_default>;
        -	clock-frequency = <400000>;
         };
         
         &sdhci1 {
        @@ -514,33 +371,6 @@
         	disable-wp;
         };
         
        -&cpsw3g {
        -	bootph-all;
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_rgmii1_pins_default>;
        -};
        -
        -&cpsw_port1 {
        -	bootph-all;
        -	phy-mode = "rgmii-rxid";
        -	phy-handle = <&cpsw3g_phy0>;
        -};
        -
        -&cpsw3g_mdio {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_mdio1_pins_default>;
        -
        -	cpsw3g_phy0: ethernet-phy@0 {
        -		bootph-all;
        -		reg = <0>;
        -		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
        -		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
        -		ti,min-output-impedance;
        -	};
        -};
        -
         &mailbox0_cluster0 {
         	mbox_m4_0: mbox-m4-0 {
         		ti,mbox-rx = <0 0 0>;
        @@ -570,74 +400,6 @@
         			<&wkup_r5fss0_core0_memory_region>;
         };
         
        -&usbss0 {
        -	bootph-all;
        -	status = "okay";
        -	ti,vbus-divider;
        -};
        -
        -&usbss1 {
        -	status = "okay";
        -	ti,vbus-divider;
        -};
        -
        -&usb0 {
        -	bootph-all;
        -	usb-role-switch;
        -
        -	port {
        -		usb0_hs_ep: endpoint {
        -		    remote-endpoint = <&usb_con_hs>;
        -	       };
        -	};
        -};
        -
        -&usb1 {
        -	dr_mode = "host";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_usb1_pins_default>;
        -};
        -
        -&mcasp1 {
        -	status = "okay";
        -	#sound-dai-cells = <0>;
        -
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_mcasp1_pins_default>;
        -
        -	op-mode = <0>;          /* MCASP_IIS_MODE */
        -	tdm-slots = <2>;
        -
        -	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
        -	       1 0 2 0
        -	       0 0 0 0
        -	       0 0 0 0
        -	       0 0 0 0
        -	>;
        -};
        -
        -&dss_oldi_io_ctrl {
        -	bootph-all;
        -};
        -
        -&dss {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_dss0_pins_default>;
        -};
        -
        -&dss_ports {
        -	/* VP2: DPI Output */
        -	hdmi0_dss: port@1 {
        -		reg = <1>;
        -
        -		dpi1_out: endpoint {
        -			remote-endpoint = <&sii9022_in>;
        -		};
        -	};
        -};
        -
         /* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
         &mcu_gpio0 {
         	status = "reserved";
        @@ -647,15 +409,19 @@
         	status = "reserved";
         };
         
        -&ospi0 {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&ospi0_pins_default>;
        +&usbss0 {
        +        bootph-all;
        +        status = "okay";
        +        ti,vbus-divider;
         };
         
        -&pruss_uart {
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&pruss_uart_pins>;
        -	status = "okay";
        +&usb0 {
        +        bootph-all;
        +        usb-role-switch;
        +
        +        port {
        +                usb0_hs_ep: endpoint {
        +                    remote-endpoint = <&usb_con_hs>;
        +               };
        +        };
         };
    3. Build Instructions: Use the top-level SDK Makefile commands to compile the complete boot-loader and install it to your media. Run these from your SDK root directory.
      1. Build U-Boot:
        host# make u-boot

      2. Stage binaries:
        host# make u-boot_stage

      3. Install to SD card:
        host# sudo DESTDIR=/media/$USER/boot make u-boot_install
    4. Refer to the attached document for a comprehensive breakdown of the U-Boot changes required to implement a minimal device tree - U-Boot_minimal_DT.pdf
  • Linux Kernel Device Tree Modifications

    1. Files to modify
      1. ti-linux-kernel/arch/arm64/boot/dts/ti/k3-am625-sk.dts
      2. ti-linux-kernel/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    2. Git diff patch to reach a minimal u-boot device tree configuration
      1. diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
        index 6cd746602..a7284e89c 100644
        --- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
        +++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
        @@ -16,15 +16,6 @@ / {
         	compatible = "ti,am625-sk", "ti,am625";
         	model = "Texas Instruments AM625 SK";
         
        -	opp-table {
        -		/* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
        -		opp-1400000000 {
        -			opp-hz = /bits/ 64 <1400000000>;
        -			opp-supported-hw = <0x01 0x0004>;
        -			clock-latency-ns = <6000000>;
        -		};
        -	};
        -
         	memory@80000000 {
         		bootph-pre-ram;
         		device_type = "memory";
        @@ -48,17 +39,6 @@ vdd_sd_dv: regulator-4 {
         		states = <1800000 0x0>,
         			 <3300000 0x1>;
         	};
        -
        -	vcc_1v8: regulator-5 {
        -		/* output of TPS6282518DMQ */
        -		compatible = "regulator-fixed";
        -		regulator-name = "vcc_1v8";
        -		regulator-min-microvolt = <1800000>;
        -		regulator-max-microvolt = <1800000>;
        -		vin-supply = <&vcc_3v3_sys>;
        -		regulator-always-on;
        -		regulator-boot-on;
        -	};
         };
         
         &vmain_pd {
        @@ -166,114 +146,7 @@ exp1: gpio@22 {
         	};
         };
         
        -&sdhci0 {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_mmc0_pins_default>;
        -	disable-wp;
        -};
        -
         &sdhci1 {
         	vmmc-supply = <&vdd_mmc1>;
         	vqmmc-supply = <&vdd_sd_dv>;
         };
        -
        -&cpsw3g {
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>;
        -
        -	cpts@3d000 {
        -		/* MAP HW3_TS_PUSH to GENF1 */
        -		ti,pps = <2 1>;
        -	};
        -};
        -
        -&cpsw_port2 {
        -	phy-mode = "rgmii-rxid";
        -	phy-handle = <&cpsw3g_phy1>;
        -};
        -
        -&cpsw3g_mdio {
        -	cpsw3g_phy1: ethernet-phy@1 {
        -		reg = <1>;
        -		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
        -		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
        -		ti,min-output-impedance;
        -	};
        -};
        -
        -&fss {
        -	bootph-all;
        -};
        -
        -&ospi0 {
        -	flash@0 {
        -		bootph-all;
        -		compatible = "jedec,spi-nor";
        -		reg = <0x0>;
        -		spi-tx-bus-width = <8>;
        -		spi-rx-bus-width = <8>;
        -		spi-max-frequency = <25000000>;
        -		cdns,tshsl-ns = <60>;
        -		cdns,tsd2d-ns = <60>;
        -		cdns,tchsh-ns = <60>;
        -		cdns,tslch-ns = <60>;
        -		cdns,read-delay = <4>;
        -		cdns,phy-mode;
        -
        -		partitions {
        -			bootph-all;
        -			compatible = "fixed-partitions";
        -			#address-cells = <1>;
        -			#size-cells = <1>;
        -
        -			partition@0 {
        -				label = "ospi.tiboot3";
        -				reg = <0x0 0x80000>;
        -			};
        -
        -			partition@80000 {
        -				label = "ospi.tispl";
        -				reg = <0x80000 0x200000>;
        -			};
        -
        -			partition@280000 {
        -				label = "ospi.u-boot";
        -				reg = <0x280000 0x400000>;
        -			};
        -
        -			partition@680000 {
        -				label = "ospi.env";
        -				reg = <0x680000 0x40000>;
        -			};
        -
        -			partition@6c0000 {
        -				label = "ospi.env.backup";
        -				reg = <0x6c0000 0x40000>;
        -			};
        -
        -			partition@800000 {
        -				label = "ospi.rootfs";
        -				reg = <0x800000 0x37c0000>;
        -			};
        -
        -			partition@3fc0000 {
        -				bootph-pre-ram;
        -				label = "ospi.phypattern";
        -				reg = <0x3fc0000 0x40000>;
        -			};
        -		};
        -	};
        -};
        -
        -&tlv320aic3106 {
        -	DVDD-supply = <&vcc_1v8>;
        -};
        -
        -&timesync_router {
        -	mux-reg-masks-state = <
        -		K3_TS_OFFSET(12, 0x0001ffff, 17)
        -		>;
        -	status = "okay";
        -};
        diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
        index d64a58593..56a048d0e 100644
        --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
        +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
        @@ -30,16 +30,6 @@ chosen {
         		ranges;
         
         		stdout-path = "serial2:115200n8";
        -
        -		framebuffer0: framebuffer@0 {
        -			compatible = "simple-framebuffer";
        -			power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
        -			clocks = <&k3_clks 186 6>,
        -				 <&dss_vp1_clk>,
        -				 <&k3_clks 186 2>;
        -			display = <&dss>;
        -			status = "disabled";
        -		};
         	};
         
         	reserved-memory {
        @@ -47,15 +37,6 @@ reserved-memory {
         		#size-cells = <2>;
         		ranges;
         
        -		ramoops@9c700000 {
        -			compatible = "ramoops";
        -			reg = <0x00 0x9c700000 0x00 0x00100000>;
        -			record-size = <0x8000>;
        -			console-size = <0x8000>;
        -			ftrace-size = <0x00>;
        -			pmsg-size = <0x8000>;
        -		};
        -
         		/* global cma region */
         		linux,cma {
         			compatible = "shared-dma-pool";
        @@ -64,12 +45,6 @@ linux,cma {
         			linux,cma-default;
         		};
         
        -		rtos_ipc_memory_region: ipc-memories@9c800000 {
        -			compatible = "shared-dma-pool";
        -			reg = <0x00 0x9c800000 0x00 0x00300000>;
        -			no-map;
        -		};
        -
         		mcu_m4fss_dma_memory_region: m4f-dma-memory@9cb00000 {
         			compatible = "shared-dma-pool";
         			reg = <0x00 0x9cb00000 0x00 0x100000>;
        @@ -152,55 +127,6 @@ vdd_mmc1: regulator-3 {
         		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
         	};
         
        -	leds {
        -		compatible = "gpio-leds";
        -		pinctrl-names = "default";
        -		pinctrl-0 = <&usr_led_pins_default>;
        -
        -		led-0 {
        -			label = "am62-sk:green:heartbeat";
        -			gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
        -			linux,default-trigger = "heartbeat";
        -			function = LED_FUNCTION_HEARTBEAT;
        -			default-state = "off";
        -		};
        -	};
        -
        -	tlv320_mclk: clk-0 {
        -		#clock-cells = <0>;
        -		compatible = "fixed-clock";
        -		clock-frequency = <12288000>;
        -	};
        -
        -	codec_audio: sound {
        -		compatible = "simple-audio-card";
        -		simple-audio-card,name = "AM62x-SKEVM";
        -		simple-audio-card,widgets =
        -			"Headphone",	"Headphone Jack",
        -			"Line",		"Line In",
        -			"Microphone",	"Microphone Jack";
        -		simple-audio-card,routing =
        -			"Headphone Jack",	"HPLOUT",
        -			"Headphone Jack",	"HPROUT",
        -			"LINE1L",		"Line In",
        -			"LINE1R",		"Line In",
        -			"MIC3R",		"Microphone Jack",
        -			"Microphone Jack",	"Mic Bias";
        -		simple-audio-card,format = "dsp_b";
        -		simple-audio-card,bitclock-master = <&sound_master>;
        -		simple-audio-card,frame-master = <&sound_master>;
        -		simple-audio-card,bitclock-inversion;
        -
        -		simple-audio-card,cpu {
        -			sound-dai = <&mcasp1>;
        -		};
        -
        -		sound_master: simple-audio-card,codec {
        -			sound-dai = <&tlv320aic3106>;
        -			clocks = <&tlv320_mclk>;
        -		};
        -	};
        -
         	hdmi0: connector-hdmi {
         		compatible = "hdmi-connector";
         		label = "hdmi";
        @@ -213,10 +139,6 @@ hdmi_connector_in: endpoint {
         	};
         };
         
        -&phy_gmii_sel {
        -	bootph-all;
        -};
        -
         &main_pmx0 {
         	/* First pad number is ALW package and second is AMC package */
         	main_uart0_pins_default: main-uart0-default-pins {
        @@ -388,9 +310,6 @@ AM62X_MCU_IOPAD(0x028, PIN_OUTPUT, 0) /* (C5/C6) WKUP_UART0_TXD */
         	};
         };
         
        -&cpsw_mac_syscon {
        -	bootph-all;
        -};
         
         &wkup_uart0 {
         	/* WKUP UART0 is used by DM firmware */
        @@ -498,12 +417,7 @@ sii9022_out: endpoint {
         	};
         };
         
        -&main_i2c2 {
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_i2c2_pins_default>;
        -	clock-frequency = <400000>;
        -};
        +
         
         &sdhci1 {
         	/* SD/MMC */
        @@ -514,33 +428,6 @@ &sdhci1 {
         	disable-wp;
         };
         
        -&cpsw3g {
        -	bootph-all;
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_rgmii1_pins_default>;
        -};
        -
        -&cpsw_port1 {
        -	bootph-all;
        -	phy-mode = "rgmii-rxid";
        -	phy-handle = <&cpsw3g_phy0>;
        -};
        -
        -&cpsw3g_mdio {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_mdio1_pins_default>;
        -
        -	cpsw3g_phy0: ethernet-phy@0 {
        -		bootph-all;
        -		reg = <0>;
        -		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
        -		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
        -		ti,min-output-impedance;
        -	};
        -};
        -
         &mailbox0_cluster0 {
         	mbox_m4_0: mbox-m4-0 {
         		ti,mbox-rx = <0 0 0>;
        @@ -598,35 +485,6 @@ &usb1 {
         	pinctrl-0 = <&main_usb1_pins_default>;
         };
         
        -&mcasp1 {
        -	status = "okay";
        -	#sound-dai-cells = <0>;
        -
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_mcasp1_pins_default>;
        -
        -	op-mode = <0>;          /* MCASP_IIS_MODE */
        -	tdm-slots = <2>;
        -
        -	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
        -	       1 0 2 0
        -	       0 0 0 0
        -	       0 0 0 0
        -	       0 0 0 0
        -	>;
        -};
        -
        -&dss_oldi_io_ctrl {
        -	bootph-all;
        -};
        -
        -&dss {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&main_dss0_pins_default>;
        -};
        -
         &dss_ports {
         	/* VP2: DPI Output */
         	hdmi0_dss: port@1 {
        @@ -646,16 +504,3 @@ &mcu_gpio0 {
         &mcu_gpio_intr {
         	status = "reserved";
         };
        -
        -&ospi0 {
        -	bootph-all;
        -	status = "okay";
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&ospi0_pins_default>;
        -};
        -
        -&pruss_uart {
        -	pinctrl-names = "default";
        -	pinctrl-0 = <&pruss_uart_pins>;
        -	status = "okay";
        -};
    3. Build Instructions: Use the top-level SDK Makefile commands to compile the Linux device tree and install it to your media. Run these from your SDK root directory.
      1. BuildLLinux DTBs:
        host# make linux_dtbs


      2. Install to SD card:
        host# cp board-support/ti-linux-kernel/arch/arm64/boot/dts/ti/k3-am625-sk.dtb /media/$USER/root/boot/dtb/ti/am625-sk.dtb
    4. Refer to the attached document for a comprehensive breakdown of the kernel changes required to implement a minimal device tree - Kernel_minimal_DT.pdf