This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

66AK2G12: K2G USB device mode not working

Part Number: 66AK2G12

Hi,

I have a application that needs to use both USB0 & USB1 as USB devices on our board. However, my PC still can not detect any USB device. I am wondering if usb-phy not working? or one or more kernel libraries not loaded? How do I debug?

[    0.254387] usbcore: registered new interface driver usbfs
[    0.254447] usbcore: registered new interface driver hub
[    0.254565] usbcore: registered new device driver usb
[    0.254803] usb_phy_generic usbphy:usb-phy@0: usbphy:usb-phy@0 supply vcc not found, using dummy regulator
[    0.254890] usb_phy_generic usbphy:usb-phy@0: Linked as a consumer to regulator.0
[    0.255112] usb_phy_generic usbphy:usb-phy@1: usbphy:usb-phy@1 supply vcc not found, using dummy regulator
[    0.255197] usb_phy_generic usbphy:usb-phy@1: Linked as a consumer to regulator.0

I update the device tree as following:

&keystone_usb0 {
    status = "okay";
};

&usb0_phy {
    status = "okay";
};

&usb0 {
    dr_mode = "peripheral";     
    status = "okay";
};

&keystone_usb1 {
    status = "okay";
};

&usb1_phy {
    status = "okay";
};

&usb1 {
    dr_mode = "peripheral";
    status = "okay";
};

I can see USB0_VBUS has 5v if an USB cable from PC connected to it.

Tom

  • Hi Tom,

    Did you load any USB gadget driver?

    What kernel version do you use?

  • Hi Bin,

    Linux 4.19.94-rt39-ga242ccf3f1. How do I load USB gadget driver? I manually loaded these two libraries, usb-core and phy-keystone:

    # modprobe usbcore
    [  355.229871] usbcore: registered new interface driver usbfs
    [  355.251906] usbcore: registered new interface driver hub
    [  355.267153] usbcore: registered new device driver usb
    # modprobe phy-keystone
    [  403.558398] usb_phy_generic usbphy:usb-phy@0: usbphy:usb-phy@0 supply vcc not found, using dummy regulator
    [  403.578456] usb_phy_generic usbphy:usb-phy@0: Linked as a consumer to regulator.0
    [  403.594156] usb_phy_generic usbphy:usb-phy@1: usbphy:usb-phy@1 supply vcc not found, using dummy regulator
    [  403.618558] usb_phy_generic usbphy:usb-phy@1: Linked as a consumer to regulator.0
    #

  • Tom,

    What do you see with command 'ls -l /sys/class/udc/'?

  • Bin,

    Here is the response:

    # ls -l /sys/class/udc/
    ls: /sys/class/udc/: No such file or directory

  • Tom,

    It means the USB module is not initialized properly for device mode. Actually you shouldn't need to manually load usb-core and phy-keystone. All these drivers should be loaded automatically.

    Either your board device tree doesn't configure USB correctly, or your kernel doesn't enable all necessary USB drivers. Attached below is the default kernel defconfig I copied from Processor SDK v6.3. Please use it as the default config and adjust according for your board, but don't modify anything USB related, and recompile the kernel. If everything is done correctly, you should see two entries under /sys/class/udc/ folder.

    tisdk_k2g-evm_defconfig.txt

  • Bin,

    After comparison, I found our USB config portion is exactly the same as that in your tisdk defconfig file. So, I double checked our device tree. The /keystone-k2g.dtsi file is not changed. I can see that we changed mmc, network portion etc per our board design, but the only change on USB is to change usb0 dr_mode from "host" to "peripheral". I would like to send you our dts file, however, it looks like the message log has no tool to send an attached file. Can you give me your email address? you can send me in a private message if you prefer.

    I am also wondering if your startup script has something important to USB?

    Tom

  • Hi Tom,

    This E2E does support attaching files. I will help you later on this.

    It does sound your kernel config and device tree shouldn't cause the issue. Can you please attach the USB portion of your board schematics, between the SoC to the USB connectors?

  • Bin,

    Thanks.

    Attached is our dts file and

    // SPDX-License-Identifier: GPL-2.0
    /*
     * Device Tree Source for K2G EVM
     *
     * Copyright (C) 2016-2017 Texas Instruments Incorporated - http://www.ti.com/
     */
    /dts-v1/;
    
    #include <dt-bindings/sound/ti-mcasp.h>
    #include <dt-bindings/sound/sii902x-audio.h>
    #include "keystone-k2g.dtsi"
    
    / {
    	compatible =  "ti,k2g-evm", "ti,k2g", "ti,keystone";
    	model = "Texas Instruments K2G General Purpose EVM";
    
    	memory@800000000 {
    		device_type = "memory";
    		reg = <0x00000008 0x00000000 0x00000000 0x40000000>;
    	};
    
    	reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		dsp_common_mpm_memory: dsp-common-mpm-memory@81d000000 {
    			compatible = "ti,keystone-dsp-mem-pool";
    			reg = <0x00000008 0x1d000000 0x00000000 0x2800000>;
    			no-map;
    			status = "okay";
    		};
    
    		dsp_common_memory: dsp-common-memory@81f800000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
    			reusable;
    			status = "okay";
    		};
    	};
    
    	vcc3v3_dcin_reg: fixedregulator-vcc3v3-dcin {
    //		status = "disable";
    		compatible = "regulator-fixed";
    		regulator-name = "mmc0_fixed";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-always-on;
    	};
    
    	vcc1v8_ldo1_reg: fixedregulator-vcc1v8-ldo1 {
    	//	status = "disable";
    		compatible = "regulator-fixed";
    		regulator-name = "ldo1";
    	};
    
    	/* This is actually coming from TPS659118:LDO2_1V8 */
    	vcc1v8_aud_reg: fixedregulator-vcc1v8-aud {
    //		status = "disable";
    		compatible = "regulator-fixed";
    		regulator-name = "vcc1v8_aud_fixed";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		regulator-always-on;
    	};
    
    	hdmi: connector {
    		compatible = "hdmi-connector";
    		label = "hdmi";
    
    		status = "disable";
    		type = "a";
    
    		port {
    			hdmi_connector_in: endpoint {
    				remote-endpoint = <&sii9022_out>;
    			};
    		};
    	};
    
    	sound0: sound@0 {
    		status = "disable";
    
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "K2G-EVM";
    		simple-audio-card,widgets =
    			"Headphone", "Headphone Jack",
    			"Line", "Line In";
    		simple-audio-card,routing =
    			"Headphone Jack",	"HPLOUT",
    			"Headphone Jack",	"HPROUT",
    			"LINE1L",		"Line In",
    			"LINE1R",		"Line In";
    
    		simple-audio-card,dai-link@0 {
    			format = "i2s";
    			bitclock-master = <&sound0_0_master>;
    			frame-master = <&sound0_0_master>;
    			sound0_0_master: cpu {
    				sound-dai = <&mcasp2>;
    				clocks = <&k2g_clks 0x6 1>;
    				system-clock-id = <MCASP_CLK_HCLK_AUXCLK>;
    			};
    
    			codec {
    				sound-dai = <&tlv320aic3106>;
    				system-clock-frequency = <12288000>;
    			};
    		};
    
    		simple-audio-card,dai-link@1 {
    		status = "disable";
    			format = "i2s";
    			bitclock-master = <&sound0_1_master>;
    			frame-master = <&sound0_1_master>;
    			sound0_1_master: cpu {
    				sound-dai = <&mcasp2>;
    				clocks = <&k2g_clks 0x6 1>;
    				system-clock-id = <MCASP_CLK_HCLK_AUXCLK>;
    			};
    
    			codec {
    				sound-dai = <&sii9022>;
    				system-clock-frequency = <12288000>;
    			};
    		};
    	};
    
    	sii9022_mclk: sii9022_mclk {
    		status = "disable";
                   compatible = "fixed-clock";
                   #clock-cells = <0>;
                   clock-frequency = <12288000>;
           };
    };
    
    &k2g_pinctrl {
    	uart0_pins: pinmux_uart0_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x11cc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
    			K2G_CORE_IOPAD(0x11d0) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0)	/* uart0_txd.uart0_txd */
    		>;
    	};
    
    	mmc0_pins: pinmux_mmc0_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1300) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)	/* mmc0_dat3.mmc0_dat3 */
    			K2G_CORE_IOPAD(0x1304) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)	/* mmc0_dat2.mmc0_dat2 */
    			K2G_CORE_IOPAD(0x1308) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)	/* mmc0_dat1.mmc0_dat1 */
    			K2G_CORE_IOPAD(0x130c) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)	/* mmc0_dat0.mmc0_dat0 */
    			K2G_CORE_IOPAD(0x1310) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)	/* mmc0_clk.mmc0_clk */
    			K2G_CORE_IOPAD(0x1314) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)	/* mmc0_cmd.mmc0_cmd */
    			K2G_CORE_IOPAD(0x12ec) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3)	/* mmc0_sdcd.gpio1_12 */
    		>;
    	};
    
    	mmc1_pins: pinmux_mmc1_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x10ec) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat7.mmc1_dat7 */
    			K2G_CORE_IOPAD(0x10f0) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat6.mmc1_dat6 */
    			K2G_CORE_IOPAD(0x10f4) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat5.mmc1_dat5 */
    			K2G_CORE_IOPAD(0x10f8) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat4.mmc1_dat4 */
    			K2G_CORE_IOPAD(0x10fc) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat3.mmc1_dat3 */
    			K2G_CORE_IOPAD(0x1100) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat2.mmc1_dat2 */
    			K2G_CORE_IOPAD(0x1104) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat1.mmc1_dat1 */
    			K2G_CORE_IOPAD(0x1108) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_dat0.mmc1_dat0 */
    			K2G_CORE_IOPAD(0x110c) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_clk.mmc1_clk */
    			K2G_CORE_IOPAD(0x1110) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* mmc1_cmd.mmc1_cmd */
    		>;
    	};
    
    	i2c0_pins: pinmux_i2c0_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x137c) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* i2c0_scl.i2c0_scl */
    			K2G_CORE_IOPAD(0x1380) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* i2c0_sda.i2c0_sda */
    		>;
    	};
    
    	i2c1_pins: pinmux_i2c1_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1384) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* i2c1_scl.i2c1_scl */
    			K2G_CORE_IOPAD(0x1388) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* i2c1_sda.i2c1_sda */
    		>;
    	};
    
    	// TODO: Need to determine PAD value for i2c2
    	i2c2_pins: pinmux_i2c2_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x138c) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* i2c2_scl.i2c2_scl */
    			K2G_CORE_IOPAD(0x1390) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)	/* i2c2_sda.i2c2_sda */
    		>;
    	};
    
    	ecap0_pins: ecap0_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1374) (BUFFER_CLASS_B | MUX_MODE4)	/* pr1_mdio_data.ecap0_in_apwm0_out */
    		>;
    	};
    
    	spi0_pins: pinmux_spi0_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1190) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi0_scs0.spi0_scs0 */
    			K2G_CORE_IOPAD(0x1194) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi0_scs0.spi0_scs1 */
    			K2G_CORE_IOPAD(0x1198) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi0_clk.spi0_clk */
    			K2G_CORE_IOPAD(0x119c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi0_miso.spi0_miso */
    			K2G_CORE_IOPAD(0x11a0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi0_mosi.spi0_mosi */
    		>;
    	};
    
    	spi1_pins: pinmux_spi1_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x11a4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi1_scs0.spi1_scs0 */
    			K2G_CORE_IOPAD(0x11ac) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi1_clk.spi1_clk */
    			K2G_CORE_IOPAD(0x11b0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi1_miso.spi1_miso */
    			K2G_CORE_IOPAD(0x11b4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* spi1_mosi.spi1_mosi */
    		>;
    	};
    
    	spi3_pins: pinmux_spi3_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1158) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)	/* spi3_scs0.spi3_scs0 */
    			K2G_CORE_IOPAD(0x1160) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)	/* spi3_clk.spi3_clk */
    			K2G_CORE_IOPAD(0x1164) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)	/* spi3_miso.spi3_miso */
    			K2G_CORE_IOPAD(0x1168) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE1)	/* spi3_mosi.spi3_mosi */
    		>;
    	};
    
    	qspi_pins: pinmux_qspi_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1204) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* qspi_clk.qspi_clk */
    			K2G_CORE_IOPAD(0x1208) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* qspi_rclk.qspi_rclk */
    			K2G_CORE_IOPAD(0x120c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* qspi_d0.qspi_d0 */
    			K2G_CORE_IOPAD(0x1210) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* qspi_d1.qspi_d1 */
    			K2G_CORE_IOPAD(0x1214) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* qspi_d2.qspi_d2 */
    			K2G_CORE_IOPAD(0x1218) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* qspi_d3.qspi_d3 */
    			K2G_CORE_IOPAD(0x121c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* qspi_csn0.qspi_csn0 */
    		>;
    	};
    
    	uart2_pins: pinmux_uart2_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x11ec) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)      /* uart2_rxd.uart2_rxd */
    			K2G_CORE_IOPAD(0x11f0) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0)      /* uart2_txd.uart2_txd */
    		>;
    	};
    
    	dcan0_pins: pinmux_dcan0_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x11fc) (BUFFER_CLASS_B | PULL_DISABLE  | MUX_MODE0)	/* dcan0tx.dcan0tx */
    			K2G_CORE_IOPAD(0x1200) (BUFFER_CLASS_B | PIN_PULLDOWN  | MUX_MODE0)	/* dcan0rx.dcan0rx */
    		>;
    	};
    
    	dcan1_pins: pinmux_dcan1_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1224) (BUFFER_CLASS_B | PULL_DISABLE  | MUX_MODE1)	/* qspicsn2.dcan1tx */
    			K2G_CORE_IOPAD(0x1228) (BUFFER_CLASS_B | PIN_PULLDOWN  | MUX_MODE1)	/* qspicsn3.dcan1rx */
    		>;
    	};
    
    	emac_pins: pinmux_emac_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x113C) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_RXD1.RGMII_RXD1 */
    			K2G_CORE_IOPAD(0x1138) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_RXD2.RGMII_RXD2 */
    			K2G_CORE_IOPAD(0x1134) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_RXD3.RGMII_RXD3 */
    			K2G_CORE_IOPAD(0x1140) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_RXD0.RGMII_RXD0 */
    			K2G_CORE_IOPAD(0x1178) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_TXD0.RGMII_TXD0 */
    			K2G_CORE_IOPAD(0x1174) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_TXD1.RGMII_TXD1 */
    			K2G_CORE_IOPAD(0x1170) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_TXD2.RGMII_TXD2 */
    			K2G_CORE_IOPAD(0x116C) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_TXD3.RGMII_TXD3 */
    			K2G_CORE_IOPAD(0x1154) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_TXCLK.RGMII_TXC */
    			K2G_CORE_IOPAD(0x117C) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_TXEN.RGMII_TXCTL */
    			K2G_CORE_IOPAD(0x1120) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_RXCLK.RGMII_RXC */
    			K2G_CORE_IOPAD(0x1144) (BUFFER_CLASS_D | PULL_DISABLE | MUX_MODE1)	/* MII_RXDV.RGMII_RXCTL */
    		>;
    	};
    
    	mdio_pins: pinmux_mdio_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x118C) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* MDIO_CLK.MDIO_CLK */
    			K2G_CORE_IOPAD(0x1188) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0)	/* MDIO_DATA.MDIO_DATA */
    		>;
    	};
    
    	vout_pins: pinmux_vout_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1078) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata23.dssdata23 */
    			K2G_CORE_IOPAD(0x107c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata22.dssdata22 */
    			K2G_CORE_IOPAD(0x1080) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata21.dssdata21 */
    			K2G_CORE_IOPAD(0x1084) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata20.dssdata20 */
    			K2G_CORE_IOPAD(0x1088) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata19.dssdata19 */
    			K2G_CORE_IOPAD(0x108c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata18.dssdata18 */
    			K2G_CORE_IOPAD(0x1090) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata17.dssdata17 */
    			K2G_CORE_IOPAD(0x1094) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata16.dssdata16 */
    			K2G_CORE_IOPAD(0x1098) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata15.dssdata15 */
    			K2G_CORE_IOPAD(0x109c) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata14.dssdata14 */
    			K2G_CORE_IOPAD(0x10a0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata13.dssdata13 */
    			K2G_CORE_IOPAD(0x10a4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata12.dssdata12 */
    			K2G_CORE_IOPAD(0x10a8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata11.dssdata11 */
    			K2G_CORE_IOPAD(0x10ac) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata10.dssdata10 */
    			K2G_CORE_IOPAD(0x10b0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata9.dssdata9 */
    			K2G_CORE_IOPAD(0x10b4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata8.dssdata8 */
    			K2G_CORE_IOPAD(0x10b8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata7.dssdata7 */
    			K2G_CORE_IOPAD(0x10bc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata6.dssdata6 */
    			K2G_CORE_IOPAD(0x10c0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata5.dssdata5 */
    			K2G_CORE_IOPAD(0x10c4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata4.dssdata4 */
    			K2G_CORE_IOPAD(0x10c8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata3.dssdata3 */
    			K2G_CORE_IOPAD(0x10cc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata2.dssdata2 */
    			K2G_CORE_IOPAD(0x10d0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata1.dssdata1 */
    			K2G_CORE_IOPAD(0x10d4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssdata0.dssdata0 */
    			K2G_CORE_IOPAD(0x10d8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssvsync.dssvsync */
    			K2G_CORE_IOPAD(0x10dc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dsshsync.dsshsync */
    			K2G_CORE_IOPAD(0x10e0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dsspclk.dsspclk */
    			K2G_CORE_IOPAD(0x10e4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssde.dssde */
    			K2G_CORE_IOPAD(0x10e8) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* dssfid.dssfid */
    		>;
    	};
    
    	mcasp2_pins: pinmux_mcasp2_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1234) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4)	/* pr0_pru_gpo2.mcasp2_axr2 */
    			K2G_CORE_IOPAD(0x1238) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4)	/* pr0_pru_gpo3.mcasp2_axr3 */
    			K2G_CORE_IOPAD(0x1254) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4)	/* pr0_pru_gpo10.mcasp2_afsx */
    			K2G_CORE_IOPAD(0x125c) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE4)	/* pr0_pru_gpo12.mcasp2_aclkx */
    		>;
    	};
    
    	gpio_pins: pinmux_gpio_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1130) (PIN_PULLDOWN | MUX_MODE3)	/* GPIO0_76 */
    
    //			K2G_CORE_IOPAD(0x118C) (PIN_PULLDOWN | MUX_MODE3)	/* GPIO0_98 -- MDIO_CLK.MDIO_CLK */
    //			K2G_CORE_IOPAD(0x1188) (PIN_PULLDOWN | MUX_MODE3)	/* GPIO0_97 -- MDIO_DATA.MDIO_DATA */
    //			K2G_CORE_IOPAD(0x1224) (PIN_PULLDOWN | MUX_MODE3)	/* GPIO1_66 -- GPIO1_66 */
    //			K2G_CORE_IOPAD(0x1228) (PIN_PULLDOWN | MUX_MODE3)	/* GPIO1_67 -- GPIO1_67 */
    			
    		>;
    	};
    	gpio1_pins: pinmux_gpio1_pins {
    		pinctrl-single,pins = <
    			K2G_CORE_IOPAD(0x1224) (PIN_PULLDOWN | MUX_MODE3)	/* GPIO1_66 -- GPIO1_66 */
    			K2G_CORE_IOPAD(0x1228) (PIN_PULLDOWN | MUX_MODE3)	/* GPIO1_67 -- GPIO1_67 */
    			
    		>;
    	};
    };
    
    &uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart0_pins>;
    	status = "okay";
    };
    
    &gpio1 {
    	status = "okay";
    	uart_exp_rst {
    			gpio-hog;
    			gpios = <66 GPIO_ACTIVE_LOW>;
    			output-low;
    			line-name = "uart_exp_reset";
    	};
    
    /*
    	uart_exp_irq {
    			gpio-hog;
    			gpios = <67 GPIO_ACTIVE_HIGH>;
    			input;
    			line-name = "uart_exp_int";
    	};
    */
    };
    
    &mmc0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc0_pins>;
    	vmmc-supply = <&vcc3v3_dcin_reg>;
    	vqmmc-supply = <&vcc3v3_dcin_reg>;
    //	cd-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
    	status = "okay";
    //	max-frequency = <32000000>;
    };
    
    &mmc1 {
    	//status = "disabled";
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc1_pins>;
    	vmmc-supply = <&vcc3v3_dcin_reg>; /* VCC3V3_EMMC is connected to VCC3V3_DCIN */
    	vqmmc-supply = <&vcc1v8_ldo1_reg>;
    	ti,non-removable;
    	status = "okay";
    };
    
    &pcie0_phy {
    	status = "okay";
    	link-rate-kbps = <2500000>;  // Try slower?
    };
    
    &pcie0 {
    	status = "okay";
    };
    
    &dsp0 {
    	memory-region = <&dsp_common_memory>;
    	status = "okay";
    };
    
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins>;
    	status = "okay";
    
    	rtc@68 {
    		compatible = "dallas,ds1307";
    		reg = <0x68>;
    		status = "okay";
    	};
    
    	eeprom@50 {
    //		compatible = "atmel,24c16";
    		compatible = "24c16";
    		reg = <0x50>;
    		pagesize = <16>;
    		status = "okay";
    	};
    
    };
    
    &keystone_usb0 {
    	status = "okay";
    };
    
    &usb0_phy {
    	status = "okay";
    };
    
    &usb0 {
    	dr_mode = "peripheral";		//options: "host","peripheral"
    	status = "okay";
    };
    
    &keystone_usb1 {
    	status = "okay";
    };
    
    &usb1_phy {
    	status = "okay";
    };
    
    &usb1 {
    	dr_mode = "peripheral";
    	status = "okay";
    };
    
    &ecap0 {
    //	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&ecap0_pins>;
    };
    
    &spi0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi0_pins>;
    	status = "okay";
    
    	ex_16bit_spi@0 {
    		#address-cells = <1>;
    		#size-cells = <1>;
    		compatible = "ex_16bit_spi_base";
    		reg = <0>;
    		spi-max-frequency = <1000000>;
    		mode = <0>;
    //		no_endian_swap;
    	};
    };
    
    &spi1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi1_pins>;
    //	status = "okay";
    
    	spi_nor: flash@0 {
    		#address-cells = <1>;
    		#size-cells = <1>;
    		compatible = "jedec,spi-nor";
    		spi-max-frequency = <5000000>;
    		m25p,fast-read;
    		reg = <0>;
    
    		partition@0 {
    			label = "u-boot-spl";
    			reg = <0x0 0x100000>;
    			read-only;
    		};
    
    		partition@1 {
    			label = "misc";
    			reg = <0x100000 0xf00000>;
    		};
    	};
    };
    
    &spi3 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi3_pins>;
    	status = "okay";
    
    	/* VS3 Program: MT25QU256, instead using Winbond w25q256jw */
    	vs3_flash: flash@0 { //compatible m25p80
    		#address-cells = <1>;
    		#size-cells = <1>;
    		compatible = "st,m25p80","jedec,spi-nor";
    		spi-max-frequency = <10000000>; //<125000000>
    		reg = <0>;
    		force-addr-width = <3>;
    		spi-rx-bus-width = <1>;
    		spi-tx-bus-width = <1>;
    		partition@0 {
    		    linux,mtd-name = "vs3-flash";
    		    label = "vs3-flash";
    		    reg = <0x0 0x2000000>;
    		};
    	};
    };
    
    &qspi {
    //	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&qspi_pins>;
    	cdns,rclk-en;
    
    	flash0: m25p80@0 {
    		compatible = "s25fl512s", "jedec,spi-nor";
    		reg = <0>;
    		spi-tx-bus-width = <1>;
    		spi-rx-bus-width = <4>;
    		spi-max-frequency = <96000000>;
    		#address-cells = <1>;
    		#size-cells = <1>;
    		cdns,read-delay = <5>;
    		cdns,tshsl-ns = <500>;
    		cdns,tsd2d-ns = <500>;
    		cdns,tchsh-ns = <119>;
    		cdns,tslch-ns = <119>;
    
    		partition@0 {
    			label = "QSPI.u-boot-spl-os";
    			reg = <0x00000000 0x00100000>;
    		};
    		partition@1 {
    			label = "QSPI.u-boot-env";
    			reg = <0x00100000 0x00040000>;
    		};
    		partition@2 {
    			label = "QSPI.skern";
    			reg = <0x00140000 0x0040000>;
    		};
    		partition@3 {
    			label = "QSPI.pmmc-firmware";
    			reg = <0x00180000 0x0040000>;
    		};
    		partition@4 {
    			label = "QSPI.kernel";
    			reg = <0x001C0000 0x0800000>;
    		};
    		partition@5 {
    			label = "QSPI.file-system";
    			reg = <0x009C0000 0x3640000>;
    		};
    	};
    };
    
    &uart2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart2_pins>;
    	status = "okay";
    };
    
    &dcan0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&dcan0_pins>;
    //	status = "okay";
    };
    
    &dcan1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&dcan1_pins>;
    //	status = "okay";
    };
    
    &qmss {
    //	status = "okay";
    };
    
    &knav_dmas {
    //	status = "okay";
    };
    
    /*
    ethphy0: ethernet-phy@0 {
    	reg = <0>;
    
    	fixed-link {
    		speed = <1000>;
    		full-duplex;
    	};
    };
    */
    
    &mdio {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mdio_pins>;
    	status = "okay";
    
    	ethphy0: ethernet-phy@0 {
    		reg = <0>;
    
    		fixed-link {
    			speed = <1000>;
    			full-duplex;
    		};
    
    	};
    };
    
    &gbe0 {
    	phy-handle = <&ethphy0>;
    	phy-mode = "rgmii-id";
    //	phy-mode = "rgmii-rxid";
    	status = "okay";
    
    		switch@0 {
    			compatible = "marvell,mv88e6085";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <0>;
    		//	reset = <&gpio0 49 1>;
    
    			ports {
    				#address-cells = <1>;
    				#size-cells = <0>;
    
    				port@0 {
    					reg = <0>;
    					label = "extlan";
    				};
    
    				port@1 {
    					reg = <1>;
    					label = "flexo";
    				};
    
    				switchport5: port@5 {
    					reg = <5>;
    					label = "cpu";
    					phy-mode = "rgmii-id";
    					ethernet = <&gbe0>;
    					fixed-link {
    						speed = <1000>;
    						full-duplex;
    					};
    				};
    			};
    		};
    
    };
    
    &netcp {
    	pinctrl-names = "default";
    	pinctrl-0 = <&emac_pins>;
    	status = "okay";
    };
    
    &i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c1_pins>;
    	status = "okay";
    	clock-frequency = <400000>;
    
    	sii9022: sii9022@3b {
    		#sound-dai-cells = <0>;
    		compatible = "sil,sii9022";
    		reg = <0x3b>;
    		status = "disable";
    
    		i2s-fifo-routing = <
    			(ENABLE_BIT|CONNECT_SD0)
    			0
    			0
    			0
    		>;
    		clocks = <&sii9022_mclk>;
    
    		ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			port@0 {
    				reg = <0>;
    
    				sii9022_in: endpoint {
    					remote-endpoint = <&dpi_out>;
    				};
    			};
    
    			port@1 {
    				reg = <1>;
    
    				sii9022_out: endpoint {
    					remote-endpoint = <&hdmi_connector_in>;
    				};
    			};
    		};
    	};
    
    	tlv320aic3106: tlv320aic3106@1b {
    		#sound-dai-cells = <0>;
    		compatible = "ti,tlv320aic3106";
    		reg = <0x1b>;
    		//status = "okay";
    
    		// Regulators 
    		AVDD-supply = <&vcc3v3_dcin_reg>;
    		IOVDD-supply = <&vcc3v3_dcin_reg>;
    		DRVDD-supply = <&vcc3v3_dcin_reg>;
    		DVDD-supply = <&vcc1v8_aud_reg>;
    	};
    
    };
    
    &i2c2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c2_pins>;
    	status = "okay";
    	clock-frequency = <400000>;
    
    	i2c-mux@70 {
    		compatible = "nxp,pca9548";
    		#address-cells = <1>;
    		#size-cells = <0>;
    		reg = <0x70>;
    
    		i2c@1 { // EDID minder
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <1>;
    			/* 24AA044 edid eeprom */
    			eeprom@50 {
    				compatible = "microchip,24c04";
    				reg = <0x50>;
    				pagesize = <16>;
    			};
    		};
    
    		i2c@2 { // VS3000
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <2>;
    		};
    
    		//i2c@3 - CPLD
    		//i2c@4 - PCIe Sw - no need
    		i2c@5 { 
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <5>;
    
    			ds1307: rtc@68 {
    				compatible = "dallas,ds1307";
    				reg = <0x68>;
    			};			
    		};
    
    		i2c@6 { // 
    			#address-cells = <1>;
    			#size-cells = <0>;
    			reg = <6>;
    
    			temperature-sensor@4c {
    		        	compatible = "national,lm63";
    		            	reg = <0x4c>;
    		    	};
    		};
    	};
    };
    
    &dss {
    	pinctrl-names = "default";
    	pinctrl-0 = <&vout_pins>;
    //	status = "ok";
    
    	port {
    		dpi_out: endpoint {
    			remote-endpoint = <&sii9022_in>;
    			data-lines = <24>;
    		};
    	};
    };
    
    &k2g_clks {
    	/* on the board 22.5792MHz is connected to AUDOSC_IN */
    	assigned-clocks = <&k2g_clks 0x4c 2>;
    	assigned-clock-rates = <22579200>;
    };
    
    &mcasp2 {
    	#sound-dai-cells = <0>;
    
    	pinctrl-names = "default";
    	pinctrl-0 = <&mcasp2_pins>;
    
    	assigned-clocks = <&k2g_clks 0x6 1>;
    	assigned-clock-parents = <&k2g_clks 0x6 2>;
    
    //	status = "okay";
    
    	op-mode = <0>;		/* MCASP_IIS_MODE */
    	tdm-slots = <2>;
    	/* 6 serializer */
    	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
    		0 0 1 2 0 0 // AXR2: TX, AXR3: rx
    	>;
    	tx-num-evt = <32>;
    	rx-num-evt = <32>;
    };
    
    #include "k2g-evm-cmem.dtsi"
    #include "keystone-uio.dtsi"
    USB0 Schematics. The USB0 is connected to an USB C connector. In the dts, we comment out some portion that we do not support, like ecap0, dss etc, I am not sure if one of them is critical to USB?

    USB0

  • Hi Tom,

    Can you please attach the full linux boot log? You can get the log dump using 'dmesg' command.

  • Thanks, here is the log.

    # dmesg
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.19.94-rt39-ga242ccf3f1 (bob@3310d4419d1f) (gcc ve                                                                                                        rsion 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8                                                                                                        .36))) #0.00.0002-b001-BR_DEV-ENG_DEV SMP PREEMPT RT Mon Jan 23 13:53:4
    [    0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c5387d
    [    0.000000] CPU: div instructions available: patching division code
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    [    0.000000] OF: fdt: Machine model: Texas Instruments K2G General Purpose EVM
    [    0.000000] Memory policy: Data cache writealloc
    [    0.000000] Switching physical address space to 0x800000000
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created CMA memory pool at 0x000000081f800000, s                                                                                                        ize 8 MiB
    [    0.000000] OF: reserved mem: initialized node dsp-common-memory@81f800000, c                                                                                                        ompatible id shared-dma-pool
    [    0.000000] cma: Reserved 48 MiB at 0x000000083d000000
    [    0.000000] On node 0 totalpages: 231424
    [    0.000000]   DMA zone: 1728 pages used for memmap
    [    0.000000]   DMA zone: 0 pages reserved
    [    0.000000]   DMA zone: 165888 pages, LIFO batch:31
    [    0.000000]   HighMem zone: 65536 pages, LIFO batch:15
    [    0.000000] random: get_random_bytes called from start_kernel+0xb0/0x48c with                                                                                                         crng_init=0
    [    0.000000] percpu: Embedded 15 pages/cpu s32032 r8192 d21216 u61440
    [    0.000000] pcpu-alloc: s32032 r8192 d21216 u61440 alloc=15*4096
    [    0.000000] pcpu-alloc: [0] 0
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 229696
    [    0.000000] Kernel command line: console=ttyS0,115200n8 root=PARTUUID=0000000                                                                                                        0-02 rw rootfstype=ext4 rootwait
    [    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Memory: 841696K/925696K available (10240K kernel code, 296K rwdat                                                                                                        a, 2668K rodata, 2048K init, 273K bss, 26656K reserved, 57344K cma-reserved, 212                                                                                                        992K highmem)
    [    0.000000] Virtual kernel memory layout:
                       vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                       fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                       vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
                       lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
                       pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
                       modules : 0xbf000000 - 0xbfe00000   (  14 MB)
                         .text : 0x(ptrval) - 0x(ptrval)   (12256 kB)
                         .init : 0x(ptrval) - 0x(ptrval)   (2048 kB)
                         .data : 0x(ptrval) - 0x(ptrval)   ( 297 kB)
                          .bss : 0x(ptrval) - 0x(ptrval)   ( 274 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
    [    0.000000] rcu:     RCU priority boosting: priority 1 delay 500 ms.
    [    0.000000]  No expedited grace period (rcu_normal_after_boot).
    [    0.000000]  Tasks RCU enabled.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
    [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
    [    0.000000] GIC: Using split EOI/Deactivate mode
    [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles:                                                                                                         0x588fe9dc0, max_idle_ns: 440795202592 ns
    [    0.000005] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 43980                                                                                                        46511097ns
    [    0.000011] Switching to timer-based delay loop, resolution 41ns
    [    0.000136] keystone_timer_init: failed to get clock
    [    0.000151] Failed to initialize '/soc@0/timer@2210000': -517
    [    0.000398] Console: colour dummy device 80x30
    [    0.000527] Calibrating delay loop (skipped), value calculated using timer fr                                                                                                        equency.. 48.00 BogoMIPS (lpj=240000)
    [    0.000535] pid_max: default: 32768 minimum: 301
    [    0.000671] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000680] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.001412] CPU: Testing write buffer coherency: ok
    [    0.001441] CPU0: Spectre v2: firmware did not set auxiliary control register                                                                                                         IBE bit, system vulnerable
    [    0.001701] /cpus/cpu@0 missing clock-frequency property
    [    0.001735] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [    0.060053] Setting up static identity map for 0x80200000 - 0x80200138
    [    0.100068] rcu: Hierarchical SRCU implementation.
    [    0.160320] EFI services will not be available.
    [    0.180197] smp: Bringing up secondary CPUs ...
    [    0.180209] smp: Brought up 1 node, 1 CPU
    [    0.180220] SMP: Total of 1 processors activated (48.00 BogoMIPS).
    [    0.180229] CPU: All CPU(s) started in HYP mode.
    [    0.180236] CPU: Virtualization extensions available.
    [    0.180769] devtmpfs: initialized
    [    0.190347] VFP support v0.3: implementor 41 architecture 4 part 30 variant f                                                                                                         rev 0
    [    0.190663] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ma                                                                                                        x_idle_ns: 19112604462750000 ns
    [    0.190684] futex hash table entries: 256 (order: 2, 16384 bytes)
    [    0.191777] pinctrl core: initialized pinctrl subsystem
    [    0.192417] DMI not present or invalid.
    [    0.192772] NET: Registered protocol family 16
    [    0.194155] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.195781] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint                                                                                                         registers.
    [    0.195794] hw-breakpoint: maximum watchpoint size is 8 bytes.
    [    0.197251] sram c000000.msmram: reserved block /soc@0/msmram@c000000/sram-cm                                                                                                        em@80000 outside the sram area
    [    0.197295] sram: probe of c000000.msmram failed with error -22
    [    0.202126] gpio gpiochip0: (davinci_gpio.0): added GPIO chardev (254:0)
    [    0.202219] gpiochip_setup_dev: registered GPIOs 0 to 143 on device: gpiochip                                                                                                        0 (davinci_gpio.0)
    [    0.202242] davinci_gpio 2603000.gpio: Error -517 getting gpio clock
    [    0.203243] GPIO line 66 (uart_exp_reset) hogged as output/low
    [    0.203408] gpio gpiochip0: (davinci_gpio.0): added GPIO chardev (254:0)
    [    0.203490] gpiochip_setup_dev: registered GPIOs 0 to 67 on device: gpiochip0                                                                                                         (davinci_gpio.0)
    [    0.203510] davinci_gpio 260a000.gpio: Error -517 getting gpio clock
    [    0.251916] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/f                                                                                                        ixedregulator-vcc3v3-dcin[0]'
    [    0.252185] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/f                                                                                                        ixedregulator-vcc1v8-ldo1[0]'
    [    0.252444] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/f                                                                                                        ixedregulator-vcc1v8-aud[0]'
    [    0.254085] SCSI subsystem initialized
    [    0.254492] media: Linux media interface: v0.10
    [    0.254536] videodev: Linux video capture interface: v2.00
    [    0.254631] pps_core: LinuxPPS API ver. 1 registered
    [    0.254641] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giome                                                                                                        tti <giometti@linux.it>
    [    0.254662] PTP clock support registered
    [    0.254684] EDAC MC: Ver: 3.0.0
    [    0.270659] Advanced Linux Sound Architecture Driver Initialized.
    [    0.271670] clocksource: Switched to clocksource arch_sys_counter
    [    0.280818] NET: Registered protocol family 2
    [    0.281570] tcp_listen_portaddr_hash hash table entries: 512 (order: 2, 16384                                                                                                         bytes)
    [    0.281610] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.281686] TCP bind hash table entries: 8192 (order: 5, 229376 bytes)
    [    0.281954] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.282062] UDP hash table entries: 512 (order: 3, 32768 bytes)
    [    0.282117] UDP-Lite hash table entries: 512 (order: 3, 32768 bytes)
    [    0.282445] NET: Registered protocol family 1
    [    0.341820] RPC: Registered named UNIX socket transport module.
    [    0.341833] RPC: Registered udp transport module.
    [    0.341841] RPC: Registered tcp transport module.
    [    0.341850] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.341863] PCI: CLS 0 bytes, default 64
    [    0.342110] Trying to unpack rootfs image as initramfs...
    [    0.345026] Freeing initrd memory: 36K
    [    0.345484] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counte                                                                                                        rs available
    [    0.346153] platform alarmtimer: set dma_pfn_offset00780000
    [    0.346808] Initialise system trusted keyrings
    [    0.347011] workingset: timestamp_bits=14 max_order=18 bucket_order=4
    [    0.354152] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.372049] NFS: Registering the id_resolver key type
    [    0.372083] Key type id_resolver registered
    [    0.372093] Key type id_legacy registered
    [    0.372144] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.374584] Key type asymmetric registered
    [    0.374598] Asymmetric key parser 'x509' registered
    [    0.374675] bounce: pool size: 64 pages
    [    0.374719] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 2                                                                                                        45)
    [    0.374731] io scheduler noop registered
    [    0.374741] io scheduler deadline registered
    [    0.374965] io scheduler cfq registered (default)
    [    0.374976] io scheduler mq-deadline registered
    [    0.374986] io scheduler kyber registered
    [    0.375627] keystone_irq 26202a0.keystone_irq: irqchip registered, nr_irqs 28
    [    0.376609] pinctrl-single 2621000.pinmux: please update dts to use #pinctrl-                                                                                                        cells = <1>
    [    0.377030] pinctrl-single 2621000.pinmux: 260 pins, size 1040
    [    0.377438] gpio-syscon 2620240.keystone_dsp_gpio: can't read the dir registe                                                                                                        r offset!
    [    0.377456] gpiochip_find_base: found new base at 484
    [    0.377646] gpio gpiochip0: (2620240.keystone_dsp_gpio): added GPIO chardev (                                                                                                        254:0)
    [    0.377731] gpiochip_setup_dev: registered GPIOs 484 to 511 on device: gpioch                                                                                                        ip0 (2620240.keystone_dsp_gpio)
    [    0.377815] gpio-syscon 262026c.keystone-pruss-gpio: can't read the dir regis                                                                                                        ter offset!
    [    0.377830] gpiochip_find_base: found new base at 456
    [    0.377988] gpio gpiochip1: (262026c.keystone-pruss-gpio): added GPIO chardev                                                                                                         (254:1)
    [    0.378068] gpiochip_setup_dev: registered GPIOs 456 to 483 on device: gpioch                                                                                                        ip1 (262026c.keystone-pruss-gpio)
    [    0.378148] gpio-syscon 2620270.keystone-pruss-gpio: can't read the dir regis                                                                                                        ter offset!
    [    0.378161] gpiochip_find_base: found new base at 428
    [    0.378304] gpio gpiochip2: (2620270.keystone-pruss-gpio): added GPIO chardev                                                                                                         (254:2)
    [    0.378387] gpiochip_setup_dev: registered GPIOs 428 to 455 on device: gpioch                                                                                                        ip2 (2620270.keystone-pruss-gpio)
    [    0.378466] gpio-syscon 2620274.keystone-pruss-gpio: can't read the dir regis                                                                                                        ter offset!
    [    0.378479] gpiochip_find_base: found new base at 400
    [    0.378619] gpio gpiochip3: (2620274.keystone-pruss-gpio): added GPIO chardev                                                                                                         (254:3)
    [    0.378701] gpiochip_setup_dev: registered GPIOs 400 to 427 on device: gpioch                                                                                                        ip3 (2620274.keystone-pruss-gpio)
    [    0.378778] gpio-syscon 2620278.keystone-pruss-gpio: can't read the dir regis                                                                                                        ter offset!
    [    0.378799] gpiochip_find_base: found new base at 372
    [    0.378947] gpio gpiochip4: (2620278.keystone-pruss-gpio): added GPIO chardev                                                                                                         (254:4)
    [    0.379036] gpiochip_setup_dev: registered GPIOs 372 to 399 on device: gpioch                                                                                                        ip4 (2620278.keystone-pruss-gpio)
    [    0.469110] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.469212] platform serial8250: set dma_pfn_offset00780000
    [    0.485349] brd: module loaded
    [    0.494022] loop: module loaded
    [    0.496765] platform Fixed MDIO bus.0: set dma_pfn_offset00780000
    [    0.496926] mdio_bus fixed-0: GPIO lookup for consumer reset
    [    0.496934] mdio_bus fixed-0: using lookup tables for GPIO lookup
    [    0.496943] mdio_bus fixed-0: No GPIO consumer reset found
    [    0.496973] libphy: Fixed MDIO Bus: probed
    [    0.498371] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
    [    0.498381] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
    [    0.498445] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k
    [    0.498454] igb: Copyright (c) 2007-2014 Intel Corporation.
    [    0.499310] i2c /dev entries driver
    [    0.500487] sdhci: Secure Digital Host Controller Interface driver
    [    0.500497] sdhci: Copyright(c) Pierre Ossman
    [    0.500815] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.504119] platform snd-soc-dummy: set dma_pfn_offset00780000
    [    0.505538] NET: Registered protocol family 10
    [    0.522200] Segment Routing with IPv6
    [    0.522279] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    0.522867] NET: Registered protocol family 17
    [    0.523065] Key type dns_resolver registered
    [    0.523230] Registering SWP/SWPB emulation handler
    [    0.523860] Loading compiled-in X.509 certificates
    [    0.525260] gpio gpiochip5: (davinci_gpio.0): added GPIO chardev (254:5)
    [    0.525350] gpiochip_setup_dev: registered GPIOs 0 to 143 on device: gpiochip                                                                                                        5 (davinci_gpio.0)
    [    0.525373] davinci_gpio 2603000.gpio: Error -517 getting gpio clock
    [    0.526167] GPIO line 66 (uart_exp_reset) hogged as output/low
    [    0.526346] gpio gpiochip5: (davinci_gpio.0): added GPIO chardev (254:5)
    [    0.526429] gpiochip_setup_dev: registered GPIOs 0 to 67 on device: gpiochip5                                                                                                         (davinci_gpio.0)
    [    0.526451] davinci_gpio 260a000.gpio: Error -517 getting gpio clock
    [    0.533667] ti-sci 2921c00.pmmc: ABI: 2.4 (firmware rev 0x0011 '0.1.1-50-g129                                                                                                        ef (Eagle)')
    [    0.545371] random: fast init done
    [    0.598935] ti-sci-clk 2921c00.pmmc:clocks: get-parent failed for dev=76, clk                                                                                                        =11, ret=-19
    [    0.599065] ti-sci-clk 2921c00.pmmc:clocks: get-parent failed for dev=76, clk                                                                                                        =11, ret=-19
    [    0.599340] ti-sci-clk 2921c00.pmmc:clocks: get-parent failed for dev=76, clk                                                                                                        =11, ret=-19
    [    0.606991] keystone timer clock @166666666 Hz
    [    0.607502] gpio gpiochip5: (davinci_gpio.0): added GPIO chardev (254:5)
    [    0.607600] gpiochip_setup_dev: registered GPIOs 0 to 143 on device: gpiochip                                                                                                        5 (davinci_gpio.0)
    [    0.612724] GPIO line 210 (uart_exp_reset) hogged as output/low
    [    0.612912] gpio gpiochip6: (davinci_gpio.1): added GPIO chardev (254:6)
    [    0.613006] gpiochip_setup_dev: registered GPIOs 144 to 211 on device: gpioch                                                                                                        ip6 (davinci_gpio.1)
    [    0.620884] edma 2700000.edma: TI EDMA DMA engine driver
    [    0.621636] edma 2728000.edma: memcpy is disabled
    [    0.625984] edma 2728000.edma: TI EDMA DMA engine driver
    [    0.627442] rtc-ds1307 0-0068: read error -121
    [    0.627549] rtc-ds1307: probe of 0-0068 failed with error -121
    [    0.630036] pca954x 2-0070: GPIO lookup for consumer reset
    [    0.630045] pca954x 2-0070: using device tree for GPIO lookup
    [    0.630065] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of n                                                                                                        ode '/soc@0/i2c@2530800/i2c-mux@70[0]'
    [    0.630080] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of no                                                                                                        de '/soc@0/i2c@2530800/i2c-mux@70[0]'
    [    0.630089] pca954x 2-0070: using lookup tables for GPIO lookup
    [    0.630097] pca954x 2-0070: No GPIO consumer reset found
    [    0.630542] i2c i2c-2: Added multiplexed i2c bus 3
    [    0.631044] i2c i2c-2: Added multiplexed i2c bus 4
    [    0.631372] i2c i2c-2: Added multiplexed i2c bus 5
    [    0.631783] i2c i2c-2: Added multiplexed i2c bus 6
    [    0.632100] i2c i2c-2: Added multiplexed i2c bus 7
    [    0.633185] rtc-ds1307 8-0068: SET TIME!
    [    0.633820] rtc-ds1307 8-0068: read: 00 02 00 01 01 01 00
    [    0.633831] rtc-ds1307 8-0068: read secs=0, mins=2, hours=0, mday=1, mon=0, y                                                                                                        ear=100, wday=0
    [    0.634009] rtc-ds1307 8-0068: char device (253:0)
    [    0.634027] rtc-ds1307 8-0068: registered as rtc0
    [    0.634202] i2c i2c-2: Added multiplexed i2c bus 8
    [    0.634728] i2c i2c-2: Added multiplexed i2c bus 9
    [    0.635039] i2c i2c-2: Added multiplexed i2c bus 10
    [    0.635052] pca954x 2-0070: registered 8 multiplexed busses for I2C switch pc                                                                                                        a9548
    [    0.635571] ti,keystone-serdes 2320000.phy: init fw ks2_pcie_serdes.bin: vers                                                                                                        ion 3.3.0.2c
    [    0.636594] keystone-pcie 21800000.pcie: GPIO lookup for consumer reset
    [    0.636602] keystone-pcie 21800000.pcie: using device tree for GPIO lookup
    [    0.636623] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of n                                                                                                        ode '/soc@0/pcie@21800000[0]'
    [    0.636639] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of no                                                                                                        de '/soc@0/pcie@21800000[0]'
    [    0.636649] keystone-pcie 21800000.pcie: using lookup tables for GPIO lookup
    [    0.636657] keystone-pcie 21800000.pcie: No GPIO consumer reset found
    [    0.636821] keystone-pcie 21800000.pcie: host bridge /soc@0/pcie@21800000 ran                                                                                                        ges:
    [    0.636841] keystone-pcie 21800000.pcie:   No bus range found for /soc@0/pcie                                                                                                        @21800000, using [bus 00-ff]
    [    0.636875] keystone-pcie 21800000.pcie:    IO 0x23250000..0x23253fff -> 0x00                                                                                                        000000
    [    0.636900] keystone-pcie 21800000.pcie:   MEM 0x70000000..0x7fffffff -> 0x70                                                                                                        000000
    [    1.637897] keystone-pcie 21800000.pcie: Phy link never came up
    [    1.638069] keystone-pcie 21800000.pcie: PCI host bridge to bus 0000:00
    [    1.638088] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    1.638101] pci_bus 0000:00: root bus resource [io  0x0000-0x3fff]
    [    1.638113] pci_bus 0000:00: root bus resource [mem 0x70000000-0x7fffffff]
    [    1.638155] pci 0000:00:00.0: [104c:b00b] type 01 class 0x060400
    [    1.640525] PCI: bus0: Fast back to back transfers disabled
    [    1.642695] PCI: bus1: Fast back to back transfers enabled
    [    1.642735] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
    [    1.642961] pcieport 0000:00:00.0: limiting MRRS to 256
    [    1.643425] pcieport 0000:00:00.0: Signaling PME with IRQ 283
    [    1.643713] pcieport 0000:00:00.0: AER enabled with IRQ 283
    [    1.644905] console [ttyS0] disabled
    [    1.644954] 2530c00.serial: ttyS0 at MMIO 0x2530c00 (irq = 24, base_baud = 12                                                                                                        000000) is a TI DA8xx/66AK2x
    [    2.748732] console [ttyS0] enabled
    [    2.753851] 2531400.serial: ttyS2 at MMIO 0x2531400 (irq = 25, base_baud = 12                                                                                                        000000) is a TI DA8xx/66AK2x
    [    2.764744] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805400[0]'
    [    2.764761] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805400[1]'
    [    2.764776] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805400[2]'
    [    2.764789] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805400[3]'
    [    2.764803] spi_davinci 21805400.spi: DMA is not supported (-19)
    [    2.771580] ex_16bit_spi spi0.0: ex_16bit_spi_probe client list (so far)...
    [    2.778604] ex_16bit_spi spi0.0: client bus: 0, cs: 0 endian: swap
    [    2.784859] spi_davinci 21805400.spi: Controller at 0x(ptrval)
    [    2.791550] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805800[0]'
    [    2.791566] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805800[1]'
    [    2.791580] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805800[2]'
    [    2.791593] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805800[3]'
    [    2.791605] spi_davinci 21805800.spi: DMA is not supported (-19)
    [    2.798187] spi_davinci 21805800.spi: Controller at 0x(ptrval)
    [    2.804812] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805c00[0]'
    [    2.804828] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805c00[1]'
    [    2.804842] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805c00[2]'
    [    2.804855] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21805c00[3]'
    [    2.804866] spi_davinci 21805c00.spi: DMA is not supported (-19)
    [    2.811235] spi_davinci 21805c00.spi: Controller at 0x(ptrval)
    [    2.817920] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21806000[0]'
    [    2.817935] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21806000[1]'
    [    2.817949] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21806000[2]'
    [    2.817962] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node                                                                                                         '/soc@0/spi@21806000[3]'
    [    2.817973] spi_davinci 21806000.spi: DMA is not supported (-19)
    [    2.824547] spi_davinci 21806000.spi: Controller at 0x(ptrval)
    [    2.830977] mdio_bus 4200f00.mdio: GPIO lookup for consumer reset
    [    2.830986] mdio_bus 4200f00.mdio: using device tree for GPIO lookup
    [    2.831004] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of n                                                                                                        ode '/soc@0/mdio@4200f00[0]'
    [    2.831019] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of no                                                                                                        de '/soc@0/mdio@4200f00[0]'
    [    2.831028] mdio_bus 4200f00.mdio: using lookup tables for GPIO lookup
    [    2.831037] mdio_bus 4200f00.mdio: No GPIO consumer reset found
    [    2.881714] davinci_mdio 4200f00.mdio: davinci mdio revision 1.7, bus freq 25                                                                                                        00000
    [    2.889271] libphy: 4200f00.mdio: probed
    [    2.893422] mdio_bus 4200f00.mdio: MDIO device at address 0 is missing.
    [    2.900549] sdhci-omap 23000000.mmc: GPIO lookup for consumer cd
    [    2.900558] sdhci-omap 23000000.mmc: using device tree for GPIO lookup
    [    2.900575] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node                                                                                                         '/soc@0/mmc@23000000[0]'
    [    2.900590] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node                                                                                                         '/soc@0/mmc@23000000[0]'
    [    2.900599] sdhci-omap 23000000.mmc: using lookup tables for GPIO lookup
    [    2.900607] sdhci-omap 23000000.mmc: No GPIO consumer cd found
    [    2.900617] sdhci-omap 23000000.mmc: GPIO lookup for consumer wp
    [    2.900624] sdhci-omap 23000000.mmc: using device tree for GPIO lookup
    [    2.900638] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node                                                                                                         '/soc@0/mmc@23000000[0]'
    [    2.900652] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node                                                                                                         '/soc@0/mmc@23000000[0]'
    [    2.900660] sdhci-omap 23000000.mmc: using lookup tables for GPIO lookup
    [    2.900667] sdhci-omap 23000000.mmc: No GPIO consumer wp found
    [    2.900907] sdhci-omap 23000000.mmc: Linked as a consumer to regulator.1
    [    2.907682] sdhci-omap 23000000.mmc: Dropping the link to regulator.1
    [    2.914218] sdhci-omap 23000000.mmc: Linked as a consumer to regulator.1
    [    2.947117] mmc0: SDHCI controller on 23000000.mmc [23000000.mmc] using ADMA
    [    2.954789] sdhci-omap 23100000.mmc: GPIO lookup for consumer wp
    [    2.954797] sdhci-omap 23100000.mmc: using device tree for GPIO lookup
    [    2.954817] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node                                                                                                         '/soc@0/mmc@23100000[0]'
    [    2.954832] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node                                                                                                         '/soc@0/mmc@23100000[0]'
    [    2.954841] sdhci-omap 23100000.mmc: using lookup tables for GPIO lookup
    [    2.954850] sdhci-omap 23100000.mmc: No GPIO consumer wp found
    [    2.955223] sdhci-omap 23100000.mmc: Linked as a consumer to regulator.2
    [    2.962036] sdhci-omap 23100000.mmc: Dropping the link to regulator.2
    [    2.968604] sdhci-omap 23100000.mmc: Linked as a consumer to regulator.1
    [    2.975386] sdhci-omap 23100000.mmc: Linked as a consumer to regulator.2
    [    2.982782] sdhci-omap 23100000.mmc: vqmmc set voltage failed
    [    2.988523] sdhci-omap 23100000.mmc: failed to switch IO voltage to 3300000mV
    [    2.995708] sdhci-omap 23100000.mmc: vqmmc set voltage failed
    [    3.001447] sdhci-omap 23100000.mmc: failed to switch IO voltage to 1800000mV
    [    3.016953] mmc0: host does not support reading read-only switch, assuming wr                                                                                                        ite-enable
    [    3.027085] mmc0: new high speed SD card at address 59b4
    [    3.037521] mmc1: SDHCI controller on 23100000.mmc [23100000.mmc] using ADMA
    [    3.045171] mmcblk0: mmc0:59b4 USD   1.87 GiB
    [    3.050992] rtc-ds1307 8-0068: read: 01 02 00 01 01 01 00
    [    3.051005] rtc-ds1307 8-0068: read secs=1, mins=2, hours=0, mday=1, mon=0, y                                                                                                        ear=100, wday=0
    [    3.051033] rtc-ds1307 8-0068: setting system clock to 2000-01-01 00:02:01 UT                                                                                                        C (946684921)
    [    3.070588]  mmcblk0: p1 p2
    [    3.080153] ALSA device list:
    [    3.083121]   No soundcards found.
    [    3.139118] mmc1: switch to bus width 8 failed
    [    3.145660] mmc1: switch to bus width 4 failed
    [    3.153151] mmc1: new high speed MMC card at address 0001
    [    3.174308] mmcblk1: mmc1:0001 IS008G 7.28 GiB
    [    3.182277] mmcblk1boot0: mmc1:0001 IS008G partition 1 4.00 MiB
    [    3.191532] mmcblk1boot1: mmc1:0001 IS008G partition 2 4.00 MiB
    [    3.200291] mmcblk1rpmb: mmc1:0001 IS008G partition 3 4.00 MiB, chardev (244:                                                                                                        0)
    [    3.221517] sdhci-omap 23100000.mmc: vqmmc set voltage failed
    [    3.227286] sdhci-omap 23100000.mmc: failed to switch IO voltage to 3300000mV
    [    3.234416] sdhci-omap 23100000.mmc: vqmmc set voltage failed
    [    3.240152] sdhci-omap 23100000.mmc: failed to switch IO voltage to 1800000mV
    [    3.295022] mmc1: switch to bus width 8 failed
    [    3.300940] mmc1: switch to bus width 4 failed
    [    3.306485] print_req_error: I/O error, dev mmcblk1, sector 0
    [    3.312443] print_req_error: I/O error, dev mmcblk1, sector 1
    [    3.318352] print_req_error: I/O error, dev mmcblk1, sector 2
    [    3.324271] print_req_error: I/O error, dev mmcblk1, sector 3
    [    3.330216] print_req_error: I/O error, dev mmcblk1, sector 4
    [    3.336164] print_req_error: I/O error, dev mmcblk1, sector 5
    [    3.342110] print_req_error: I/O error, dev mmcblk1, sector 6
    [    3.348053] print_req_error: I/O error, dev mmcblk1, sector 7
    [    3.353793] Buffer I/O error on dev mmcblk1, logical block 0, async page read
    [    3.361637] print_req_error: I/O error, dev mmcblk1, sector 0
    [    3.367550] print_req_error: I/O error, dev mmcblk1, sector 1
    [    3.374299] Buffer I/O error on dev mmcblk1, logical block 0, async page read
    [    3.381463]  mmcblk1: unable to read partition table
    [    4.328915] EXT4-fs (mmcblk0p2): recovery complete
    [    4.339227] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. O                                                                                                        pts: (null)
    [    4.347354] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    4.353457] devtmpfs: mounted
    [    4.357943] Freeing unused kernel memory: 2048K
    [    4.362619] Run /sbin/init as init process
    [    4.511024] EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
    [    5.021362] random: sqlite3: uninitialized urandom read (256 bytes read)
    [    5.771365] m25p80 spi1.0: unrecognized JEDEC id bytes: ff, ff, ff
    [    5.777590] m25p80: probe of spi1.0 failed with error -2
    [    5.783466] m25p80 spi3.0: found w25q256jw, expected m25p80
    [    5.789921] m25p80 spi3.0: spi_nor_scan: user force addr_width to 3
    [    5.796445] m25p80 spi3.0: w25q256jw (32768 Kbytes), addr_width 3
    [    5.802651] m25p80 spi3.0: mtd .name = spi3.0, .size = 0x2000000 (32MiB), .erasesize = 0x00010000 (64KiB) .numeraseregions = 0
    [    5.814111] 1 fixed-partitions partitions found on MTD device spi3.0
    [    5.820452] Creating 1 MTD partitions on "spi3.0":
    [    5.825364] 0x000000000000-0x000002000000 : "vs3-flash"
    [    5.848650] vpa_pcie_endpoint: loading out-of-tree module taints kernel.
    [    6.913602] at24 0-0050: GPIO lookup for consumer wp
    [    6.913613] at24 0-0050: using device tree for GPIO lookup
    [    6.913636] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/soc@0/i2c@2530000/eeprom@50[0]'
    [    6.913652] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/soc@0/i2c@2530000/eeprom@50[0]'
    [    6.913662] at24 0-0050: using lookup tables for GPIO lookup
    [    6.913671] at24 0-0050: No GPIO consumer wp found
    [    6.915273] at24 0-0050: 2048 byte 24c16 EEPROM, writable, 16 bytes/write
    [    6.923106] at24 4-0050: GPIO lookup for consumer wp
    [    6.923115] at24 4-0050: using device tree for GPIO lookup
    [    6.923135] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/soc@0/i2c@2530800/i2c-mux@70/i2c@1/eeprom@50[0]'
    [    6.923151] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/soc@0/i2c@2530800/i2c-mux@70/i2c@1/eeprom@50[0]'
    [    6.923162] at24 4-0050: using lookup tables for GPIO lookup
    [    6.923170] at24 4-0050: No GPIO consumer wp found
    [    6.923824] at24 4-0050: 512 byte 24c04 EEPROM, writable, 16 bytes/write
    [   11.551199] random: dd: uninitialized urandom read (512 bytes read)
    [   13.232290] random: ssh-keygen: uninitialized urandom read (32 bytes read)
    [   13.361573] random: cat: uninitialized urandom read (4096 bytes read)
    [   13.395551] random: cat: uninitialized urandom read (4096 bytes read)
    [   29.106770] random: crng init done
    [   29.110175] random: 5 urandom warning(s) missed due to ratelimiting
    [   46.046437] usb_phy_generic usbphy:usb-phy@0: GPIO lookup for consumer reset
    [   46.046448] usb_phy_generic usbphy:usb-phy@0: using device tree for GPIO lookup
    [   46.046471] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/usbphy/usb-phy@0[0]'
    [   46.046487] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/usbphy/usb-phy@0[0]'
    [   46.046497] usb_phy_generic usbphy:usb-phy@0: using lookup tables for GPIO lookup
    [   46.046506] usb_phy_generic usbphy:usb-phy@0: No GPIO consumer reset found
    [   46.046515] usb_phy_generic usbphy:usb-phy@0: GPIO lookup for consumer vbus-detect
    [   46.046522] usb_phy_generic usbphy:usb-phy@0: using device tree for GPIO lookup
    [   46.046537] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/usbphy/usb-phy@0[0]'
    [   46.046551] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/usbphy/usb-phy@0[0]'
    [   46.046560] usb_phy_generic usbphy:usb-phy@0: using lookup tables for GPIO lookup
    [   46.046568] usb_phy_generic usbphy:usb-phy@0: No GPIO consumer vbus-detect found
    [   46.046595] usb_phy_generic usbphy:usb-phy@0: usbphy:usb-phy@0 supply vcc not found, using dummy regulator
    [   46.066363] usb_phy_generic usbphy:usb-phy@0: Linked as a consumer to regulator.0
    [   46.082002] usb_phy_generic usbphy:usb-phy@1: GPIO lookup for consumer reset
    [   46.082012] usb_phy_generic usbphy:usb-phy@1: using device tree for GPIO lookup
    [   46.082036] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/usbphy/usb-phy@1[0]'
    [   46.082056] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/usbphy/usb-phy@1[0]'
    [   46.082066] usb_phy_generic usbphy:usb-phy@1: using lookup tables for GPIO lookup
    [   46.082075] usb_phy_generic usbphy:usb-phy@1: No GPIO consumer reset found
    [   46.082084] usb_phy_generic usbphy:usb-phy@1: GPIO lookup for consumer vbus-detect
    [   46.082091] usb_phy_generic usbphy:usb-phy@1: using device tree for GPIO lookup
    [   46.082106] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/usbphy/usb-phy@1[0]'
    [   46.082120] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/usbphy/usb-phy@1[0]'
    [   46.082129] usb_phy_generic usbphy:usb-phy@1: using lookup tables for GPIO lookup
    [   46.082136] usb_phy_generic usbphy:usb-phy@1: No GPIO consumer vbus-detect found
    [   46.082162] usb_phy_generic usbphy:usb-phy@1: usbphy:usb-phy@1 supply vcc not found, using dummy regulator
    [   46.101935] usb_phy_generic usbphy:usb-phy@1: Linked as a consumer to regulator.0
    [   59.597379] usbcore: registered new interface driver usbfs
    [   59.610067] usbcore: registered new interface driver hub
    [   59.625505] usbcore: registered new device driver usb
    

  • Hi Tom,

    What is the output of command 'lsusb' and 'lsmod'?

  • Hi Bin,

    Here is the result:

    # lsusb
    # lsmod
    Module                  Size  Used by    Tainted: G
    usbcore               217088  0
    usb_common             16384  1 usbcore
    phy_keystone           16384  0
    phy_generic            16384  1 phy_keystone
    at24                   20480  0
    vpa_pcie_endpoint      16384  0
    m25p80                 16384  0
    spi_nor                36864  1 m25p80

  • Tom,

    Please also attach file /proc/config.gz.

  • Bin,

    Here is config.gz.6740.config.gz

  • Bin,

    We found the 24MHz USB0 CLOCK signal is missing, ie, SOC_USB0_XO. I will let you know if the USB issue is fixed after the clock signal becomes available.

    Tom

  • Bin,

    The 24MHz clock signal is fixed, but the USB0 still doesn't work. Any idea? have you found anything suspicious in the config.gz?

    I created a new SD card and boot the system. Now, I do not see any "usb" text in dmesg. Probably, I manually load usb libraries like usbcore and phy-keystone in previous SD card.

    # lsusb
    lsusb: /sys/bus/usb/devices: No such file or directory

    # lsmod
    Module                  Size  Used by    Tainted: G
    at24                   20480  0
    vpa_pcie_endpoint      16384  0
    m25p80                 16384  0
    spi_nor                36864  1 m25p80

    Tom

  • Hi Tom,

    I don't see anything standing out in your kernel config and dts, but all the needed kernel modules are not automatically loaded.

    What if you manually run command 'modprobe dwc3-keystone'? does it load all USB related kernel modules? You can check it with lsusb command. If so, does it create two entries in /sys/class/udc/ directory?

  • Hi Bin,

    'modprobe dwc3-keystone' does not do anything. I do not see anything after running it in dmesg.

    There is no /sys/class/udc/ folder.

    In our custom board, we are using USB0 and USB1 as "peripheral" not "host" which is different from EVMK2G board, so I am wondering if our kernel config which is exactly same as EVMK2G needs any modification? do we need to enable USB device setting and disable USB host?

    I am also wondering if we need to match USB0 & USB1 settings in uboot device tree (ie, keystone-k2g-generic.dts) with the dt in linux device tree? Right now, we disable USB0 and USB1 in uboot device tree and enable them as "peripheral" in Linux dt, is this OK?

    Tom

  • Tom,

    In our custom board, we are using USB0 and USB1 as "peripheral" not "host" which is different from EVMK2G board, so I am wondering if our kernel config which is exactly same as EVMK2G needs any modification? do we need to enable USB device setting and disable USB host?

    No, kernel config doesn't need any modification. The difference between host and device modes are specified in kernel device tree, and the kernel usb driver will work accordingly at runtime. In theory, you could enable USB device and disable USB host in kernel config, but that has never been validated in the SDK, not sure if there is any bug in there.

    am also wondering if we need to match USB0 & USB1 settings in uboot device tree (ie, keystone-k2g-generic.dts) with the dt in linux device tree? Right now, we disable USB0 and USB1 in uboot device tree and enable them as "peripheral" in Linux dt, is this OK?

    Yes that is okay. kernel USB operation is independent from U-Boot.

  • I cannot think of anything else to check. The only option left is to debug the kernel driver to see why the init failed.

    You can start from the kdwc3_probe() function in drivers/usb/dwc3/dwc3-keystone.c.

  • Ok, will do. By the way, will the usbconfigfs.sh help at this stage?

    See the script at:

    e2e.ti.com/.../linux-am3352-dynamic-reconfiguration-of-usb-gadget

  • Bin,

    It seems that the kdwc3_probe() function in drivers/usb/dwc3/dwc3-keystone.c works fine.

    I added debug print at the entrance and before exit of kdwc3_probe() to confirm this function is called and print error code in case failure. However, this library is not called by default. I manually load and it is called twice, all finish with no error:

    # modprobe dwc3-keystone
    [   91.640944] keystone-dwc3 2680000.keystone-dwc3: kdwc3_probe: entered, device name 2680000.keystone-dwc3
    [   91.672477] keystone-dwc3 2680000.keystone-dwc3: kdwc3_probe: create dwc3 core done, error = 0
    [   91.706516] keystone-dwc3 2580000.keystone-dwc3: kdwc3_probe: entered, device name 2580000.keystone-dwc3
    [   91.732675] keystone-dwc3 2580000.keystone-dwc3: kdwc3_probe: create dwc3 core done, error = 0

    # modprobe usbcore
    [  156.473193] usbcore: registered new interface driver usbfs
    [  156.478725] usbcore: registered new interface driver hub
    [  156.518796] usbcore: registered new device driver usb
    # modprobe phy-keystone
    [  170.453798] usb_phy_generic usbphy:usb-phy@0: usbphy:usb-phy@0 supply vcc not found, using dummy regulator
    [  170.473605] usb_phy_generic usbphy:usb-phy@0: Linked as a consumer to regulator.0
    [  170.488423] usb_phy_generic usbphy:usb-phy@1: usbphy:usb-phy@1 supply vcc not found, using dummy regulator
    [  170.508189] usb_phy_generic usbphy:usb-phy@1: Linked as a consumer to regulator.0

    # lsusb
    # lsmod
    Module                  Size  Used by    Tainted: G
    dwc3_keystone          16384  0
    usbcore               217088  0
    usb_common             16384  1 usbcore
    phy_keystone           16384  0
    phy_generic            16384  1 phy_keystone
    at24                   20480  0

    # ls /sys/class/udc
    ls: /sys/class/udc: No such file or directory