AM6422: mcu_uart0、mcu_uart1 linux

Part Number: AM6422

Tool/software:

Hello,

   The hardware we have developed ourselves now uses mcu_uart0 and mcu_uart1 in Linux. We have defined it in the device tree and the corresponding pins have been compared. After testing, it was found that neither of these ports is working properly, but I use real-time checking of mcu_uart1 operation , can send and receive data. I printed out the information related to my device tree file and serial port operation. I hope you can help analyze it.Another phenomenon is that I use the command to view the serial port status. In any case, the sending count of mcu_uart1 is 381, and this number is displayed every time I power on.The test process is to enter the echo command in the debugger serial port, and send the data to the serial port of the PC through mcu_uart1. The serial port connection line has been confirmed to be no problem.

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
 */

/dts-v1/;

#include <dt-bindings/phy/phy.h>
#include <dt-bindings/mux/ti-serdes.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/net/ti-dp83867.h>
#include "k3-am642.dtsi"

/ {
	compatible =  "ti,am642-evm", "ti,am642";
	model = "Texas Instruments AM642 EVM";

	chosen {
		stdout-path = "serial2:115200n8";
		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
	};

	aliases {
		ethernet2 = &icssg0_emac0;
	};
	memory@80000000 {
		device_type = "memory";
		/* 2G RAM */
		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;

	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		secure_ddr: optee@9e800000 {
			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
			alignment = <0x1000>;
			no-map;
		};

		main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0xa0000000 0x00 0x100000>;
			no-map;
		};

		main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0xa0100000 0x00 0xf00000>;
			no-map;
		};

//		main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
//			compatible = "shared-dma-pool";
//			reg = <0x00 0xa1000000 0x00 0x100000>;
//			no-map;
//		};
//
//		main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
//			compatible = "shared-dma-pool";
//			reg = <0x00 0xa1100000 0x00 0xf00000>;
//			no-map;
//		};

		main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0xa2000000 0x00 0x100000>;
			no-map;
		};

		main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0xa2100000 0x00 0xf00000>;
			no-map;
		};

//		main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
//			compatible = "shared-dma-pool";
//			reg = <0x00 0xa3000000 0x00 0x100000>;
//			no-map;
//		};
//
//		main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
//			compatible = "shared-dma-pool";
//			reg = <0x00 0xa3100000 0x00 0xf00000>;
//			no-map;
//		};

		mcu_m4fss_dma_memory_region: m4f-dma-memory@a4000000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0xa4000000 0x00 0x100000>;
			no-map;
		};

		mcu_m4fss_memory_region: m4f-memory@a4100000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0xa4100000 0x00 0xf00000>;
			no-map;
		};

		rtos_ipc_memory_region: ipc-memories@a5000000 {
			reg = <0x00 0xa5000000 0x00 0x00800000>;
			alignment = <0x1000>;
			no-map;
		};
		apps-shared-memory {
			compatible = "dma-heap-carveout";
			reg = <0x00 0xa6000000 0x00 0x2000000>;
			no-map;
		};
	};

//	evm_12v0: fixedregulator-evm12v0 {
//		/* main DC jack */
//		compatible = "regulator-fixed";
//		regulator-name = "evm_12v0";
//		regulator-min-microvolt = <12000000>;
//		regulator-max-microvolt = <12000000>;
//		regulator-always-on;
//		regulator-boot-on;
//	};
//
//	vsys_5v0: fixedregulator-vsys5v0 {
//		/* output of LM5140 */
//		compatible = "regulator-fixed";
//		regulator-name = "vsys_5v0";
//		regulator-min-microvolt = <5000000>;
//		regulator-max-microvolt = <5000000>;
//		vin-supply = <&evm_12v0>;
//		regulator-always-on;
//		regulator-boot-on;
//	};
//
//	vsys_3v3: fixedregulator-vsys3v3 {
//		/* output of LM5140 */
//		compatible = "regulator-fixed";
//		regulator-name = "vsys_3v3";
//		regulator-min-microvolt = <3300000>;
//		regulator-max-microvolt = <3300000>;
//		vin-supply = <&evm_12v0>;
//		regulator-always-on;
//		regulator-boot-on;
//	};

//	vdd_mmc1: fixed-regulator-sd {
//		/* TPS2051BD */
//		compatible = "regulator-fixed";
//		regulator-name = "vdd_mmc1";
//		regulator-min-microvolt = <3300000>;
//		regulator-max-microvolt = <3300000>;
//		regulator-boot-on;
//		enable-active-high;
//		vin-supply = <&vsys_3v3>;
///*		gpio = <&exp1 6 GPIO_ACTIVE_HIGH>;*/
//	};

//	vddb: fixedregulator-vddb {
//		compatible = "regulator-fixed";
//		regulator-name = "vddb_3v3_display";
//		regulator-min-microvolt = <3300000>;
//		regulator-max-microvolt = <3300000>;
//		vin-supply = <&vsys_3v3>;
//		regulator-always-on;
//		regulator-boot-on;
//	};

/*	leds {
		compatible = "gpio-leds";

		led-0 {
			label = "am64-evm:red:heartbeat";
			gpios = <&exp1 16 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			function = LED_FUNCTION_HEARTBEAT;
			default-state = "off";
		};
	};*/

/*	mdio_mux: mux-controller {
		compatible = "gpio-mux";
		#mux-control-cells = <0>;

		mux-gpios = <&exp1 12 GPIO_ACTIVE_HIGH>;
	};*/

/*	mdio_mux_1: mdio-mux-1 {
		compatible = "mdio-mux-multiplexer";
		mux-controls = <&mdio_mux>;
		mdio-parent-bus = <&cpsw3g_mdio>;
		#address-cells = <1>;
		#size-cells = <0>;

		mdio@1 {
			reg = <0x1>;
			#address-cells = <1>;
			#size-cells = <0>;

			cpsw3g_phy3: ethernet-phy@3 {
				reg = <3>;
				tx-internal-delay-ps = <250>;
				rx-internal-delay-ps = <2000>;
			};
		};
	};*/
	transceiver1: can-phy0 {
		compatible = "ti,tcan1042";
		#phy-cells = <0>;
		max-bitrate = <5000000>;
	};
	
	transceiver2: can-phy1 {
		compatible = "ti,tcan1042";
		#phy-cells = <0>;
		max-bitrate = <5000000>;
	};

	icssg0_eth: icssg0-eth {
		compatible = "ti,am642-icssg-prueth";
		pinctrl-names = "default";
		pinctrl-0 = <&pru_icssg0_mii_g_rt_pins_default>;

		sram = <&oc_sram>;
		ti,prus = <&pru0_0>, <&rtu0_0>, <&tx_pru0_0>, <&pru0_1>, <&rtu0_1>, <&tx_pru0_1>;
		firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
				"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
				"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";

		ti,pruss-gp-mux-sel = <2>,	/* MII mode */
				      <2>,
				      <2>,
				      <2>,	/* MII mode */
				      <2>,
				      <2>;

		mii-g-rt = <&icssg0_mii_g_rt>;
		mii-rt = <&icssg0_mii_rt>;
		iep = <&icssg0_iep0>,  <&icssg0_iep1>;

		interrupt-parent = <&icssg0_intc>;
		interrupts = <24 0 2>, <25 1 3>;
		interrupt-names = "tx_ts0", "tx_ts1";

		dmas = <&main_pktdma 0xc100 15>, /* egress slice 0 */
		       <&main_pktdma 0xc101 15>, /* egress slice 0 */
		       <&main_pktdma 0xc102 15>, /* egress slice 0 */
		       <&main_pktdma 0xc103 15>, /* egress slice 0 */
		       <&main_pktdma 0xc104 15>, /* egress slice 1 */
		       <&main_pktdma 0xc105 15>, /* egress slice 1 */
		       <&main_pktdma 0xc106 15>, /* egress slice 1 */
		       <&main_pktdma 0xc107 15>, /* egress slice 1 */
		       <&main_pktdma 0x4100 15>, /* ingress slice 0 */
		       <&main_pktdma 0x4101 15>, /* ingress slice 1 */
		       <&main_pktdma 0x4102 0>, /* mgmnt rsp slice 0 */
		       <&main_pktdma 0x4103 0>; /* mgmnt rsp slice 1 */
		dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
			    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
			    "rx0", "rx1",
			    "rxmgm0", "rxmgm1";

			icssg0_emac0: ethernet-mii0 {
//				phy-handle = <&icssg0_phy0>;
//				phy-mode = "mii";
//				ti,syscon-rgmii-delay = <&main_conf 0x4100>;
				/* Filled in by bootloader */
				local-mac-address = [00 00 00 00 00 00];
		};
		icssg0_emac1: ethernet-mii1 {
//			ti,syscon-rgmii-delay = <&main_conf 0x4100>;
//			phy-mode = "mii";
			local-mac-address = [00 00 00 00 00 00];
//			status = "disabled";
		};
	};
	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&usr_led_pins_default>;

		led-0 {
			label = "am64-evm:green:heartbeat";
			gpios = <&main_gpio1 44 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			function = LED_FUNCTION_HEARTBEAT;
			default-state = "off";
		};
	};
	dma_buf_phys {
		compatible = "ti,dma_buf_phys";
	};
};
&main_r5fss0_core0 {
	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
	memory-region = <&main_r5fss0_core0_dma_memory_region>,
			<&main_r5fss0_core0_memory_region>;
};

//&main_r5fss0_core1 {
//	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
//	memory-region = <&main_r5fss0_core1_dma_memory_region>,
//			<&main_r5fss0_core1_memory_region>;
//};

&main_r5fss1_core0 {
	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
	memory-region = <&main_r5fss1_core0_dma_memory_region>,
			<&main_r5fss1_core0_memory_region>;
};

//&main_r5fss1_core1 {
//	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
//	memory-region = <&main_r5fss1_core1_dma_memory_region>,
//			<&main_r5fss1_core1_memory_region>;
//};

&mcu_m4fss {
	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
	memory-region = <&mcu_m4fss_dma_memory_region>,
			<&mcu_m4fss_memory_region>;
};

&mcu_pmx0 {
	mcu_uart0_pins_default: mcu-uart0-pins-default {
		pinctrl-single,pins = <
			AM64X_MCU_IOPAD(0x0028, PIN_INPUT, 0) /* (A9) UART0_RXD */
			AM64X_MCU_IOPAD(0x002C, PIN_OUTPUT, 0) /* (A8) UART0_TXD */
			AM64X_MCU_IOPAD(0x0030, PIN_INPUT, 0) /* (D8)   UART0_CTSn*/
			AM64X_MCU_IOPAD(0x0034, PIN_OUTPUT, 0) /* (E8)   UART0_RTSn*/
		>;
	};
	mcu_uart1_pins_default: mcu-uart1-pins-default {
		pinctrl-single,pins = <
			AM64X_MCU_IOPAD(0x0038, PIN_INPUT, 0) /* (C9) UART1_RXD */
			AM64X_MCU_IOPAD(0x003C, PIN_OUTPUT, 0) /* (D9) UART1_TXD */
			AM64X_MCU_IOPAD(0x0040, PIN_INPUT, 0) /* (B8)   UART1_CTSn*/
			AM64X_MCU_IOPAD(0x0044, PIN_OUTPUT, 0) /* (B9)   UART1_RTSn*/
		>;
	};
};

&main_pmx0 {
	main_mmc1_pins_default: main-mmc1-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0294, PIN_INPUT, 0) /* (J19) MMC1_CMD */
			AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* (#N/A) MMC1_CLKLB */
			AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* (L20) MMC1_CLK */
			AM64X_IOPAD(0x0288, PIN_INPUT, 0) /* (K21) MMC1_DAT0 */
			AM64X_IOPAD(0x0284, PIN_INPUT, 0) /* (L21) MMC1_DAT1 */
			AM64X_IOPAD(0x0280, PIN_INPUT, 0) /* (K19) MMC1_DAT2 */
			AM64X_IOPAD(0x027c, PIN_INPUT, 0) /* (K18) MMC1_DAT3 */
			AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */
		>;
	};
	
	main_uart0_pins_default: main-uart0-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
			AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
		>;
	};

//	main_spi0_pins_default: main-spi0-pins-default {
//		pinctrl-single,pins = <
//			AM64X_IOPAD(0x0210, PIN_INPUT, 0) /* (D13) SPI0_CLK */
//			AM64X_IOPAD(0x0208, PIN_OUTPUT, 0) /* (D12) SPI0_CS0 */
//			AM64X_IOPAD(0x0214, PIN_OUTPUT, 0) /* (A13) SPI0_D0 */
//			AM64X_IOPAD(0x0218, PIN_INPUT, 0) /* (A14) SPI0_D1 */
//		>;
//	};

//	main_spi1_pins_default: main-spi1-pins-default {
//		pinctrl-single,pins = <
//			AM64X_IOPAD(0x0224, PIN_INPUT, 0) /* (C14) SPI1_CLK */
//			AM64X_IOPAD(0x0228, PIN_OUTPUT, 0) /* (B15) SPI1_CS0 */
//			AM64X_IOPAD(0x022C, PIN_OUTPUT, 0) /* (A15) SPI1_D0 */
//			AM64X_IOPAD(0x021C, PIN_INPUT, 0) /* (B14) SPI1_D1 */
//		>;
//	};	
/* new uart1 2 3 0 1 i2c0 */	
	main_uart1_pins_default: main-uart1-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0240, PIN_INPUT, 0) /* (E15) UART1_RXD */
			AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD */
		>;
	};
	
	main_uart2_pins_default: main-uart2-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0238, PIN_INPUT, 3) /* (B16) UART2_RXD  UART0_CTSn*/
			AM64X_IOPAD(0x023c, PIN_OUTPUT, 3) /* (A16) UART2_TXD  UART0_RTSn*/
		>;
	};

	main_uart3_pins_default: main-uart3-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0248, PIN_INPUT, 4) /* (D16) UART3_TXD */
			AM64X_IOPAD(0x024c, PIN_OUTPUT, 4) /* (E16) UART3_RXD */	
		>;
	};

	main_i2c0_pins_default: main-i2c0-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C1_SCL */
			AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C1_SDA */
		>;
	};
	main_i2c1_pins_default: main-i2c1-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
			AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
		>;
	};
	mdio1_pins_default: mdio1-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
			AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
		>;
	};
//new 
	di_do_pins_default: di_do_pins_default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x00E8, PIN_OUTPUT, 7) /* (U9) PRG1_PRU0_GPO12 GPIO0_57  DO4*/
			AM64X_IOPAD(0x00E4, PIN_OUTPUT, 7) /* (AA8) PRG1_PRU0_GPO11 GPIO0_56 DO3*/			
			AM64X_IOPAD(0x00F0, PIN_OUTPUT, 7) /* (AA9) PRG1_PRU0_GPO14 GPIO0_59 shi gu DO*/							
			AM64X_IOPAD(0x00D0, PIN_INPUT, 7) /* (AA7) PRG1_PRU0_GPO6  GPIO0_51 shi gu shi yan DI*/	
			AM64X_IOPAD(0x007C, PIN_OUTPUT, 7) /* (R17) GPMC0_CLK GPIO0_31 net2 rst*/
			AM64X_IOPAD(0x00A0, PIN_OUTPUT, 7) /* (N16) GPMC0_WPn GPIO0_39 net3 rst*/
		>;
	};
	
	net_rst_pin_default:net-rst-pin-default{
		pinctrl-single,pins = <
			AM64X_IOPAD(0x01A4, PIN_INPUT, 7) /* (U1) PRG0_PRU0_GPO17 GPIO1_17 yuan fang jiu di DI*/
			AM64X_IOPAD(0x01A8, PIN_INPUT, 7) /* (V1) PRG0_PRU0_GPO18 GPIO1_18 fu gui DI*/
			AM64X_IOPAD(0x017C, PIN_INPUT, 7) /* (T1) PRG0_PRU0_GPO7  GPIO1_7 yu gao shi yan DI*/	
			AM64X_IOPAD(0x01CC, PIN_OUTPUT, 7) /* (W5) PRG0_PRU1_GPO7 GPIO1_27 yu gao DO*/	
			
			AM64X_IOPAD(0x0224, PIN_OUTPUT, 7) /* (C14) SPI1_CLK GPIO1_49 net1 rst*/
		>;
	};	
	rgmii1_pins_default: rgmii1-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x011c, PIN_INPUT, 4) /* (AA13) PRG1_PRU1_GPO5.RGMII1_RD0 */
			AM64X_IOPAD(0x0128, PIN_INPUT, 4) /* (U12) PRG1_PRU1_GPO8.RGMII1_RD1 */
			AM64X_IOPAD(0x0150, PIN_INPUT, 4) /* (Y13) PRG1_PRU1_GPO18.RGMII1_RD2 */
			AM64X_IOPAD(0x0154, PIN_INPUT, 4) /* (V12) PRG1_PRU1_GPO19.RGMII1_RD3 */
			AM64X_IOPAD(0x00d8, PIN_INPUT, 4) /* (W13) PRG1_PRU0_GPO8.RGMII1_RXC */
			AM64X_IOPAD(0x00cc, PIN_INPUT, 4) /* (V13) PRG1_PRU0_GPO5.RGMII1_RX_CTL */
			AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */
			AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */
			AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */
			AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */
			AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */
			AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */
		>;
	};

       rgmii2_pins_default: rgmii2-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
			AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
			AM64X_IOPAD(0x0110, PIN_INPUT, 4) /* (AA12) PRG1_PRU1_GPO2.RGMII2_RD2 */
			AM64X_IOPAD(0x0114, PIN_INPUT, 4) /* (Y12) PRG1_PRU1_GPO3.RGMII2_RD3 */
			AM64X_IOPAD(0x0120, PIN_INPUT, 4) /* (U11) PRG1_PRU1_GPO6.RGMII2_RXC */
			AM64X_IOPAD(0x0118, PIN_INPUT, 4) /* (W12) PRG1_PRU1_GPO4.RGMII2_RX_CTL */
			AM64X_IOPAD(0x0134, PIN_OUTPUT, 4) /* (AA10) PRG1_PRU1_GPO11.RGMII2_TD0 */
			AM64X_IOPAD(0x0138, PIN_OUTPUT, 4) /* (V10) PRG1_PRU1_GPO12.RGMII2_TD1 */
			AM64X_IOPAD(0x013c, PIN_OUTPUT, 4) /* (U10) PRG1_PRU1_GPO13.RGMII2_TD2 */
			AM64X_IOPAD(0x0140, PIN_OUTPUT, 4) /* (AA11) PRG1_PRU1_GPO14.RGMII2_TD3 */
			AM64X_IOPAD(0x0148, PIN_OUTPUT, 4) /* (Y10) PRG1_PRU1_GPO16.RGMII2_TXC */
			AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_GPO15.RGMII2_TX_CTL */
		>;
	};

	main_usb0_pins_default: main-usb0-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
		>;
	};
	
	icssg0_mdio0_pins_default: icssg0_mdio_pins_default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0204, PIN_OUTPUT, 0) /* (P3) PRG0_MDIO0_MDC */
			AM64X_IOPAD(0x0200, PIN_INPUT, 0) /* (P2) PRG0_MDIO0_MDIO */
		>;
	};
	icssg0_iep0_pins_default: icssg0-iep0-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x01ac, PIN_OUTPUT, 2) /* (W1) PRG0_IEP0_EDC_SYNC_OUT0 */
		>;
	};
	pru_icssg0_mii_g_rt_pins_default: pru_icssg0_mii_g_rt_pins_default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x01a0, PIN_INPUT, 1) /* (U4) PRG0_PRU0_GPO16.PR0_MII_MT0_CLK */
			AM64X_IOPAD(0x019c, PIN_OUTPUT, 0) /* (T5) PRG0_PRU0_GPO15.PR0_MII0_TXEN */
			AM64X_IOPAD(0x0198, PIN_OUTPUT, 0) /* (V4) PRG0_PRU0_GPO14.PR0_MII0_TXD3 */
			AM64X_IOPAD(0x0194, PIN_OUTPUT, 0) /* (R6) PRG0_PRU0_GPO13.PR0_MII0_TXD2 */
			AM64X_IOPAD(0x0190, PIN_OUTPUT, 0) /* (AA3) PRG0_PRU0_GPO12.PR0_MII0_TXD1 */
			AM64X_IOPAD(0x018c, PIN_OUTPUT, 0) /* (Y3) PRG0_PRU0_GPO11.PR0_MII0_TXD0 */
			AM64X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA2) PRG0_PRU0_GPO4.PR0_MII0_RXDV */
			AM64X_IOPAD(0x0178, PIN_INPUT, 1) /* (T3) PRG0_PRU0_GPO6.PR0_MII_MR0_CLK */
			AM64X_IOPAD(0x016c, PIN_INPUT, 1) /* (V2) PRG0_PRU0_GPO3.PR0_MII0_RXD3 */
			AM64X_IOPAD(0x0168, PIN_INPUT, 1) /* (U2) PRG0_PRU0_GPO2.PR0_MII0_RXD2 */
			AM64X_IOPAD(0x0188, PIN_INPUT, 1) /* (AA5) PRG0_PRU0_GPO10.PR0_MII0_CRS */
			AM64X_IOPAD(0x0174, PIN_INPUT, 1) /* (R3) PRG0_PRU0_GPO5.PR0_MII0_RXER */
			AM64X_IOPAD(0x0164, PIN_INPUT, 1) /* (R4) PRG0_PRU0_GPO1.PR0_MII0_RXD1 */
			AM64X_IOPAD(0x0160, PIN_INPUT, 1) /* (Y1) PRG0_PRU0_GPO0.PR0_MII0_RXD0 */
			AM64X_IOPAD(0x0184, PIN_INPUT, 1) /* (W6) PRG0_PRU0_GPO9.PR0_MII0_COL */
//			AM64X_IOPAD(0x0180, PIN_INPUT, 1) /* (T2) PRG0_PRU0_GPO8.PR1_MII0_RXLINK */
						
			AM64X_IOPAD(0x01f0, PIN_INPUT, 1) /* (AA4) PRG0_PRU1_GPO16.PR0_MII_MT1_CLK */
			AM64X_IOPAD(0x01ec, PIN_OUTPUT, 0) /* (U5) PRG0_PRU1_GPO15.PR0_MII1_TXEN */
			AM64X_IOPAD(0x01e8, PIN_OUTPUT, 0) /* (U6) PRG0_PRU1_GPO14.PR0_MII1_TXD3 */
			AM64X_IOPAD(0x01e4, PIN_OUTPUT, 0) /* (T6) PRG0_PRU1_GPO13.PR0_MII1_TXD2 */
			AM64X_IOPAD(0x01e0, PIN_OUTPUT, 0) /* (Y4) PRG0_PRU1_GPO12.PR0_MII1_TXD1 */
			AM64X_IOPAD(0x01dc, PIN_OUTPUT, 0) /* (W4) PRG0_PRU1_GPO11.PR0_MII1_TXD0 */
			AM64X_IOPAD(0x01c0, PIN_INPUT, 1) /* (W3) PRG0_PRU1_GPO4.PR0_MII1_RXDV */
			AM64X_IOPAD(0x01c8, PIN_INPUT, 1) /* (R5) PRG0_PRU1_GPO6.PR0_MII_MR1_CLK */
			AM64X_IOPAD(0x01bc, PIN_INPUT, 1) /* (T4) PRG0_PRU1_GPO3.PR0_MII1_RXD3 */
			AM64X_IOPAD(0x01b8, PIN_INPUT, 1) /* (V3) PRG0_PRU1_GPO2.PR0_MII1_RXD2 */
			AM64X_IOPAD(0x01d8, PIN_INPUT, 1) /* (V6) PRG0_PRU1_GPO10.PR0_MII1_CRS */
			AM64X_IOPAD(0x01c4, PIN_INPUT, 1) /* (P4) PRG0_PRU1_GPO5.PR0_MII1_RXER */
			AM64X_IOPAD(0x01b4, PIN_INPUT, 1) /* (W2) PRG0_PRU1_GPO1.PR0_MII1_RXD1 */
			AM64X_IOPAD(0x01b0, PIN_INPUT, 1) /* (Y2) PRG0_PRU1_GPO0.PR0_MII1_RXD0 */
			AM64X_IOPAD(0x01d4, PIN_INPUT, 1) /* (Y5) PRG0_PRU1_GPO9.PR0_MII1_COL */
			AM64X_IOPAD(0x01d0, PIN_INPUT, 1) /* (R1) PRG0_PRU1_GPO8.PR0_MII1_RXLINK */
		>;
	}; 
	
	ospi0_pins_default: ospi0-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
			AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
			AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* (M19) OSPI0_D0 */
			AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* (M18) OSPI0_D1 */
			AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* (M20) OSPI0_D2 */
			AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* (M21) OSPI0_D3 */
			AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* (P21) OSPI0_D4 */
			AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* (P20) OSPI0_D5 */
			AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* (N18) OSPI0_D6 */
			AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* (M17) OSPI0_D7 */
			AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */
		>;
	};

	main_mcan0_pins_default: main-mcan0-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
			AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (A17) MCAN0_TX */
		>;
	};
	
	main_mcan1_pins_default: main-mcan1-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
		>;
	};
	
//	icssg1_mdio1_pins_default: icssg1-mdio1-pins-default {
//		pinctrl-single,pins = <
//			AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* (Y6) PRG1_MDIO0_MDC */
//			AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA6) PRG1_MDIO0_MDIO */
//		>;
//	};
//
//	icssg1_rgmii1_pins_default: icssg1-rgmii1-pins-default {
//		pinctrl-single,pins = <
//			AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
//			AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
//			AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
//			AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
//			AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
//			AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
//			AM64X_IOPAD(0x00e4, PIN_INPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
//			AM64X_IOPAD(0x00e8, PIN_INPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
//			AM64X_IOPAD(0x00ec, PIN_INPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
//			AM64X_IOPAD(0x00f0, PIN_INPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
//			AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
//			AM64X_IOPAD(0x00f4, PIN_INPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
//		>;
//	};
//
//	icssg1_iep0_pins_default: icssg1-iep0-pins-default {
//		pinctrl-single,pins = <
//			AM64X_IOPAD(0x0104, PIN_OUTPUT, 2) /* (W7) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
//		>;
//	};
//
//	main_ecap0_pins_default: main-ecap0-pins-default {
//		pinctrl-single,pins = <
//			AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
//		>;
//	};
		usr_led_pins_default: usr-led-pins-default {
		pinctrl-single,pins = <
			AM64X_IOPAD(0x270, PIN_OUTPUT, 7) /* (D18) SYNC1_OUT_TP.GPIO1_68 */
		>;
	};
};

//new
&main_gpio1 {
	pinctrl-names = "default";
	pinctrl-0 = <&di_do_pins_default>;
	status = "okay";
};

&main_gpio0 {
	pinctrl-names = "default";
	pinctrl-0 = <&net_rst_pin_default>;
	status = "okay";
};
 
&main_uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart0_pins_default>;
};

//new
/* main_uart1 is reserved for firmware usage */
&main_uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart1_pins_default>;
};

&main_uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart2_pins_default>;
};

&main_uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart3_pins_default>;
};

&main_uart4 {
	status = "disabled";
};

&main_uart5 {
	status = "disabled";
};

&main_uart6 {
	status = "disabled";
};

&mcu_uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_uart0_pins_default>;
};

&mcu_uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_uart1_pins_default>;
};

&main_i2c1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c1_pins_default>;
	clock-frequency = <400000>;
	ds1340: rtc@68 {
	compatible = "dallas,ds1340";
	reg = <0x68>;
	};
};

/* mcu_gpio0 is reserved for mcu firmware usage */
&mcu_gpio0 {
	status = "reserved";
};

&mcu_i2c0 {
	status = "disabled";
};

&main_i2c2 {
	status = "disabled";
};

&main_i2c3 {
	status = "disabled";
};
//new
&main_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c0_pins_default>;
	clock-frequency = <400000>;
	eeprom@50 {
		compatible = "atmel,24c02";
		reg = <0x50>;
		pagesize = <8>;
	};
};
&mcu_i2c1 {
	status = "disabled";
};

&mcu_spi0 {
	status = "disabled";
};

&mcu_spi1 {
	status = "disabled";
};

/*&main_spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_spi0_pins_default>;
	ti,pindir-d0-out-d1-in = <1>;
	eeprom@0 {
		compatible = "microchip,93lc46b";
		reg = <0>;
		spi-max-frequency = <1000000>;
		spi-cs-high;
		data-size = <16>;
	};
};*/
&main_spi0 {
	status = "disabled";
};
&main_spi1 {
	status = "disabled";
};
&sdhci0 {
	/* emmc */
	bus-width = <8>;
	non-removable;
	ti,driver-strength-ohm = <50>;
	disable-wp;
};

&sdhci1 {
	/* SD/MMC */
	pinctrl-names = "default";
	bus-width = <4>;
	pinctrl-0 = <&main_mmc1_pins_default>;
	ti,driver-strength-ohm = <50>;
	disable-wp;
	no-1-8-v;/* disabling all the UHS modes */
};

&serdes_wiz0
{
	status = "disabled";
};

&usbss0 {
	ti,vbus-divider;
	ti,usb2-only;
};

&usb0 {
	dr_mode = "host";//"otg";
	maximum-speed = "high-speed";
	pinctrl-names = "default";
	pinctrl-0 = <&main_usb0_pins_default>;
};

&cpsw3g {
	pinctrl-names = "default";
	pinctrl-0 = <&mdio1_pins_default
		     &rgmii1_pins_default
		     &rgmii2_pins_default>;
		cpts@3d000 {
		ti,pps = <7 1>;
	};
};

&cpsw_port1 {
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy0>;
};

&cpsw_port2 {
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy1>;
};

&cpsw3g_mdio {
	reset-gpios = <&main_gpio1 49 GPIO_ACTIVE_LOW>,<&main_gpio0 31 GPIO_ACTIVE_LOW>;
	reset-delay-us = <2>; /* PHY datasheet states 1us min*/
	reset-post-delay-us = <2>;
	cpsw3g_phy0: ethernet-phy@1 {
		reg = <1>;	
		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
	};

	cpsw3g_phy1: ethernet-phy@0 {
		reg = <0>;
		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
	};
};

#define TS_OFFSET(pa, val)     (0x4+(pa)*4) (0x10000 | val)

&timesync_router {
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_cpts_pps>;

	/* Example of the timesync routing */
	mcu_cpts_pps: mcu-cpts-pps {
		pinctrl-single,pins = <
				/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
				TS_OFFSET(37, 22)
				/* pps [cpts genf1] in22 -> out25 [SYNC1_OUT pin] */
				TS_OFFSET(25, 22)
				>;
	};
};

/* set R5F subsystem 0 to single-CPU mode */
&main_r5fss0 {
	ti,cluster-mode = <2>;
};
&main_r5fss1 {
	ti,cluster-mode = <2>; 
};

&mailbox0_cluster2 {
	mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
		ti,mbox-rx = <0 0 2>;
		ti,mbox-tx = <1 0 2>;
	};

//	mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
//		ti,mbox-rx = <2 0 2>;
//		ti,mbox-tx = <3 0 2>;
//	};
};

&mailbox0_cluster3 {
	status = "disabled";
};

&mailbox0_cluster4 {
	mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
		ti,mbox-rx = <0 0 2>;
		ti,mbox-tx = <1 0 2>;
	};

//	mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
//		ti,mbox-rx = <2 0 2>;
//		ti,mbox-tx = <3 0 2>;
//	};
};

&mailbox0_cluster5 {
	status = "disabled";
};

&mailbox0_cluster6 {
	mbox_m4_0: mbox-m4-0 {
		ti,mbox-rx = <0 0 2>;
		ti,mbox-tx = <1 0 2>;
	};
};

&mailbox0_cluster7 {
	status = "disabled";
};

&serdes_ln_ctrl {
	idle-states = <AM64_SERDES0_LANE0_PCIE0>;
};

/*&serdes0 {
	serdes0_pcie_link: phy@0 {
		reg = <0>;
		cdns,num-lanes = <1>;
		#phy-cells = <0>;
		cdns,phy-type = <PHY_TYPE_PCIE>;
		resets = <&serdes_wiz0 1>;
	};
};*/
&serdes0 {
	status = "disabled";
};

/*&pcie0_rc {
	reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
	phys = <&serdes0_pcie_link>;
	phy-names = "pcie-phy";
	num-lanes = <1>;
};*/
&pcie0_rc {
	status = "disabled";
};

/*&pcie0_ep {
	phys = <&serdes0_pcie_link>;
	phy-names = "pcie-phy";
	num-lanes = <1>;
	status = "disabled";
};*/
&pcie0_ep {
	status = "disabled";
};

&tscadc0 {
	/* ADC is reserved for R5 usage */
	status = "reserved";
};

&ospi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&ospi0_pins_default>;

	flash@0{
		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;
		#address-cells = <1>;
		#size-cells = <1>;
	};
};

&main_mcan0 {   
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_mcan0_pins_default>;
	phys = <&transceiver1>;
};

&main_mcan1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_mcan1_pins_default>;
	phys = <&transceiver2>;
};

&icssg0_mdio {
	pinctrl-names = "default";
	pinctrl-0 = <&icssg0_mdio0_pins_default>;
	reset-gpios = <&main_gpio0 39 GPIO_ACTIVE_LOW>;
	reset-delay-us = <2>; /* PHY datasheet states 1us min*/
	reset-post-delay-us = <2>;
	status = "okay";
	
	icssg0_phy1: ethernet-phy@3 {
		reg = <0x3>;
//		tx-internal-delay-ps = <250>;
//		rx-internal-delay-ps = <2000>;
	};
//	icssg0_phy2: ethernet-phy@4 {
//		reg = <0x4>;
//		tx-internal-delay-ps = <250>;
//		rx-internal-delay-ps = <2000>;
//	};
};
&icssg0_emac0 {
        status = "okay";
        phy-handle = <&icssg0_phy1>;
        phy-mode = "mii";
};

&icssg0_emac1 {
        status = "disable";
};
&icssg0_iep0 {
	pinctrl-names = "default";
	pinctrl-0 = <&icssg0_iep0_pins_default>;
};

/*&icssg1_mdio {
	pinctrl-names = "default";
	pinctrl-0 = <&icssg1_mdio1_pins_default>;

	icssg1_phy1: ethernet-phy@0 {
		reg = <0xf>;
		tx-internal-delay-ps = <250>;
		rx-internal-delay-ps = <2000>;
	};
};*/
&icssg1_mdio {
	status = "disabled";
};

&icssg1_iep0 {
//	pinctrl-names = "default";
//	pinctrl-0 = <&icssg1_iep0_pins_default>;
		status = "disabled";
};

&ecap0 {
	/* PWM is available on Pin 1 of header J12 */
//	pinctrl-names = "default";
//	pinctrl-0 = <&main_ecap0_pins_default>;
	status = "disabled";
};

U-Boot 2021.01-00001-g7e12ed6f28-dirty (Jan 17 2025 - 16:31:59 +0800)

SoC:   AM64X SR2.0 HS-FS
Model: Texas Instruments AM642 EVM
EEPROM not available at 80, trying to read at 81
Reading on-board EEPROM at 0x51 failed -1
DRAM:  2 GiB
NAND:  0 MiB
MMC:   mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
EEPROM not available at 80, trying to read at 81
Reading on-board EEPROM at 0x51 failed -1
Net:   eth0: ethernet@8000000port@1
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1 is current device
SD/MMC found on device 1
Failed to load 'boot.scr'
1490 bytes read in 1 ms (1.4 MiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
Running uenvcmd ...
1 bytes read in 1 ms (1000 Bytes/s)
Already setup.
19079680 bytes read in 790 ms (23 MiB/s)
41116 bytes read in 4 ms (9.8 MiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 000000008fef2000, end 000000008fffffff ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.10.168-g2c23e6c538 (byf@byf-virtual-machine) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #3 SMP PREEMPT Fri Jan 17 16:17:15 CST 2025
[    0.000000] Machine model: Texas Instruments AM642 EVM
[    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
[    0.000000] printk: bootconsole [ns16550a0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a2000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node r5f-memory@a2100000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4000000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node m4f-dma-memory@a4000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4100000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node m4f-memory@a4100000, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: initialized node apps-shared-memory, compatible id dma-heap-carveout
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009e7fffff]
[    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a0ffffff]
[    0.000000]   node   0: [mem 0x00000000a1000000-0x00000000a1ffffff]
[    0.000000]   node   0: [mem 0x00000000a2000000-0x00000000a2ffffff]
[    0.000000]   node   0: [mem 0x00000000a3000000-0x00000000a3ffffff]
[    0.000000]   node   0: [mem 0x00000000a4000000-0x00000000a57fffff]
[    0.000000]   node   0: [mem 0x00000000a5800000-0x00000000a5ffffff]
[    0.000000]   node   0: [mem 0x00000000a6000000-0x00000000a7ffffff]
[    0.000000]   node   0: [mem 0x00000000a8000000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] cma: Reserved 512 MiB at 0x00000000dd000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 22 pages/cpu s51288 r8192 d30632 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=fc40000.spi.0:1m(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) root=PARTUUID=a974ccb8-02 rw rootfstype=ext4 rootwait
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1398904K/2097152K available (11200K kernel code, 1160K rwdata, 4304K rodata, 1856K init, 433K bss, 173960K reserved, 524288K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001840000
[    0.000000] ITS [mem 0x01820000-0x0182ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
[    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x0000000080030000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000006] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008547] Console: colour dummy device 80x25
[    0.013139] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023814] pid_max: default: 32768 minimum: 301
[    0.028638] LSM: Security Framework initializing
[    0.033424] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.040999] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.050950] rcu: Hierarchical SRCU implementation.
[    0.056210] Platform MSI: msi-controller@1820000 domain created
[    0.062575] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.071843] EFI services will not be available.
[    0.076734] smp: Bringing up secondary CPUs ...
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
[    0.090345] Detected VIPT I-cache on CPU1
[    0.090387] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
[    0.090402] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
[    0.090467] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.090596] smp: Brought up 1 node, 2 CPUs
[    0.119976] SMP: Total of 2 processors activated.
[    0.124789] CPU features: detected: 32-bit EL0 Support
[    0.130064] CPU features: detected: CRC32 instructions
[    0.143916] CPU: All CPU(s) started at EL2
[    0.148123] alternatives: patching kernel code
[    0.153926] devtmpfs: initialized
[    0.164293] KASLR disabled due to lack of seed
[    0.169102] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.179080] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.205456] pinctrl core: initialized pinctrl subsystem
[    0.211528] DMI not present or invalid.
[    0.216262] NET: Registered protocol family 16
[    0.222875] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.230284] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.238397] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.247171] thermal_sys: Registered thermal governor 'step_wise'
[    0.247178] thermal_sys: Registered thermal governor 'power_allocator'
[    0.253790] cpuidle: using governor menu
[    0.264767] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.271778] ASID allocator initialised with 65536 entries
[    0.305801] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.312679] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.319529] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.326376] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.334614] cryptd: max_cpu_qlen set to 1000
[    0.342555] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR2.0 JTAGID[0x1bb3802f] Detected
[    0.352115] iommu: Default domain type: Translated
[    0.357541] SCSI subsystem initialized
[    0.362032] mc: Linux media interface: v0.10
[    0.366426] videodev: Linux video capture interface: v2.00
[    0.372121] pps_core: LinuxPPS API ver. 1 registered
[    0.377194] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.386538] PTP clock support registered
[    0.390577] EDAC MC: Ver: 3.0.0
[    0.394641] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
[    0.401717] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
[    0.408544] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
[    0.416045] FPGA manager framework
[    0.419637] Advanced Linux Sound Architecture Driver Initialized.
[    0.427066] clocksource: Switched to clocksource arch_sys_counter
[    0.433643] VFS: Disk quotas dquot_6.6.0
[    0.437733] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.451259] Carveout Heap: Exported 32 MiB at 0x00000000a6000000
[    0.457560] NET: Registered protocol family 2
[    0.462290] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.471340] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.480129] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.488361] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.496105] TCP: Hash tables configured (established 16384 bind 16384)
[    0.503037] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.509953] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.517464] NET: Registered protocol family 1
[    0.522554] RPC: Registered named UNIX socket transport module.
[    0.528635] RPC: Registered udp transport module.
[    0.533444] RPC: Registered tcp transport module.
[    0.538257] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.544848] NET: Registered protocol family 44
[    0.549405] PCI: CLS 0 bytes, default 64
[    0.554251] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.567134] Initialise system trusted keyrings
[    0.571960] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.583177] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.589823] NFS: Registering the id_resolver key type
[    0.595083] Key type id_resolver registered
[    0.599363] Key type id_legacy registered
[    0.603546] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.610401] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.618221] 9p: Installing v9fs 9p2000 file system support
[    0.667117] Key type asymmetric registered
[    0.671328] Asymmetric key parser 'x509' registered
[    0.676374] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.683935] io scheduler mq-deadline registered
[    0.688565] io scheduler kyber registered
[    0.695116] pinctrl-single 4084000.pinctrl: 33 pins, size 132
[    0.701580] pinctrl-single f4000.pinctrl: 180 pins, size 720
[    0.708518] pinctrl-single a40000.timesync-router: 512 pins, size 2048
[    0.725000] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    0.748375] brd: module loaded
[    0.759854] loop: module loaded
[    0.764425] megasas: 07.714.04.00-rc1
[    0.771218] libphy: num_reset_gpios=-2
[    0.776559] tun: Universal TUN/TAP device driver, 1.6
[    0.782480] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    0.788902] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    0.795024] sky2: driver version 1.30
[    0.800172] VFIO - User Level meta-driver version: 0.3
[    0.806749] i2c /dev entries driver
[    0.811709] sdhci: Secure Digital Host Controller Interface driver
[    0.818049] sdhci: Copyright(c) Pierre Ossman
[    0.822944] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.830123] ledtrig-cpu: registered to indicate activity on CPUs
[    0.836791] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.845143] optee: probing for conduit method.
I/TC: Reserved shared memory is enabled
I/TC: Dynamic shared memory is enabled
I/TC: Normal World virtualization support is disabled
I/TC: Asynchronous notifications are disabled
[    0.849817] optee: revision 3.20 (8e74d476)
[    0.866480] optee: dynamic shared memory is enabled
[    0.876220] optee: initialized driver
[    0.882608] NET: Registered protocol family 17
[    0.887366] 9pnet: Installing 9P2000 support
[    0.891833] Key type dns_resolver registered
[    0.896711] Loading compiled-in X.509 certificates
[    0.919289] ti-sci 44043000.dmsc: lpm region is required for suspend but not provided.
[    0.927467] ti-sci 44043000.dmsc: ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
[    0.985862] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0
[    0.992386] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    1.000841] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
[    1.008488] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
[    1.014810] ti-sci-intr bus@f4000:bus@4000000:interrupt-controller1: Interrupt Router 5 domain created
[    1.024566] ti-sci-intr bus@f4000:interrupt-controller0: Interrupt Router 3 domain created
[    1.033399] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    1.049579] ti-udma 485c0100.dma-controller: Number of rings: 68
[    1.057413] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6)
[    1.067786] ti-udma 485c0000.dma-controller: Number of rings: 288
[    1.083198] ti-udma 485c0000.dma-controller: Channels: 44 (tchan: 29, rchan: 15)
[    1.094321] 4a00000.serial: ttyS0 at MMIO 0x4a00000 (irq = 15, base_baud = 3000000) is a 8250
[    1.104804] 4a10000.serial: ttyS1 at MMIO 0x4a10000 (irq = 16, base_baud = 3000000) is a 8250
[    1.115321] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 18, base_baud = 3000000) is a 8250
[    1.124118] printk: console [ttyS2] enabled
[    1.124118] printk: console [ttyS2] enabled
[    1.132564] printk: bootconsole [ns16550a0] disabled
[    1.132564] printk: bootconsole [ns16550a0] disabled
[    1.144323] 2810000.serial: ttyS3 at MMIO 0x2810000 (irq = 19, base_baud = 3000000) is a 8250
[    1.154508] 2820000.serial: ttyS4 at MMIO 0x2820000 (irq = 20, base_baud = 3000000) is a 8250
[    1.164718] 2830000.serial: ttyS5 at MMIO 0x2830000 (irq = 21, base_baud = 3000000) is a 8250
[    1.178188] spi-nor spi0.0: s28hs512t (65536 Kbytes)
[    1.183217] 7 cmdlinepart partitions found on MTD device fc40000.spi.0
[    1.189737] Creating 7 MTD partitions on "fc40000.spi.0":
[    1.195133] 0x000000000000-0x000000100000 : "ospi.tiboot3"
[    1.201954] 0x000000100000-0x000000300000 : "ospi.tispl"
[    1.208519] 0x000000300000-0x000000700000 : "ospi.u-boot"
[    1.215189] 0x000000700000-0x000000740000 : "ospi.env"
[    1.221514] 0x000000740000-0x000000780000 : "ospi.env.backup"
[    1.228513] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
[    1.235222] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
[    1.249043] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.255979] libphy: num_reset_gpios=2
[    1.259671] mdio_bus 8000f00.mdio: mii_bus 8000f00.mdio couldn't get reset GPIO
[    1.267446] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
[    1.280436] am65-cpsw-nuss 8000000.ethernet: Use random MAC address
[    1.286716] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
[    1.293845] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.300534] pps pps0: new PPS source ptp0
[    1.305023] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
[    1.315804] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
[    1.326741] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    1.337684] mmc0: CQHCI version 5.10
[    1.338054] mmc1: CQHCI version 5.10
[    1.353349] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.360337] libphy: num_reset_gpios=2
[    1.364049] libphy: reset_delay_us2
[    1.367536] libphy: reset_post_delay_us2
[    1.371478] libphy: reset_delay_us2
[    1.374956] libphy: reset_post_delay_us2
[    1.382767] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    1.382771] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    1.415087] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.425951] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.434113] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver TI DP83867
[    1.444637] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
[    1.452914] mmc1: new high speed SDHC card at address aaaa
[    1.459493] mmcblk1: mmc1:aaaa SC16G 14.8 GiB
[    1.468775]  mmcblk1: p1 p2
[    1.475673] ALSA device list:
[    1.478650]   No soundcards found.
[    1.495375] EXT4-fs (mmcblk1p2): warning: mounting fs with errors, running e2fsck is recommended
[    1.512222] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.520477] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.528681] mmc0: Command Queue Engine enabled
[    1.529571] devtmpfs: mounted
[    1.533178] mmc0: new HS200 MMC card at address 0001
[    1.537452] Freeing unused kernel memory: 1856K
[    1.541921] mmcblk0: mmc0:0001 G1M15L 29.6 GiB
[    1.545758] Run /sbin/init as init process
[    1.550424] mmcblk0boot0: mmc0:0001 G1M15L partition 1 31.5 MiB
[    1.560404] mmcblk0boot1: mmc0:0001 G1M15L partition 2 31.5 MiB
[    1.566610] mmcblk0rpmb: mmc0:0001 G1M15L partition 3 4.00 MiB, chardev (237:0)
[    1.899222] systemd[1]: System time before build time, advancing clock.
[    2.000019] NET: Registered protocol family 10
[    2.005916] Segment Routing with IPv6
[    2.066669] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
[    2.088818] systemd[1]: Detected architecture arm64.

Welcome to Arago 2021.09!

[    2.134162] systemd[1]: Set hostname to <am64xx-evm>.
[    2.500797] systemd[1]: /lib/systemd/system/startwlansta.service:7: Unknown key name 'After' in section 'Service', ignoring.
[    2.515731] systemd[1]: /lib/systemd/system/startwlanap.service:7: Unknown key name 'After' in section 'Service', ignoring.
[    2.558532] systemd[1]: Configuration file /lib/systemd/system/quectel.service is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway.
[    2.589647] systemd[1]: /lib/systemd/system/irqbalanced.service:6: Unknown key name 'ConditionCPUs' in section 'Unit', ignoring.
[    2.634579] systemd[1]: /lib/systemd/system/docker.socket:6: ListenStream= references a path below legacy directory /var/run/, updating /var/run/docker.sock → /run/docker.sock; please update the unit file accordingly.
[    2.817189] random: systemd: uninitialized urandom read (16 bytes read)
[    2.828596] systemd[1]: Created slice system-getty.slice.
[  OK  ] Created slice system-getty.slice.
[    2.851320] random: systemd: uninitialized urandom read (16 bytes read)
[    2.860364] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[    2.883317] random: systemd: uninitialized urandom read (16 bytes read)
[    2.892253] systemd[1]: Created slice system-syslog\x2dng.slice.
[  OK  ] Created slice system-syslog\x2dng.slice.
[    2.917520] systemd[1]: Created slice User and Session Slice.
[  OK  ] Created slice User and Session Slice.
[    2.939741] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password …ts to Console Directory Watch.
[    2.963659] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R…uests to Wall Directory Watch.
[    2.987640] systemd[1]: Reached target Paths.
[  OK  ] Reached target Paths.
[    3.003398] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    3.023383] systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
[    3.039421] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    3.078035] systemd[1]: Listening on RPCbind Server Activation Socket.
[  OK  ] Listening on RPCbind Server Activation Socket.
[    3.099487] systemd[1]: Reached target RPC Port Mapper.
[  OK  ] Reached target RPC Port Mapper.
[    3.127578] systemd[1]: Listening on Process Core Dump Socket.
[  OK  ] Listening on Process Core Dump Socket.
[    3.151755] systemd[1]: Listening on initctl Compatibility Named Pipe.
[  OK  ] Listening on initctl Compatibility Named Pipe.
[    3.179413] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[    3.188426] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    3.212141] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    3.228346] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    3.252185] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    3.275894] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    3.305588] systemd[1]: Mounting Huge Pages File System...
         Mounting Huge Pages File System...
[    3.329365] systemd[1]: Mounting POSIX Message Queue File System...
         Mounting POSIX Message Queue File System...
[    3.357251] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[    3.383915] systemd[1]: Mounting Temporary Directory (/tmp)...
         Mounting Temporary Directory (/tmp)...
[    3.406228] systemd[1]: Starting Create list of static device nodes for the current kernel...
         Starting Create list of st…odes for the current kernel...
[    3.437081] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[    3.455705] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[    3.473800] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    3.507281] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    3.540585] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems cryptodev: loading out-of-tree module taints kernel.
[0m...
[    3.567674] cryptodev: driver 1.10 loaded.
[    3.582360] systemd[1]: Starting udev Coldplug all Devices...
         Starting udev Coldplug all Devices...
[    3.609908] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
[    3.628216] systemd[1]: Started RPC Bind.
[  OK  ] Started RPC Bind.
[    3.644157] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Mounted Temporary Directory (/tmp).
[  OK  ] Started Create list of sta… nodes for the current kernel.
[  OK  ] Started Load Kernel Modules.
[  OK  ] Started Remount Root and Kernel File Systems.
         Mounting Kernel Configuration File System...
         Starting Flush Journal to Persistent Storage    3.826378] random: systemd-journal: uninitialized urandom read (16 bytes read)
0m...
[    3.847637] random: systemd: uninitialized urandom read (16 bytes read)
[    3.852504] systemd-journald[178]: Received client request to flush runtime journal.
         Starting Apply Kernel Variables...
[    3.872703] random: systemd-journal: uninitialized urandom read (16 bytes read)
         Starting Create Static Device Nodes in /dev...
[  OK  ] Mounted Kernel Configuration File System.
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /media/ram...
         Mounting /var/volatile...
         Starting udev Kernel Device Manager...
[  OK  ] Mounted /media/ram.
[  OK  ] Mounted /var/volatile.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Started Create Volatile Files and Directories.
[  OK  ] Started udev Kernel Device Manager.
         Starting Network Time Synchronization...
         Starting udev Wait for Complete Device Initialization...
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Set.
[  OK  ] Reached target System Time Synchronized.
[    4.931898] random: systemd: uninitialized urandom read (16 bytes read)
[    5.100773] random: crng init done
[    5.104391] random: 64 urandom warning(s) missed due to ratelimiting
[    5.114107] CAN device driver interface
[  OK  ] Started Load/Save Random Seed.
[    5.200850] at24 0-0050: supply vcc not found, using dummy regulator
[    5.248110] at24 0-0050: 256 byte 24c02 EEPROM, writable, 8 bytes/write
[    5.287800] davinci_mdio 30032400.mdio: Configuring MDIO in manual mode
[    5.300495] rtc-ds1307 1-0068: registered as rtc0
[    5.303390] libphy: num_reset_gpios=1
[    5.309219] libphy: reset_delay_us2
[    5.312920] libphy: reset_post_delay_us2
[    5.317309] rtc-ds1307 1-0068: setting system clock to 2023-02-28T15:49:09 UTC (1677599349)
[    5.376948] davinci_mdio 30032400.mdio: davinci mdio revision 1.7, bus freq 1000000
[    5.391178] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@a4000000
[    5.407665] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode
[    5.427273] k3-m4-rproc 5000000.m4fss: local reset is deasserted for device
[    5.443488] davinci_mdio 30032400.mdio: phy[3]: device 30032400.mdio:03, driver TI DP83620 10/100 Mbps PHY
[    5.445125] remoteproc remoteproc0: 5000000.m4fss is available
[    5.490515] remoteproc remoteproc0: powering up 5000000.m4fss
[    5.496600] remoteproc remoteproc0: Booting fw image am64-mcu-m4f0_0-fw, size 86432
[    5.511432]  remoteproc0#vdev0buffer: assigned reserved memory node m4f-dma-memory@a4000000
[    5.523491]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
[    5.535180] remoteproc remoteproc0: remote processor 5000000.m4fss is now up
[    5.637335] virtio_rpmsg_bus virtio0: rpmsg host is online
[    5.638362] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xd
[    5.655486] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xe
[    5.715304] platform 78000000.r5f: configured R5F for remoteproc mode
[    5.751004] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
[    5.787693] m_can_platform 20701000.can: m_can device registered (irq=36, version=32)
[    5.799593] remoteproc remoteproc1: 78000000.r5f is available
[    5.809962] m_can_platform 20711000.can: m_can device registered (irq=38, version=32)
[    5.826010] platform 78400000.r5f: configured R5F for remoteproc mode
[    5.833953] remoteproc remoteproc1: powering up 78000000.r5f
[    5.839951] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 273440
[    5.855051]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
[    5.864140] virtio_rpmsg_bus virtio1: rpmsg host is online
[    5.875276]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
[    5.881721] remoteproc remoteproc1: remote processor 78000000.r5f is now up
[    5.902403] platform 78400000.r5f: assigned reserved memory node r5f-dma-memory@a2000000
[    5.920476] remoteproc remoteproc2: 78400000.r5f is available
[    5.935150] remoteproc remoteproc2: powering up 78400000.r5f
[    5.941016] remoteproc remoteproc2: Booting fw image am64-main-r5f1_0-fw, size 93260
[    5.952441]  remoteproc2#vdev0buffer: assigned reserved memory node r5f-dma-memory@a2000000
[    5.961582] virtio_rpmsg_bus virtio2: rpmsg host is online
[    5.971046]  remoteproc2#vdev0buffer: registered virtio2 (type 7)
[    5.977408] remoteproc remoteproc2: remote processor 78400000.r5f is now up
[    5.987266] virtio_rpmsg_bus virtio2: creating channel rpmsg_chrdev addr 0xe
[    6.146791] remoteproc remoteproc3: 30034000.pru is available
[    6.175971] remoteproc remoteproc4: 30004000.rtu is available
[    6.215634] remoteproc remoteproc5: 3000a000.txpru is available
[    6.253973] remoteproc remoteproc6: 30038000.pru is available
[    6.301109] remoteproc remoteproc7: 30006000.rtu is available
[    6.378000] remoteproc remoteproc8: 3000c000.txpru is available
[    6.404941] remoteproc remoteproc9: 300b4000.pru is available
[    6.514773] remoteproc remoteproc10: 30084000.rtu is available
[    6.553460] remoteproc remoteproc11: 3008a000.txpru is available
[    6.589140] remoteproc remoteproc12: 300b8000.pru is available
[    6.617289] remoteproc remoteproc13: 30086000.rtu is available
[    6.684586] remoteproc remoteproc14: 3008c000.txpru is available
[    7.902382] icssg-prueth icssg0-eth: port 1: using random MAC addr: ae:d7:25:cc:6d:e6
[    7.975890] TI DP83620 10/100 Mbps PHY 30032400.mdio:03: attached PHY driver [TI DP83620 10/100 Mbps PHY] (mii_bus:phy_addr=30032400.mdio:03, irq=POLL)
[    7.997617] icssg-prueth icssg0-eth: TI PRU ethernet driver initialized: single EMAC mode
[    8.187646] usbcore: registered new interface driver usbfs
[    8.199344] usbcore: registered new interface driver hub
[    8.223328] usbcore: registered new device driver usb
[    8.421589] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    8.439487] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    8.448147] xhci-hcd xhci-hcd.0.auto: hcc params 0x200073c9 hci version 0x100 quirks 0x0000002000010010
[    8.457809] xhci-hcd xhci-hcd.0.auto: irq 536, io mem 0x0f410000
[    8.464228] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    8.469893] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    8.477658] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[    8.484496] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    8.492863] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    8.500205] usb usb1: Product: xHCI Host Controller
[    8.510457] usb usb1: Manufacturer: Linux 5.10.168-g2c23e6c538 xhci-hcd
[    8.517171] usb usb1: SerialNumber: xhci-hcd.0.auto
[    8.522951] hub 1-0:1.0: USB hub found
[  OK  ] Created slice system-systemd\x2dfsc[    8.526994] hub 1-0:1.0: 1 port detected
k.slice.
[    8.537241] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    8.546130] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[    8.554500] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    8.562085] usb usb2: Product: xHCI Host Controller
[    8.567934] usb usb2: Manufacturer: Linux 5.10.168-g2c23e6c538 xhci-hcd
[    8.575550] usb usb2: SerialNumber: xhci-hcd.0.auto
[    8.581449] hub 2-0:1.0: USB hub found
[    8.585458] hub 2-0:1.0: 1 port detected
[  OK  ] Found device /dev/mmcblk1p1.
[  OK  ] Started udev Wait for Complete Device Initialization.
[  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Timer service to update the IP on OLED each 10s.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
         Starting Docker Socket for the API.
[  OK  ] Listening on dropbear.socket.
         Starting Reboot and dump vmcore via kexec...
         Starting File System Check on /dev/mmcblk1p1...
[  OK  ] Listening on Docker Socket for the API.
[  OK  ] Started Reboot and dump vmcore via kexec.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started Job spooling tools.
[  OK  ] Started Periodic Command Scheduler.
[  OK  ] Started D-Bus System Message Bus.
         Starting Ethernet Bridge Filtering Tables...
         Starting Print notice about GPLv3 packages...
         Starting IPv6 Packet Filtering Framework...
         Starting IPv4 Packet Filtering Framework...
[  OK  ] Started irqbalance daemon.
         Starting Matrix GUI...
         Starting startwlanap...
         Starting startwlansta...
         Starting System Logger Daemon "default" instance...
         Starting Login Service...
[  OK  ] Started TEE Supplicant.
         Starting telnetd.service...
[  OK  ] Started startwlansta.
[  OK  ] Started startwlanap.
[  OK  ] Started IPv6 Packet Filtering Framework.
[  OK  ] Started IPv4 Packet Filtering Framework.
[  OK  ] Reached target Network (Pre).
         Starting Network Service...
[  OK  ] Started Matrix GUI.
[  OK  ] Started Ethernet Bridge Filtering Tables.
[  OK  ] Started File System Check on /dev/mmcblk1p1.
         Mounting /run/media/mmcblk1p1...
[  OK  ] Started telnetd.service.
         Starting LSB: Expand Rootfs of boot device...
         Starting syslog.service...
[    9.641971] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
[    9.692354] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[  OK  ] Mounted /run/media/mmcblk1p1.
[  OK  ] Started Network Service.
         Starting Wait for Network to be Configured...
         Starting Network Name Resolution...
[   10.263414] remoteproc remoteproc3: powering up 30034000.pru
[   10.348601] remoteproc remoteproc3: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 38224
[  OK  ] Started System Logger Daemon "default" instance.
[   10.400737] remoteproc remoteproc3: unsupported resource 5
[   10.423701] remoteproc remoteproc3: remote processor 30034000.pru is now up
[  OK  ] Started syslog.service.
[   10.489604] remoteproc remoteproc4: powering up 30004000.rtu
[  OK  ] Started LSB: Expand Rootfs of boot device.
[   10.541161] remoteproc remoteproc4: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30872
[   10.562308] remoteproc remoteproc4: remote processor 30004000.rtu is now up
[   10.606392] remoteproc remoteproc5: powering up 3000a000.txpru
[   10.660280] remoteproc remoteproc5: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 37328
[   10.671292] remoteproc remoteproc5: remote processor 3000a000.txpru is now up
[   10.717435] pps pps1: new PPS source ptp2
[   10.758325] net eth2: started
[  OK  ] Started Login Service.
[   11.010191] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
[   11.033754] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
[   11.120850] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:01] driver [TI DP83867] (irq=POLL)
[   11.120876] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
[   11.199390] startwlanap.sh[625]: AM64xSK-AP
[   11.306151] startwlanap.sh[625]: AM64xSK-AP_ ..>] [meshid <meshid>] [lowpri,flush,ap-force,duration-mandatory] [randomise[=<addr>/<mask>]] [ssid <ssid>*|passive] ..>] [meshid <meshid>] [lowpri,flush,ap-force,duration-mandatory] [randomise[=<addr>/<mask>]] [ssid <ssid>*|passive]
[   11.307065] startwlanap.sh[709]: sed: unmatched '/'
[   11.312439] startwlanap.sh[710]: adding wlan1 interface
[   11.326082] startwlanap.sh[712]: command failed: No such file or directory (-2)
[   11.361860] startwlanap.sh[713]: Configuration file: /usr/share/wl18xx/hostapd.conf
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
         Starting Avahi mDNS/DNS-SD Stack...
         Starting Enable and configure wl18xx bluetooth stack...
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
[  OK  ] Started quectel-CM.
         Starting Simple Network Ma…ent Protocol (SNMP) Daemon....
[   11.530464] startwlanap.sh[713]: Could not read interface wlan1 flags: No such device
[   11.530910] startwlanap.sh[713]: nl80211: Driver does not support authentication/association or connect commands
[   11.531140] startwlanap.sh[713]: nl80211: deinit ifname=wlan1 disabled_11b_rates=0
         Starting Permit User Sessions...
[  OK  ] Started Vsftpd ftp daemon.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Getty on tty1.
[   11.612939] startwlanap.sh[713]: Could not read interface wlan1 flags: No such device
[   11.613507] startwlanap.sh[713]: nl80211 driver initialization failed.
[   11.613952] startwlanap.sh[713]: wlan1: interface state UNINITIALIZED->DISABLED
[   11.614361] startwlanap.sh[713]: wlan1: AP-DISABLED
[   11.614759] startwlanap.sh[713]: wlan1: CTRL-EVENT-TERMINATING
[   11.615164] startwlanap.sh[713]: hostapd_free_hapd_data: Interface wlan1 wasn't started
[  OK  ] Started Serial Getty on ttyS1.
[  OK  ] Started Serial Getty on ttyS2.
[  OK  ] Reached target Login Prompts.
         Starting Synchronize System and HW clocks...
[  OK  ] Started Enable and configure wl18xx bluetooth stack.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[   12.323749] startwlanap.sh[738]: SIOCSIFADDR: No such device
[   12.335196] startwlanap.sh[738]: wlan1: ERROR while getting interface flags: No such device
[   12.353602] startwlanap.sh[738]: SIOCSIFNETMASK: No such device
[   12.380900] startwlanap.sh[738]: wlan1: ERROR while getting interface flags: No such device
[  OK  ] Started Simple Network Man…ement Protocol (SNMP) Daemon..
[   13.964544] startwlanap.sh[797]: iperf3: error - unable to start listener for connections: Cannot assign requested address
[   13.965358] startwlanap.sh[797]: iperf3: exiting
[   14.096130] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   14.105161] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[  OK  ] Started Synchronize System and HW clocks.
***************************************************************
***************************************************************
NOTICE: This file system contains the following GPLv3 packages:
        autoconf
        bash
        bc
        binutils
        cifs-utils
        coreutils-stdbuf
        coreutils
        cpio
        cpp-symlinks
        cpp
        dosfstools
        elfutils
        g++-symlinks
        g++
        gawk
        gcc-symlinks
        gcc
        gdb
        gdbserver
        gettext
        gstreamer1.0-libav
        gzip
        hidapi
        less
        libasm1
        libbfd
        libdw1
        libelf1
        libgdbm-compat4
        libgdbm6
        libgettextlib
        libgettextsrc
        libgmp10
        libidn2-0
        libmpc3
        libmpfr6
        libreadline8
        libunistring2
        m4
        make
        nettle
        parted
        tar
        which

If you do not wish to distribute GPLv3 components please remove
the above packages prior to distribution.  This can be done using
the opkg remove command.  i.e.:
    opkg remove <package>
Where <package> is the name printed in the list above

NOTE: If the package is a dependency of another package you
      will be notified of the dependent packages.  You should
      use the --force-removal-of-dependent-packages option to
      also remove the dependent packages as well
***************************************************************
***************************************************************
[  OK  ] Started Print notice about GPLv3 packages.

 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___|

Arago Project am64xx-evm ttyS2

Arago 2021.09 am64xx-evm ttyS2

am64xx-evm login: root
root@am64xx-evm:~# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:8250 mmio:0x04A00000 irq:15 tx:0 rx:0 DSR
1: uart:8250 mmio:0x04A10000 irq:16 tx:381 rx:0 RTS|DTR|DSR
2: uart:8250 mmio:0x02800000 irq:18 tx:13371 rx:42 RTS|DTR
3: uart:8250 mmio:0x02810000 irq:19 tx:0 rx:0 DSR
4: uart:8250 mmio:0x02820000 irq:20 tx:0 rx:0 DSR
5: uart:8250 mmio:0x02830000 irq:21 tx:0 rx:0 DSR
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0
8: uart:unknown port:00000000 irq:0
9: uart:unknown port:00000000 irq:0
root@am64xx-evm:~# stty -F /dev/ttyS1 speed 115200 cs8 -parenb -cstopb
115200
root@am64xx-evm:~# echo "abcdefg" > /dev/ttyS1

root@am64xx-evm:~# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:8250 mmio:0x04A00000 irq:15 tx:0 rx:0 DSR
1: uart:8250 mmio:0x04A10000 irq:16 tx:390 rx:0 RTS|DTR|DSR
2: uart:8250 mmio:0x02800000 irq:18 tx:15065 rx:267 RTS|DTR
3: uart:8250 mmio:0x02810000 irq:19 tx:0 rx:0 DSR
4: uart:8250 mmio:0x02820000 irq:20 tx:0 rx:0 DSR
5: uart:8250 mmio:0x02830000 irq:21 tx:0 rx:0 DSR
6: uart:unknown port:00000000 irq:0
7: uart:unknown port:00000000 irq:0
8: uart:unknown port:00000000 irq:0
9: uart:unknown port:00000000 irq:0
root@am64xx-evm:~#

  • Hi Wanglili,

    After testing, it was found that neither of these ports is working properly, but I use real-time checking of mcu_uart1 operation , can send and receive data. I printed out the information related to my device tree file and serial port operation. I hope you can help analyze it.Another phenomenon is that I use the command to view the serial port status. In any case, the sending count of mcu_uart1 is 381, and this number is displayed every time I power on.The test process is to enter the echo command in the debugger serial port, and send the data to the serial port of the PC through mcu_uart1.

    I don't quite understand what the problem on the UART port is, but the kernel v5.10 in SDK8.6 doesn't configure the MCU UART clock correctly, which leads to incorrect baud rate. Please apply the following kernel devicetree patch to fix the clock problem, and let me know if you still have issues with the MCU UART ports on your board.

    diff --git a/arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi
    index 48675cac40e3..79726e8f6520 100644
    --- a/arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi
    @@ -20,7 +20,6 @@ mcu_uart0: serial@4a00000 {
                    reg-shift = <2>;
                    reg-io-width = <4>;
                    interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
    -               clock-frequency = <48000000>;
                    current-speed = <115200>;
                    power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                    clocks = <&k3_clks 149 0>;
    @@ -33,7 +32,6 @@ mcu_uart1: serial@4a10000 {
                    reg-shift = <2>;
                    reg-io-width = <4>;
                    interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
    -               clock-frequency = <48000000>;
                    current-speed = <115200>;
                    power-domains = <&k3_pds 160 TI_SCI_PD_EXCLUSIVE>;
                    clocks = <&k3_clks 160 0>;
    

  • Hello,

        We are happy to hear from you. The version we are using is SDK8.6.42 and the version of linux is 5.10.168. Referring to what you said, I cancel the clock frequencies of mcu_uart0 and mcu_uart1 in k3-am64-mcu.dtsi, recompile the device tree, and pass the newly generated dtb file into the development board. After running again, the two serial ports still did not respond. Is there anything else that has not been considered.

  • Hi Wanglili,

    I tested mcu_uart0 on the AM64x SK EVM back when SDK8.6 was released, it should work with the devicetree patch above. I cannot think of what else could be missing in your test.

    Can you please explain how did you test the mcu uart ports? Any log showing the test will be helpful.

  • Hello,

        OK, I'll repeat it. Follow the documentation I uploaded, add mcu_uart0 and mcu_uart1 in the device tree, and delete the clock frequency in the arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi file you mentioned to recompile the device After the tree, pass the k3-am642-evm.dtb file into the hardware. On our board is the serial port 0 connected to the debug serial port of the PC, and after the system starts up,there are messages in the printing information that these two serial ports are successfully driven.

        

        At this time, I enter the cat /proc/tty/driver/serial command and can see the status of the corresponding serial port. This is the sending and receiving of serial port 0 is 0, but serial port 1 has a count when no operation is performed. 381。What's strange is that serial port 1 does not use flow control, but the flow control information appears in the information.I use either serial port 0 or 1 to send, and my corresponding PC serial port assistant cannot receive the information. Both hardware are connected on the real-time core.

  • Hi Wanglili,

    What is the output of command 'stty -F /dev/ttyS0' after you set the port termios with your stty command? Does the PC side set the same baud rate?

    Regarding the 381 bytes transmitted on mcu uart1, I am wondering if the IPC firmware is using the uart. Can you please try to remove all the IPC examples using the following command then reboot the board to see if the mcu uart1 still have the same problem?

    # rm -f /lib/firmware/am64-m*

  • Hi,

        After sending with the stty command, the serial port assistant on the PC side did not receive any data, and the baud rate setting is 115200, which is consistent with the actual setting. Use rm -f /lib/firmware/am64-m* and check the mcu uart1 information again. The count is still 381 after just starting. At present, we have no doubts anymore. I hope you can give some suggestions.We really appreciate your reply!

  • Hello,

        I can refer to e2e.ti.com/.../am6442-using-mcu_uart1-in-linux to implement mcu uart0 sending and mcu uart1 sending, but There are still some problems.

       1、mcu uart

    When mcu uart0 is sent, data can be received at the debug serial port of the PC, but when using the serial port of the PC to send data to mcu uart0, use cat /proc/tty/driver/serial to view the reception of mcu uart0 is always 0.I'm not sure where this is the problem.

    2、mcu uart1

    When I started the system, I found that without operating mcu uart1, the serial port on the PC side received the following content, which was the same as the system startup login, and the data count was exactly 381.When I use the command to send data through the serial port, the PC's serial port can receive data. When using the PC's serial port to send data to mcu uart1, check cat /proc/tty/driver/serial again. The corresponding mcu uart1 count is received correctly. But at the same time, the sent data has also been increased, and the sent data can also be received on the serial port of the PC. This part is uncertain about the reason。Print the login information. I found a suspicious place. The startup information started ttyS1.How should I modify this part?

  • Hi Wanglili,

    I am not sure why mcu uart0 doesn't receive showing in /proc/tty/driver/serial. We might need to double check the pinmux and board signal routing/soldering.

    For the problem on mcu uart1, it could be caused by systemd. Please run the following commands on the board then reboot the board and test again.

    # systemctl stop serial-getty@ttyS1.service
    # systemctl disable serial-getty@ttyS1.service

    You might also want to run the same commands for ttyS0 just in case this is the same cause on mcu uart0.

  • Hi,

        The MCU_UART on my hardware has been debugged normally, but it caused another problem. Since I am modifying the code in uboot and trying to change the SD card startup to emmc startup, uboot cannot start and only stays in the image display position below. Before changing this part, I can start it from emmc normally. Can you help analyze this part?

       

  • Hi Wanglili,

    This sounds like a different issue from the originally reported UART issue. Please create a new e2e thread for the new boot problem. Discussing two irrelevant issues on the single thread would cause confusing and be difficult to communicate back and forth.

  • But I think this is due to the increase in serial port related settings。

  • I thought you only enabled the MCU UARTs in kernel, how would it affect U-Boot?