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.

AM5728: M.2 SSD not detected on am5728 PCIe

Part Number: AM5728

I have a custom am5728 board I am trying to validate the a PCIe M.2 connector with a Western Digital SN520 M.2 NVMe SSD, but request help because the SSD is not being detected.

* I am using a Linux RT build from the TI SDK 6.03.00.106.
* The Linux Kernel .config file has CONFIG_BLK_DEV_NVME=y
* The M.2 connector has 2 PCIe lanes from the am5728
* The M.2 connector does not have the SMBus connected.
* The M.2 connector PERST pin is connected to the board reset pin rather than a GPIO.
* My device tree includes dra74x.dtsi and dra7.dtsi with pcie definitions.
* My dts file has the following:
    pcie1_rc {
        status = "okay";
        /delete-property/ gpios;
        };

* Some debugging information:
    # dmesg |grep pci
    [    0.876117] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1
    [    0.876298] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
    [    0.876305] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
    [    0.876325] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]'
    [    0.876339] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/ocp/axi@0/pcie@51000000[0]'
    [    0.876349] dra7-pcie 51000000.pcie: using lookup tables for GPIO lookup
    [    0.876357] dra7-pcie 51000000.pcie: No GPIO consumer (null) found
    [    0.876563] dra7-pcie 51000000.pcie: host bridge /ocp/axi@0/pcie@51000000 ranges:
    [    0.876603] dra7-pcie 51000000.pcie:    IO 0x20003000..0x20012fff -> 0x00000000
    [    0.876631] dra7-pcie 51000000.pcie:   MEM 0x20013000..0x2fffffff -> 0x20013000
    [    1.876913] dra7-pcie 51000000.pcie: Phy link never came up
    [    1.877071] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
    [    1.877088] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    1.877100] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
    [    1.877112] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
    [    1.877149] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400
    [    1.877183] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
    [    1.877246] pci 0000:00:00.0: supports D1
    [    1.877253] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [    1.888677] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit]
    [    1.888697] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
    [    1.889194] pcieport 0000:00:00.0: Signaling PME with IRQ 168
    [    1.889451] pcieport 0000:00:00.0: AER enabled with IRQ 168

    # lspci -v
    00:00.0 PCI bridge: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01) (prog-if 00 [Normal decode])
            Flags: bus master, fast devsel, latency 0, IRQ 168
            Memory at 20100000 (64-bit, non-prefetchable) [size=1M]
            Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
            I/O behind bridge: None
            Memory behind bridge: None
            Prefetchable memory behind bridge: None
            Capabilities: [40] Power Management version 3
            Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
            Capabilities: [70] Express Root Port (Slot-), MSI 00
            Capabilities: [100] Advanced Error Reporting
            Kernel driver in use: pcieport

my_dt.dts.txt
/*
 * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/dts-v1/;

#include "dra74x.dtsi"
#include "dra7-mmc-iodelay.dtsi"
#include "dra74x-mmc-iodelay.dtsi"
#include "am572x-idk-common.dtsi"

/ {
	model = "SKF Controller Board";
	compatible = "ti,am5728-idk", "ti,am5728", "ti,dra742", "ti,dra74",
		     "ti,dra7";
	aliases {
		rtc0 = &mcp79410_rtc;
	};

	/delete-node/ status-leds;
	/delete-node/ leds-iio;

	status-leds {
		// For user leds, remove the linux, default-trigger
		compatible = "gpio-leds";
		heartbeat-led {
			label = "status0:green:heartbeat";
			gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "heartbeat";
		};
		mmc0-led {
			label = "status1:yellow:mmc0";
			gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;
			default-state = "on";
			linux,default-trigger = "mmc0";
		};
		usr0-led {
			label = "status2:red:usr0";
			gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};

	gpio_fan: gpio_fan {
		compatible = "gpio-fan";
		gpios = <&gpio7 27 GPIO_ACTIVE_HIGH>;
		gpio-fan,speed-map = <0     0>,
							<13000     1>;
		#cooling-cells = <2>;
		alarm-gpios = <&gpio7 17 GPIO_ACTIVE_HIGH>;
	};

    tpd12s015: encoder@0 {
		gpios = <0>, /* optional CT_CP_HPD */
			<0>, /* optional LS_OE */
			<&gpio2 31 GPIO_ACTIVE_HIGH>;	/* HPD */
    };

	xtal_25Mhz: xtal_25Mhz {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <25000000>;
	};

};

&pcie1_rc {
	status = "okay";
	/delete-property/ gpios;
	};

	
&mmc1 {
	pinctrl-names = "default", "hs";
	pinctrl-0 = <&mmc1_pins_default_no_clk_pu>;
	pinctrl-1 = <&mmc1_pins_hs>;
	/delete-property/ sd-uhs-sdr104;
	/delete-property/ sd-uhs-sdr50;
	/delete-property/ sd-uhs-ddr50;
	/delete-property/ sd-uhs-sdr25;
	/delete-property/ sd-uhs-sdr12;
	cd-gpios = <&gpio6 27 GPIO_ACTIVE_HIGH>; /* gpio 219 */
};

&mmc2 {
	pinctrl-names = "default", "hs", "ddr_3_3v";
	pinctrl-0 = <&mmc2_pins_default>;
	pinctrl-1 = <&mmc2_pins_hs>;
	pinctrl-2 = <&mmc2_pins_ddr_rev20>;
};

&extcon_usb2 {
	/delete-property/ id-gpio; // For OTG identify host and device.
	/delete-property/ vbus-gpio; // Input to detect USB Power
};

&usb2_phy1 {
	/delete-property/ ldousb_reg;
	};
&usb2_phy2 {
	/delete-property/ ldousb_reg;
	};

&omap_dwc3_2 {
	/delete-property/ extcon;
};

&usb2 {
	/delete-property/ extcon;
	dr_mode = "host";
};

&mcspi3 {
	status = "disabled";
	};


&cpsw_emac0 {
	phy-mode = "rgmii-rxid";
	};
&cpsw_emac1 {
	phy-mode = "rgmii-rxid";
	};
&i2c1 {
	/delete-node/ tps659038@58; // Power management
	/delete-node/ tpic2810@60;  // IO expander
	//delete-node/ ov2659@30;    // Camera
	//delete-node/ tc358778@0e;  // DSI bridge

	tmp102: tmp102@48 {         // Thermal sensor
		compatible = "ti,tmp102";
		reg = <0x48>;
		interrupt-parent = <&gpio7>;
		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
		#thermal-sensor-cells = <1>;
	};

	mcp79410_rtc: mcp79410@6f {       // rtc
		compatible = "microchip,mcp7941x";
		reg = <0x6f>;
	};
	
};

&i2c3 {
	status = "okay";
	clock-frequency = <100000>;

	tps659038: tps659038@58 {
		compatible = "ti,tps659038";
		reg = <0x58>;
		//interrupt-parent = <&gpio1>;
		//interrupts = <0 IRQ_TYPE_LEVEL_LOW>;

		//#interrupt-cells = <2>;
		//interrupt-controller;

		ti,system-power-controller;
		ti,palmas-override-powerhold;

		tps659038_pmic {
			compatible = "ti,tps659038-pmic";

			regulators {
				smps12_reg: smps12 {
					/* VDD_MPU_1V15 */
					regulator-name = "smps12";
					regulator-min-microvolt = < 850000>;
					regulator-max-microvolt = <1250000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps3_reg: smps3 {
					/* VDD_DDR_1V35 */
					regulator-name = "smps3";
					regulator-min-microvolt = <1350000>;
					regulator-max-microvolt = <1350000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps45_reg: smps45 {
					/* VDD_DSP_EVE_1V06 */
					regulator-name = "smps45";
					regulator-min-microvolt = < 850000>;
					regulator-max-microvolt = <1250000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps6_reg: smps6 {
					/* VDD_GPU_1V06 */
					regulator-name = "smps6";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps7_reg: smps7 {
					/* VDD_CORE_1V15 */
					regulator-name = "smps7";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps8_reg: smps8 {
					/* VDD_IVA_HD_1V06 */
					regulator-name = "smps8";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps9_reg: smps9 {
					/* VDDS_SDIO_3V3 */
					regulator-name = "smps9";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo1_reg: ldo1 {
					/* P3V3_SHV8  */
					regulator-name = "ldo1";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <3300000>;
					regulator-boot-on;
					regulator-always-on;
				};

				ldo2_reg: ldo2 {
					/* P1V8_VDD */
					regulator-name = "ldo2";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo3_reg: ldo3 {
					/* P1V8_PHYUSB */
					regulator-name = "ldo3";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo4_reg: ldo4 {
					/* P1V8_HDMIPCIE */
					regulator-name = "ldo4";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo9_reg: ldo9 {
					/* P1V05_RTC */
					regulator-name = "ldo9";
					regulator-min-microvolt = <1050000>;
					regulator-max-microvolt = <1050000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldoln_reg: ldoln {
					/* P1V8_VDDA */
					regulator-name = "ldoln";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldortc_reg: ldortc {
					/* P1V8_RTC  */
					regulator-name = "ldortc";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldousb_reg: ldousb {
					/* P3V3_USB  */
					regulator-name = "ldousb";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-always-on;
					regulator-boot-on;
				};

				regen1: regen1 {
					/* VDD_3V3_ON */
					regulator-name = "regen1";
					regulator-boot-on;
					regulator-always-on;
				};

				regen2: regen2 {
					/* Needed for PMIC internal resource */
					regulator-name = "regen2";
					regulator-boot-on;
					regulator-always-on;
				};
			};
		};
		//tps659038_rtc: tps659038_rtc {
			//compatible = "ti,palmas-rtc";
			//interrupt-parent = <&tps659038>;
			//interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
			//wakeup-source;
		//};

		//tps659038_pwr_button: tps659038_pwr_button {
			//compatible = "ti,palmas-pwrbutton";
			//interrupt-parent = <&tps659038>;
			//interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
			//wakeup-source;
			//ti,palmas-long-press-seconds = <12>;
		//};

		tps659038_gpio: tps659038_gpio {
			compatible = "ti,palmas-gpio";
			gpio-controller;
			#gpio-cells = <2>;
		};

		//extcon_usb2: tps659038_usb {
			//compatible = "ti,palmas-usb-vid";
			//ti,enable-vbus-detection;
			//vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
		//};

	};

	clockgen: cdce925pw@65 {
		compatible = "cdce913";
		reg = <0x65>;
		clocks = <&xtal_25Mhz>;
		#clock-cells = <1>;
		xtal-load-pf = <5>;
	};

	tc358867@68 {
		compatible = "toshiba,tc358867", "toshiba,tc358768";
		reg = <0x68>;
		//reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
		//clock-names = "refclk";
		//clocks = <&hdmi_osc>;
		//interrupt-parent = <&gpio2>;
		//interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;

		toshiba,hpd-pin = <0>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@1 {
				reg = <1>;

				bridge_in: endpoint {
					remote-endpoint = <&dpi_out>;
				};
			};
		};
	};
}
;
&thermal_zones {
	board_thermal: board_thermal {
		polling-delay-passive = <1250>; /* milliseconds */
		polling-delay = <1500>; /* milliseconds */

				/* sensor       ID */
		thermal-sensors = <&tmp102     0>;

		board_trips: trips {
			board_alert0: board_alert {
				temperature = <40000>; /* millicelsius */
				hysteresis = <2000>; /* millicelsius */
				type = "active";
			};

			board_crit: board_crit {
				temperature = <105000>; /* millicelsius */
				hysteresis = <0>; /* millicelsius */
				type = "critical";
			};
		};

		board_cooling_maps: cooling-maps {
			map0 {
				trip = <&board_alert0>;
				cooling-device =
				  <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
			};
		};
	};
};

#include "am57xx-evm-cmem-am572idk.dtsi"

3755.dmesg.txt
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.19.94-rt39-ga242ccf3f1 (gws@CACALCND314159PI) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #2 SMP PREEMPT RT Wed Jul 29 11:25:10 MDT 2020
[    0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (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: SKF Controller Board
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB
[    0.000000] OF: reserved mem: initialized node ipu2-memory@95800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node dsp1-memory@99000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009d000000, size 32 MiB
[    0.000000] OF: reserved mem: initialized node ipu1-memory@9d000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created CMA memory pool at 0x000000009f000000, size 8 MiB
[    0.000000] OF: reserved mem: initialized node dsp2-memory@9f000000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 24 MiB at 0x00000000fe400000
[    0.000000] OMAP4: Map 0x00000000ffd00000 to (ptrval) for dram barrier
[    0.000000] Hit pending asynchronous external abort (FSR=0x00001211) during first unmask, this is most likely caused by a firmware/bootloader bug.
[    0.000000] On node 0 totalpages: 384000
[    0.000000]   DMA zone: 1152 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 122624 pages, LIFO batch:31
[    0.000000]   HighMem zone: 261376 pages, LIFO batch:63
[    0.000000] DRA752 ES2.0
[    0.000000] random: get_random_bytes called from start_kernel+0xb0/0x488 with crng_init=0
[    0.000000] percpu: Embedded 15 pages/cpu s32224 r8192 d21024 u61440
[    0.000000] pcpu-alloc: s32224 r8192 d21024 u61440 alloc=15*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 382848
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=PARTUUID=c6985351-02 rw rootfstype=ext4 rootwait
[    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 1348360K/1536000K available (10240K kernel code, 344K rwdata, 2768K rodata, 2048K init, 276K bss, 31992K reserved, 155648K cma-reserved, 1020928K highmem)
[    0.000000] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                   vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
                   lowmem  : 0xc0000000 - 0xe0000000   ( 512 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)   ( 345 kB)
                      .bss : 0x(ptrval) - 0x(ptrval)   ( 277 kB)
[    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 priority boosting: priority 1 delay 500 ms.
[    0.000000] 	No expedited grace period (rcu_normal_after_boot).
[    0.000000] 	Tasks RCU enabled.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] OMAP clockevent source: timer1 at 32786 Hz
[    0.000000] arch_timer: cp15 timer(s) running at 6.14MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
[    0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
[    0.000012] Switching to timer-based delay loop, resolution 162ns
[    0.000283] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[    0.000287] OMAP clocksource: 32k_counter at 32768 Hz
[    0.000740] Console: colour dummy device 80x30
[    0.000884] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
[    0.000893] pid_max: default: 32768 minimum: 301
[    0.001031] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001039] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001734] CPU: Testing write buffer coherency: ok
[    0.001766] CPU0: Spectre v2: using ICIALLU workaround
[    0.002010] /cpus/cpu@0 missing clock-frequency property
[    0.002044] /cpus/cpu@1 missing clock-frequency property
[    0.002057] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.059938] Setting up static identity map for 0x80200000 - 0x80200060
[    0.099964] rcu: Hierarchical SRCU implementation.
[    0.160220] EFI services will not be available.
[    0.180105] smp: Bringing up secondary CPUs ...
[    0.320551] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.320556] CPU1: Spectre v2: using ICIALLU workaround
[    0.320683] smp: Brought up 1 node, 2 CPUs
[    0.320700] SMP: Total of 2 processors activated (24.59 BogoMIPS).
[    0.320709] CPU: All CPU(s) started in HYP mode.
[    0.320716] CPU: Virtualization extensions available.
[    0.321211] devtmpfs: initialized
[    0.350511] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    0.350774] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.350794] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.353388] pinctrl core: initialized pinctrl subsystem
[    0.353968] DMI not present or invalid.
[    0.354313] NET: Registered protocol family 16
[    0.355628] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.356553] omap_hwmod: l3_main_2 using broken dt data from ocp
[    0.554465] ------------[ cut here ]------------
[    0.554491] WARNING: CPU: 0 PID: 31 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x330/0x380
[    0.554502] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4_PER1_P3 (Read): Data Access in User mode during Functional access
[    0.554510] Modules linked in:
[    0.554525] CPU: 0 PID: 31 Comm: irq/23-l3-app-i Not tainted 4.19.94-rt39-ga242ccf3f1 #2
[    0.554528] Hardware name: Generic DRA74X (Flattened Device Tree)
[    0.554530] Backtrace: 
[    0.554543] [<c020c6a4>] (dump_backtrace) from [<c020c9dc>] (show_stack+0x18/0x1c)
[    0.554550]  r7:c0df7a94 r6:60000113 r5:00000000 r4:c125415c
[    0.554560] [<c020c9c4>] (show_stack) from [<c09feacc>] (dump_stack+0x9c/0xb0)
[    0.554571] [<c09fea30>] (dump_stack) from [<c022d120>] (__warn+0xdc/0xf8)
[    0.554576]  r7:c0df7a94 r6:00000009 r5:00000000 r4:dfa3be24
[    0.554586] [<c022d044>] (__warn) from [<c022cd30>] (warn_slowpath_fmt+0x50/0x6c)
[    0.554592]  r9:dfa12c40 r8:e0882164 r7:c0df79c0 r6:c0df7900 r5:c0df7a64 r4:c1207488
[    0.554601] [<c022cce4>] (warn_slowpath_fmt) from [<c0556f24>] (l3_interrupt_handler+0x330/0x380)
[    0.554605]  r3:dfa11880 r2:c0df7a64
[    0.554608]  r5:00000002 r4:80080003
[    0.554619] [<c0556bf4>] (l3_interrupt_handler) from [<c0289f0c>] (irq_forced_thread_fn+0x28/0xa0)
[    0.554625]  r10:00000001 r9:c0289ee4 r8:00000000 r7:ffffe000 r6:dfa11ca4 r5:dfa11c80
[    0.554627]  r4:df877800
[    0.554635] [<c0289ee4>] (irq_forced_thread_fn) from [<c028a2e4>] (irq_thread+0x140/0x22c)
[    0.554639]  r7:ffffe000 r6:dfa11ca4 r5:dfa11c80 r4:df877800
[    0.554649] [<c028a1a4>] (irq_thread) from [<c024c27c>] (kthread+0x160/0x168)
[    0.554654]  r10:df87ba94 r9:c028a1a4 r8:dfa11c80 r7:dfa3a000 r6:00000000 r5:dfa11cc0
[    0.554656]  r4:df9e70c0
[    0.554664] [<c024c11c>] (kthread) from [<c02010e0>] (ret_from_fork+0x14/0x34)
[    0.554667] Exception stack(0xdfa3bfb0 to 0xdfa3bff8)
[    0.554672] bfa0:                                     00000000 00000000 00000000 00000000
[    0.554676] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    0.554681] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    0.554686]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c024c11c
[    0.554688]  r4:dfa11cc0
[    0.554692] ---[ end trace 0000000000000001 ]---
[    0.564235] gpio gpiochip0: (gpio-0-31): added GPIO chardev (254:0)
[    0.564318] gpiochip_setup_dev: registered GPIOs 0 to 31 on device: gpiochip0 (gpio-0-31)
[    0.564484] OMAP GPIO hardware version 0.1
[    0.565255] gpio gpiochip1: (gpio-32-63): added GPIO chardev (254:1)
[    0.565336] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio-32-63)
[    0.566118] gpio gpiochip2: (gpio-64-95): added GPIO chardev (254:2)
[    0.566198] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio-64-95)
[    0.566978] gpio gpiochip3: (gpio-96-127): added GPIO chardev (254:3)
[    0.567053] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio-96-127)
[    0.567842] gpio gpiochip4: (gpio-128-159): added GPIO chardev (254:4)
[    0.567918] gpiochip_setup_dev: registered GPIOs 128 to 159 on device: gpiochip4 (gpio-128-159)
[    0.568708] gpio gpiochip5: (gpio-160-191): added GPIO chardev (254:5)
[    0.568788] gpiochip_setup_dev: registered GPIOs 160 to 191 on device: gpiochip5 (gpio-160-191)
[    0.569574] gpio gpiochip6: (gpio-192-223): added GPIO chardev (254:6)
[    0.569650] gpiochip_setup_dev: registered GPIOs 192 to 223 on device: gpiochip6 (gpio-192-223)
[    0.570447] gpio gpiochip7: (gpio-224-255): added GPIO chardev (254:7)
[    0.570521] gpiochip_setup_dev: registered GPIOs 224 to 255 on device: gpiochip7 (gpio-224-255)
[    0.591340] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.591353] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.592482] OMAP DMA hardware revision 0.0
[    0.623126] edma 43300000.edma: memcpy is disabled
[    0.627221] edma 43300000.edma: TI EDMA DMA engine driver
[    0.635938] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
[    0.636464] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-vmain[0]'
[    0.636732] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-v3_3d[0]'
[    0.636988] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-vtt[0]'
[    0.639674] omap-iommu 40d01000.mmu: 40d01000.mmu registered
[    0.639980] omap-iommu 40d02000.mmu: 40d02000.mmu registered
[    0.640353] omap-iommu 58882000.mmu: 58882000.mmu registered
[    0.640731] omap-iommu 55082000.mmu: 55082000.mmu registered
[    0.641319] omap-iommu 41501000.mmu: 41501000.mmu registered
[    0.641615] omap-iommu 41502000.mmu: 41502000.mmu registered
[    0.641883] iommu: Adding device 58820000.ipu to group 1
[    0.641960] iommu: Adding device 55020000.ipu to group 2
[    0.642082] iommu: Adding device 40800000.dsp to group 0
[    0.642282] iommu: Adding device 41000000.dsp to group 3
[    0.643592] SCSI subsystem initialized
[    0.644792] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
[    0.645862] palmas 2-0058: IRQ missing: skipping irq request
[    0.681768] palmas 2-0058: Muxing GPIO 2b, PWM 0, LED 0
[    0.685381] SMPS12: supplied by regulator-dummy
[    0.689869] SMPS3: supplied by regulator-dummy
[    0.694031] SMPS45: supplied by regulator-dummy
[    0.698946] SMPS6: supplied by regulator-dummy
[    0.703448] SMPS7: supplied by regulator-dummy
[    0.708366] SMPS8: supplied by regulator-dummy
[    0.712872] SMPS9: supplied by regulator-dummy
[    0.712949] random: fast init done
[    0.715249] LDO1: supplied by regulator-dummy
[    0.732763] LDO2: supplied by regulator-dummy
[    0.752322] LDO3: supplied by regulator-dummy
[    0.772362] LDO4: supplied by regulator-dummy
[    0.792359] LDO5: supplied by regulator-dummy
[    0.793960] LDO6: supplied by regulator-dummy
[    0.795538] LDO7: supplied by regulator-dummy
[    0.797133] LDO8: supplied by regulator-dummy
[    0.798717] LDO9: supplied by regulator-dummy
[    0.812432] LDOLN: supplied by regulator-dummy
[    0.822441] LDOUSB: supplied by regulator-dummy
[    0.835582] gpiochip_find_base: found new base at 504
[    0.835741] gpio gpiochip8: (48060000.i2c:tps659038@58:tps659038_gpio): added GPIO chardev (254:8)
[    0.835829] gpiochip_setup_dev: registered GPIOs 504 to 511 on device: gpiochip8 (48060000.i2c:tps659038@58:tps659038_gpio)
[    0.836158] omap_i2c 48060000.i2c: bus 2 rev0.12 at 100 kHz
[    0.836365] media: Linux media interface: v0.10
[    0.836414] videodev: Linux video capture interface: v2.00
[    0.836496] pps_core: LinuxPPS API ver. 1 registered
[    0.836506] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.836528] PTP clock support registered
[    0.836561] EDAC MC: Ver: 3.0.0
[    0.837455] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
[    0.837724] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
[    0.841237] Advanced Linux Sound Architecture Driver Initialized.
[    0.842156] clocksource: Switched to clocksource arch_sys_counter
[    0.852007] NET: Registered protocol family 2
[    0.852817] tcp_listen_portaddr_hash hash table entries: 256 (order: 1, 8192 bytes)
[    0.852849] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.852899] TCP bind hash table entries: 4096 (order: 4, 114688 bytes)
[    0.853037] TCP: Hash tables configured (established 4096 bind 4096)
[    0.853136] UDP hash table entries: 256 (order: 2, 16384 bytes)
[    0.853172] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
[    0.853359] NET: Registered protocol family 1
[    0.853845] RPC: Registered named UNIX socket transport module.
[    0.853856] RPC: Registered udp transport module.
[    0.853864] RPC: Registered tcp transport module.
[    0.853872] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.853883] PCI: CLS 0 bytes, default 64
[    0.854927] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    0.855146] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    0.856280] Initialise system trusted keyrings
[    0.856422] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    0.863270] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.863862] NFS: Registering the id_resolver key type
[    0.863886] Key type id_resolver registered
[    0.863896] Key type id_legacy registered
[    0.863942] ntfs: driver 2.1.32 [Flags: R/O].
[    0.865584] Key type asymmetric registered
[    0.865596] Asymmetric key parser 'x509' registered
[    0.865666] bounce: pool size: 64 pages
[    0.865702] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.865713] io scheduler noop registered
[    0.865722] io scheduler deadline registered
[    0.865914] io scheduler cfq registered (default)
[    0.865924] io scheduler mq-deadline registered
[    0.865934] io scheduler kyber registered
[    0.872224] pinctrl-single 4a003400.pinmux: 282 pins, size 1128
[    0.876117] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1
[    0.876298] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
[    0.876305] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
[    0.876325] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]'
[    0.876339] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/ocp/axi@0/pcie@51000000[0]'
[    0.876349] dra7-pcie 51000000.pcie: using lookup tables for GPIO lookup
[    0.876357] dra7-pcie 51000000.pcie: No GPIO consumer (null) found
[    0.876563] dra7-pcie 51000000.pcie: host bridge /ocp/axi@0/pcie@51000000 ranges:
[    0.876603] dra7-pcie 51000000.pcie:    IO 0x20003000..0x20012fff -> 0x00000000
[    0.876631] dra7-pcie 51000000.pcie:   MEM 0x20013000..0x2fffffff -> 0x20013000
[    1.876913] dra7-pcie 51000000.pcie: Phy link never came up
[    1.877071] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
[    1.877088] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.877100] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    1.877112] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
[    1.877149] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400
[    1.877183] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
[    1.877246] pci 0000:00:00.0: supports D1
[    1.877253] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    1.883144] PCI: bus0: Fast back to back transfers disabled
[    1.888632] PCI: bus1: Fast back to back transfers enabled
[    1.888677] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit]
[    1.888697] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    1.889194] pcieport 0000:00:00.0: Signaling PME with IRQ 168
[    1.889451] pcieport 0000:00:00.0: AER enabled with IRQ 168
[    1.893270] V3_3D: supplied by smps9
[    1.893821] vtt_fixed: supplied by V3_3D
[    1.949996] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    1.953669] console [ttyS2] disabled
[    1.953731] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 45, base_baud = 3000000) is a 8250
[    3.249168] console [ttyS2] enabled
[    3.254956] omap_rng 48090000.rng: Random Number Generator ver. 20
[    3.255530] random: crng init done
[    3.265732] omapdss_dss 58000000.dss: Linked as a consumer to regulator.20
[    3.272796] DSS: OMAP DSS rev 6.1
[    3.279413] omapdss_hdmi5 58040000.encoder: Linked as a consumer to regulator.13
[    3.286940] omapdss_hdmi5 58040000.encoder: Dropping the link to regulator.13
[    3.294475] tpd12s015 encoder@0: GPIO lookup for consumer (null)
[    3.294483] tpd12s015 encoder@0: using device tree for GPIO lookup
[    3.294500] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/encoder@0[0]'
[    3.294514] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/encoder@0[0]'
[    3.294523] tpd12s015 encoder@0: using lookup tables for GPIO lookup
[    3.294531] tpd12s015 encoder@0: No GPIO consumer (null) found
[    3.294539] tpd12s015 encoder@0: GPIO lookup for consumer (null)
[    3.294545] tpd12s015 encoder@0: using device tree for GPIO lookup
[    3.294559] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/encoder@0[1]'
[    3.294572] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/encoder@0[1]'
[    3.294580] tpd12s015 encoder@0: using lookup tables for GPIO lookup
[    3.294587] tpd12s015 encoder@0: No GPIO consumer (null) found
[    3.294595] tpd12s015 encoder@0: GPIO lookup for consumer (null)
[    3.294601] tpd12s015 encoder@0: using device tree for GPIO lookup
[    3.294626] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder@0[2]' - status (0)
[    3.294663] gpio gpiochip1: Persistence not supported for GPIO 31
[    3.295410] connector-hdmi connector@0: GPIO lookup for consumer hpd
[    3.295418] connector-hdmi connector@0: using device tree for GPIO lookup
[    3.295433] of_get_named_gpiod_flags: can't parse 'hpd-gpios' property of node '/connector@0[0]'
[    3.295447] of_get_named_gpiod_flags: can't parse 'hpd-gpio' property of node '/connector@0[0]'
[    3.295456] connector-hdmi connector@0: using lookup tables for GPIO lookup
[    3.295463] connector-hdmi connector@0: No GPIO consumer hpd found
[    3.299580] tc358768: probe of 2-0068 failed with error -2
[    3.314296] brd: module loaded
[    3.325305] loop: module loaded
[    3.343769] m25p80 spi0.0: unrecognized JEDEC id bytes: ff, ff, ff
[    3.350522] mdio_bus fixed-0: GPIO lookup for consumer reset
[    3.350531] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    3.350539] mdio_bus fixed-0: No GPIO consumer reset found
[    3.350567] libphy: Fixed MDIO Bus: probed
[    3.358361] mdio_bus 48485000.mdio: GPIO lookup for consumer reset
[    3.358369] mdio_bus 48485000.mdio: using device tree for GPIO lookup
[    3.358394] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@48484000/mdio@48485000[0]'
[    3.358409] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/ethernet@48484000/mdio@48485000[0]'
[    3.358418] mdio_bus 48485000.mdio: using lookup tables for GPIO lookup
[    3.358426] mdio_bus 48485000.mdio: No GPIO consumer reset found
[    3.412213] davinci_mdio 48485000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    3.419910] davinci_mdio 48485000.mdio: detected phy mask fffffffd
[    3.428497] libphy: 48485000.mdio: probed
[    3.432534] davinci_mdio 48485000.mdio: phy[1]: device 48485000.mdio:01, driver Marvell 88E1510
[    3.441995] cpsw 48484000.ethernet: Detected MACID = 88:3f:4a:5e:e6:8a
[    3.448629] cpsw 48484000.ethernet: initialized cpsw ale version 1.4
[    3.455017] cpsw 48484000.ethernet: ALE Table size 1024
[    3.460310] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies)
[    3.468476] cpsw 48484000.ethernet: cpsw: Detected MACID = 88:3f:4a:5e:e6:8b
[    3.502821] rtc-ds1307 0-006f: read: c2 20 23 2c 29 27 20
[    3.502833] rtc-ds1307 0-006f: read secs=42, mins=20, hours=23, mday=29, mon=6, year=120, wday=3
[    3.502998] rtc-ds1307 0-006f: char device (253:0)
[    3.503016] rtc-ds1307 0-006f: registered as rtc0
[    3.507954] i2c /dev entries driver
[    3.513350] gpio-fan gpio_fan: GPIO lookup for consumer alarm
[    3.513357] gpio-fan gpio_fan: using device tree for GPIO lookup
[    3.513395] of_get_named_gpiod_flags: parsed 'alarm-gpios' property of node '/gpio_fan[0]' - status (0)
[    3.513435] gpio gpiochip6: Persistence not supported for GPIO 17
[    3.513451] gpio-fan gpio_fan: GPIO lookup for consumer (null)
[    3.513457] gpio-fan gpio_fan: using device tree for GPIO lookup
[    3.513480] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio_fan[0]' - status (0)
[    3.513493] gpio gpiochip6: Persistence not supported for GPIO 27
[    3.513498] no flags found for (null)
[    3.513930] gpio-fan gpio_fan: GPIO fan initialized
[    3.520011] tmp102 0-0048: initialized
[    3.526344] sdhci: Secure Digital Host Controller Interface driver
[    3.532686] sdhci: Copyright(c) Pierre Ossman
[    3.537945] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.544487] sdhci-omap 4809c000.mmc: GPIO lookup for consumer cd
[    3.544495] sdhci-omap 4809c000.mmc: using device tree for GPIO lookup
[    3.544521] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@4809c000[0]' - status (0)
[    3.544557] gpio gpiochip5: Persistence not supported for GPIO 27
[    3.544569] omap_gpio 4805d000.gpio: Could not set line 27 debounce to 200000 microseconds (-22)
[    3.553399] sdhci-omap 4809c000.mmc: Got CD GPIO
[    3.558043] sdhci-omap 4809c000.mmc: GPIO lookup for consumer wp
[    3.558050] sdhci-omap 4809c000.mmc: using device tree for GPIO lookup
[    3.558065] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@4809c000[0]'
[    3.558080] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@4809c000[0]'
[    3.558089] sdhci-omap 4809c000.mmc: using lookup tables for GPIO lookup
[    3.558097] sdhci-omap 4809c000.mmc: No GPIO consumer wp found
[    3.558269] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.26
[    3.565662] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.11
[    3.572573] sdhci-omap 4809c000.mmc: Dropping the link to regulator.11
[    3.579232] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.2
[    3.586506] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.11
[    3.593446] sdhci-omap 4809c000.mmc: no pinctrl state for ddr_3_3v mode
[    3.627908] mmc0: SDHCI controller on 4809c000.mmc [4809c000.mmc] using ADMA
[    3.635300] sdhci-omap 480b4000.mmc: GPIO lookup for consumer wp
[    3.635307] sdhci-omap 480b4000.mmc: using device tree for GPIO lookup
[    3.635323] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@480b4000[0]'
[    3.635337] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@480b4000[0]'
[    3.635346] sdhci-omap 480b4000.mmc: using lookup tables for GPIO lookup
[    3.635353] sdhci-omap 480b4000.mmc: No GPIO consumer wp found
[    3.635551] sdhci-omap 480b4000.mmc: Linked as a consumer to regulator.2
[    3.642353] sdhci-omap 480b4000.mmc: Dropping the link to regulator.2
[    3.648936] sdhci-omap 480b4000.mmc: Linked as a consumer to regulator.2
[    3.681613] mmc1: SDHCI controller on 480b4000.mmc [480b4000.mmc] using ADMA
[    3.688720] mmc0: host does not support reading read-only switch, assuming write-enable
[    3.692688] of_get_named_gpiod_flags: parsed 'gpios' property of node '/status-leds/usr0-led[0]' - status (0)
[    3.692725] gpio gpiochip4: Persistence not supported for GPIO 5
[    3.692729] no flags found for gpios
[    3.692847] of_get_named_gpiod_flags: parsed 'gpios' property of node '/status-leds/heartbeat-led[0]' - status (0)
[    3.692879] gpio gpiochip3: Persistence not supported for GPIO 19
[    3.692883] no flags found for gpios
[    3.692993] of_get_named_gpiod_flags: parsed 'gpios' property of node '/status-leds/mmc0-led[0]' - status (0)
[    3.693005] gpio gpiochip4: Persistence not supported for GPIO 0
[    3.693009] no flags found for gpios
[    3.698824] mmc0: new high speed SDHC card at address 0001
[    3.699722] NET: Registered protocol family 10
[    3.709623] mmcblk0: mmc0:0001 SD16G 14.5 GiB 
[    3.710914] Segment Routing with IPv6
[    3.710984] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.711597] NET: Registered protocol family 17
[    3.711851] Key type dns_resolver registered
[    3.712000] Registering SWP/SWPB emulation handler
[    3.712006] omap_voltage_late_init: Voltage driver support not added
[    3.712009] Power Management for TI OMAP4+ devices.
[    3.713111] Loading compiled-in X.509 certificates
[    3.756489] dmm 4e000000.dmm: workaround for errata i878 in use
[    3.764768] dmm 4e000000.dmm: initialized all PAT entries
[    3.770301]  mmcblk0: p1 p2
[    3.771835] omapdss_hdmi5 58040000.encoder: Linked as a consumer to regulator.13
[    3.771953] omapdss_hdmi5 58040000.encoder: Dropping the link to regulator.13
[    3.772599] tpd12s015 encoder@0: GPIO lookup for consumer (null)
[    3.772605] tpd12s015 encoder@0: using device tree for GPIO lookup
[    3.772622] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/encoder@0[0]'
[    3.772634] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/encoder@0[0]'
[    3.772642] tpd12s015 encoder@0: using lookup tables for GPIO lookup
[    3.772649] tpd12s015 encoder@0: No GPIO consumer (null) found
[    3.772656] tpd12s015 encoder@0: GPIO lookup for consumer (null)
[    3.772660] tpd12s015 encoder@0: using device tree for GPIO lookup
[    3.772672] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/encoder@0[1]'
[    3.772683] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/encoder@0[1]'
[    3.772689] tpd12s015 encoder@0: using lookup tables for GPIO lookup
[    3.772695] tpd12s015 encoder@0: No GPIO consumer (null) found
[    3.772701] tpd12s015 encoder@0: GPIO lookup for consumer (null)
[    3.772705] tpd12s015 encoder@0: using device tree for GPIO lookup
[    3.772731] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder@0[2]' - status (0)
[    3.772782] gpio gpiochip1: Persistence not supported for GPIO 31
[    3.774066] omapdss_hdmi5 58040000.encoder: Linked as a consumer to regulator.13
[    3.774527] omapdss_dss 58000000.dss: bound 58001000.dispc (ops dispc_component_ops)
[    3.774852] omapdss_dss 58000000.dss: bound 58040000.encoder (ops hdmi5_component_ops)
[    3.812519] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.819167] [drm] No driver support for vblank timestamp query.
[    3.825146] [drm] Cannot find any crtc or sizes
[    3.827695] mmc1: new DDR MMC card at address 0001
[    3.835608] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
[    3.838584] mmcblk1: mmc1:0001 IS008G 7.28 GiB 
[    3.839091] mmcblk1boot0: mmc1:0001 IS008G partition 1 4.00 MiB
[    3.839601] mmcblk1boot1: mmc1:0001 IS008G partition 2 4.00 MiB
[    3.839828] mmcblk1rpmb: mmc1:0001 IS008G partition 3 4.00 MiB, chardev (243:0)
[    3.840921]  mmcblk1: p1 p2
[    3.870255] rtc-ds1307 0-006f: read: c2 20 23 2c 29 27 20
[    3.870267] rtc-ds1307 0-006f: read secs=42, mins=20, hours=23, mday=29, mon=6, year=120, wday=3
[    3.870298] rtc-ds1307 0-006f: setting system clock to 2020-07-29 23:20:42 UTC (1596064842)
[    3.879440] ALSA device list:
[    3.882429]   No soundcards found.
[    3.919579] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    3.927754] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.942314] devtmpfs: mounted
[    3.946775] Freeing unused kernel memory: 2048K
[    3.951478] Run /sbin/init as init process
[    4.378207] systemd[1]: systemd 239 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)
[    4.400053] systemd[1]: Detected architecture arm.
[    4.433381] systemd[1]: Set hostname to <MB-Rev1a>.
[    4.714207] systemd[1]: File /lib/systemd/system/systemd-journald.service:36 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[    4.731348] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[    4.872259] [drm] Cannot find any crtc or sizes
[    5.001101] systemd[1]: Created slice User and Session Slice.
[    5.032353] systemd[1]: Reached target Slices.
[    5.062839] systemd[1]: Listening on udev Control Socket.
[    5.094886] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    5.122542] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    5.802060] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    6.343968] systemd-journald[140]: Received request to flush runtime journal from PID 1
[    7.632771] omap-rproc 58820000.ipu: ignoring dependency for device, assuming no driver
[    7.673492] omap-rproc 58820000.ipu: ignoring dependency for device, assuming no driver
[    7.681547] omap-rproc 58820000.ipu: assigned reserved memory node ipu1-memory@9d000000
[    7.703013] remoteproc remoteproc0: 58820000.ipu is available
[    7.709633] omap-rproc 55020000.ipu: ignoring dependency for device, assuming no driver
[    7.710159] remoteproc remoteproc0: Direct firmware load for dra7-ipu1-fw.xem4 failed with error -2
[    7.710170] remoteproc remoteproc0: powering up 58820000.ipu
[    7.710198] remoteproc remoteproc0: Direct firmware load for dra7-ipu1-fw.xem4 failed with error -2
[    7.710207] remoteproc remoteproc0: request_firmware failed: -2
[    7.749579] omap-rproc 55020000.ipu: ignoring dependency for device, assuming no driver
[    7.757723] omap-rproc 55020000.ipu: assigned reserved memory node ipu2-memory@95800000
[    7.788383] remoteproc remoteproc1: 55020000.ipu is available
[    7.808841] remoteproc remoteproc1: Direct firmware load for dra7-ipu2-fw.xem4 failed with error -2
[    7.837957] remoteproc remoteproc1: powering up 55020000.ipu
[    7.844145] omap-rproc 40800000.dsp: ignoring dependency for device, assuming no driver
[    7.854713] remoteproc remoteproc1: Direct firmware load for dra7-ipu2-fw.xem4 failed with error -2
[    7.854971] omap-rproc 40800000.dsp: ignoring dependency for device, assuming no driver
[    7.862312] remoteproc remoteproc1: request_firmware failed: -2
[    7.880880] omap-rproc 40800000.dsp: assigned reserved memory node dsp1-memory@99000000
[    7.913923] remoteproc remoteproc2: 40800000.dsp is available
[    7.920053] remoteproc remoteproc2: Direct firmware load for dra7-dsp1-fw.xe66 failed with error -2
[    7.930624] omap-rproc 41000000.dsp: ignoring dependency for device, assuming no driver
[    7.937091] remoteproc remoteproc2: powering up 40800000.dsp
[    7.937128] remoteproc remoteproc2: Direct firmware load for dra7-dsp1-fw.xe66 failed with error -2
[    7.937136] remoteproc remoteproc2: request_firmware failed: -2
[    7.961985] omap-rproc 41000000.dsp: ignoring dependency for device, assuming no driver
[    7.970267] omap-rproc 41000000.dsp: assigned reserved memory node dsp2-memory@9f000000
[    7.994584] remoteproc remoteproc3: 41000000.dsp is available
[    8.000514] remoteproc remoteproc3: Direct firmware load for dra7-dsp2-fw.xe66 failed with error -2
[    8.035687] remoteproc remoteproc3: powering up 41000000.dsp
[    8.059411] remoteproc remoteproc3: Direct firmware load for dra7-dsp2-fw.xe66 failed with error -2
[    8.071268] remoteproc remoteproc3: request_firmware failed: -2
[    8.738109] Driver for 1-wire Dallas network protocol.
[    8.778831] ov2659 0-0030: GPIO lookup for consumer pwrdn
[    8.778841] ov2659 0-0030: using device tree for GPIO lookup
[    8.778877] of_get_named_gpiod_flags: parsed 'pwrdn-gpios' property of node '/ocp/i2c@48070000/ov2659@30[0]' - status (0)
[    8.778894] gpio gpiochip5: Persistence not supported for GPIO 14
[    8.781455] ov2659 0-0030: Sensor detection failed (3030, 0)
[    8.808142] omap-des 480a5000.des: OMAP DES hw accel rev: 2.2
[    8.833119] omap-des 480a5000.des: will run requests pump with realtime priority
[    8.872271] omap_hdq 480b2000.1w: OMAP HDQ Hardware Rev 0.:. Driver in Interrupt mode
[    9.102285] w1_master_driver w1_bus_master1: Attaching one wire slave 01.000000000000 crc 3d
[    9.133494] w1_master_driver w1_bus_master1: Family 1 for 01.000000000000.3d is not registered.
[    9.330817] omap_rtc 48838000.rtc: already running
[    9.366983] omap_rtc 48838000.rtc: char device (253:1)
[    9.366997] omap_rtc 48838000.rtc: registered as rtc1
[    9.604748] vip 48990000.vip: loading firmware vpdma-1b8.bin
[    9.611155] vpe 489d0000.vpe: loading firmware vpdma-1b8.bin
[    9.625757] net eth0: initializing cpsw version 1.15 (0)
[    9.642288] vip 48990000.vip: VPDMA firmware loaded
[    9.658815] libphy: PHY 48485000.mdio:00 not found
[    9.663032] vpe 489d0000.vpe: Device registered as /dev/video0
[    9.732524] net eth0: phy "48485000.mdio:00" not found on slave 0, err -19
[    9.765828] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   10.077892] net eth1: initializing cpsw version 1.15 (0)
[   10.208220] Marvell 88E1510 48485000.mdio:01: attached PHY driver [Marvell 88E1510] (mii_bus:phy_addr=48485000.mdio:01, irq=POLL)
[   10.284157] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   10.577894] phy phy-4a084000.phy.4: Linked as a consumer to regulator.21
[   10.619508] phy phy-4a085000.phy.5: Linked as a consumer to regulator.21
[   10.762314] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[   10.829428] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3
[   10.863729] CAN device driver interface
[   10.885281] c_can_platform 4ae3c000.can: c_can_platform device registered (regs=6e9ff22b, irq=88)
[   10.900102] omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3
[   10.910182] omap-aes 4b500000.aes: will run requests pump with realtime priority
[   10.953725] omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3
[   10.972047] omap-aes 4b700000.aes: will run requests pump with realtime priority
[   11.355949] omap-hdmi-audio omap-hdmi-audio.0.auto: snd-soc-dummy-dai <-> 58040000.encoder mapping ok
[   11.384158] omap-hdmi-audio omap-hdmi-audio.0.auto: ASoC: no DMI vendor name!
[   11.472620] mdio_bus 4b2b2400.mdio: GPIO lookup for consumer reset
[   11.472633] mdio_bus 4b2b2400.mdio: using device tree for GPIO lookup
[   11.472654] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/pruss-soc-bus@4b2a6004/pruss@4b280000/mdio@4b2b2400[0]'
[   11.472672] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/pruss-soc-bus@4b2a6004/pruss@4b280000/mdio@4b2b2400[0]'
[   11.472683] mdio_bus 4b2b2400.mdio: using lookup tables for GPIO lookup
[   11.472693] mdio_bus 4b2b2400.mdio: No GPIO consumer reset found
[   11.532864] davinci_mdio 4b2b2400.mdio: davinci mdio revision 1.6, bus freq 1000000
[   11.544990] libphy: 4b2b2400.mdio: probed
[   11.559232] mdio_bus 4b2b2400.mdio: MDIO device at address 0 is missing.
[   11.620341] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/pruss-soc-bus@4b2a6004/pruss@4b280000/mdio@4b2b2400/ethernet-phy@1[0]'
[   11.629587] davinci_mdio 4b2b2400.mdio: phy[1]: device 4b2b2400.mdio:01, driver TI DP83620 10/100 Mbps PHY
[   11.710727] remoteproc remoteproc4: 4b234000.pru is available
[   11.735086] pru-rproc 4b234000.pru: PRU rproc node pru@4b234000 probed successfully
[   11.771352] remoteproc remoteproc5: 4b238000.pru is available
[   11.802773] pru-rproc 4b238000.pru: PRU rproc node pru@4b238000 probed successfully
[   11.865242] remoteproc remoteproc6: 4b2b4000.pru is available
[   11.881657] pru-rproc 4b2b4000.pru: PRU rproc node pru@4b2b4000 probed successfully
[   11.915521] remoteproc remoteproc7: 4b2b8000.pru is available
[   11.935247] pru-rproc 4b2b8000.pru: PRU rproc node pru@4b2b8000 probed successfully
[   15.004070] dwc3 48890000.usb: Failed to get clk 'ref': -2
[   15.037161] dwc3 488d0000.usb: Failed to get clk 'ref': -2
[   15.247419] usbcore: registered new interface driver usbfs
[   15.263417] usbcore: registered new interface driver hub
[   15.286217] usbcore: registered new device driver usb
[   15.321597] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[   15.327149] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[   15.337050] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x0000000002010010
[   15.348392] xhci-hcd xhci-hcd.1.auto: irq 176, io mem 0x48890000
[   15.355715] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[   15.364364] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   15.371622] usb usb1: Product: xHCI Host Controller
[   15.377145] usb usb1: Manufacturer: Linux 4.19.94-rt39-ga242ccf3f1 xhci-hcd
[   15.384466] usb usb1: SerialNumber: xhci-hcd.1.auto
[   15.389996] hub 1-0:1.0: USB hub found
[   15.397020] hub 1-0:1.0: 1 port detected
[   15.407732] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[   15.417249] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[   15.428827] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[   15.437533] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   15.446267] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
[   15.455938] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   15.463621] usb usb2: Product: xHCI Host Controller
[   15.468525] usb usb2: Manufacturer: Linux 4.19.94-rt39-ga242ccf3f1 xhci-hcd
[   15.476087] usb usb2: SerialNumber: xhci-hcd.1.auto
[   15.481618] hub 2-0:1.0: USB hub found
[   15.487399] hub 2-0:1.0: 1 port detected
[   15.495512] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[   15.501058] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 3
[   15.510939] xhci-hcd xhci-hcd.2.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x0000000002010010
[   15.521780] xhci-hcd xhci-hcd.2.auto: irq 177, io mem 0x488d0000
[   15.525031] cpsw 48484000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[   15.525073] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   15.564931] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[   15.573705] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   15.580969] usb usb3: Product: xHCI Host Controller
[   15.587360] usb usb3: Manufacturer: Linux 4.19.94-rt39-ga242ccf3f1 xhci-hcd
[   15.594971] usb usb3: SerialNumber: xhci-hcd.2.auto
[   15.600485] hub 3-0:1.0: USB hub found
[   15.606422] hub 3-0:1.0: 1 port detected
[   15.613757] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
[   15.619288] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 4
[   15.629989] xhci-hcd xhci-hcd.2.auto: Host supports USB 3.0 SuperSpeed
[   15.637458] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[   15.646293] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
[   15.654962] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   15.662580] usb usb4: Product: xHCI Host Controller
[   15.667482] usb usb4: Manufacturer: Linux 4.19.94-rt39-ga242ccf3f1 xhci-hcd
[   15.675154] usb usb4: SerialNumber: xhci-hcd.2.auto
[   15.680694] hub 4-0:1.0: USB hub found
[   15.686341] hub 4-0:1.0: 1 port detected
[   15.883586] rtc-ds1307 0-006f: write secs=55, mins=20, hours=23, mday=29, mon=6, year=120, wday=3
[   15.883599] rtc-ds1307 0-006f: write: d5 20 23 0c 29 07 20
[   15.884173] rtc-ds1307 0-006f: read: d5 20 23 2c 29 27 20
[   15.884185] rtc-ds1307 0-006f: read secs=55, mins=20, hours=23, mday=29, mon=6, year=120, wday=3
[   19.808895] rtc-ds1307 0-006f: write secs=58, mins=20, hours=23, mday=29, mon=6, year=120, wday=3
[   19.808909] rtc-ds1307 0-006f: write: d8 20 23 0c 29 07 20
[   19.811210] rtc-ds1307 0-006f: read: d8 20 23 2c 29 27 20
[   19.811225] rtc-ds1307 0-006f: read secs=58, mins=20, hours=23, mday=29, mon=6, year=120, wday=3
[   20.211152] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)



Thank you for your help

Greg.

  • Greg, 

    You kernel log shows link is not up. since you PERST signal is tie to the board reset pin, can you check if your system can satisfy the 100ms minimium time requirement between power ready and REFCLK stable to the deassertion of PERST? From you description, I suspect the REFCLK was not ready when the PERST was deassertated. 

    I attached the PCIe CEM spec. section and diagram for quick reference below. 

    regards

    Jian.

    "On power up, the deassertion of PERST# is delayed 100 ms (TPVPERL) from the power rails achieving specified operating limits. Also, within this time, the reference clocks (REFCLK+, REFCLK-) also become stable, at least TPERST-CLK before PERST# is deasserted." 

  • Hi Jian,
    I have modified the board to flywire PERST# to gpio3 25 with a 2k2 pulldown to ground.  The u-boot pinmux sets this pin as a gpio output.                

                                                    +-------+
    +-----------------+                             | M.2   |
    | am5728          | AE6        PERST#         50|       |
    |        gpio3 25 |-----------------------------|PERST# |
    |  output_pulldown|                 |           |       |
    +-----------------+                 /           |       |
                                        \ R=2k2     |       |
                                        /           +-------+
                                        \
                                        |

                                                                               GND

    With the M.2 connector empty, I can see the PERST# voltage is 0V during booting though u-boot, and changes to  1.8V during the Kernel boot.  When an ssd is plugged into the M.2 connector PERST# is 0.53V during u-boot and again 1.8V during the Kernel boot.  This is summarized below:

        U-boot boot No PCIe card   PERST# = 0V
        Kernel boot No PCIe card   PERST# = 1.8V

        U-boot boot with PCIe card PERST# = 0.53V
        Kernel boot with PCIe card PERST# = 1.8V

    I added gpios to the device tree

    &pcie1_rc {
        status = "okay";
        gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>;
        };

    The boot messages no longer complains about missing gpios, but the message "Phy never came up" remains.

    [    0.827469] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1
    [    0.827598] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
    [    0.827606] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
    [    0.827640] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0)
    [    0.827888] dra7-pcie 51000000.pcie: host bridge /ocp/axi@0/pcie@51000000 ranges:
    [    0.827928] dra7-pcie 51000000.pcie:    IO 0x20003000..0x20012fff -> 0x00000000
    [    0.827956] dra7-pcie 51000000.pcie:   MEM 0x20013000..0x2fffffff -> 0x20013000
    [    1.823716] dra7-pcie 51000000.pcie: Phy link never came up
    [    1.823868] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
    [    1.836211] pcieport 0000:00:00.0: Signaling PME with IRQ 169
    [    1.836456] pcieport 0000:00:00.0: AER enabled with IRQ 169

    * Is this board modification acceptable?  * When we make a board revision, is this the modification we should make?

    * What can you recommend as a next step to getting the PCIe working?

    Thank you for your help.

    Greg

  • Greg, 

    I am not sure if the 0.53v is considered logic "0" when GPIO drive it to low. could you read the PADCONFIG register associated with this GPIO pin and see whether the internal pull has been enabled? With the internal pull, I am not sure if the external pull is needed. will need to check how we implemented on the EVM. 

    regards

    Jian

  • Background
    * I am using a Linux RT build from the TI SDK 6.03.00.106.
    * The Linux Kernel .config file has CONFIG_BLK_DEV_NVME=y and CONFIG_NVME_CORE=y
    * The M.2 connector has 2 PCIe lanes from the am5728
    * The M.2 connector does not have the SMBus connected.
    * My device tree includes dra74x.dtsi and dra7.dtsi with pcie definitions.

    My primary goal is to validate the PCIe hardware design (with a Western Digital SN520 M.2 NVMe SSD) before the next design revision.  Please let me know if the software configuration looks correct and any recommendations.  If the software configuration looks correct, I'd like to send the PCIe M.2 schematic excerpt.

    PERST#
       I now have a proper ground signal for the M.2 PCIe PERST# pin.
       The PERST# is coming from the am572x pin B24 (gpio7_17).
       I command PERST# to ground (54mV) in u-boot.  While booting the Linux kernel, PERST# transitions to 3.3V.
       The Linux device tree now has the reset pin defined:
            &pcie1_rc {
                status = "okay";
                gpios = <&gpio7 17 GPIO_ACTIVE_HIGH>;
            };

    Kernel messages
    # dmesg |grep pci
    [    0.817051] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1
    [    0.817229] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
    [    0.817237] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
    [    0.817271] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0)
    [    0.817520] dra7-pcie 51000000.pcie: host bridge /ocp/axi@0/pcie@51000000 ranges:
    [    0.817562] dra7-pcie 51000000.pcie:    IO 0x20003000..0x20012fff -> 0x00000000
    [    0.817595] dra7-pcie 51000000.pcie:   MEM 0x20013000..0x2fffffff -> 0x20013000
    [    1.817880] dra7-pcie 51000000.pcie: Phy link never came up
    [    1.818032] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
    [    1.818049] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    1.818061] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
    [    1.818072] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
    [    1.818109] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400
    [    1.818142] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
    [    1.818203] pci 0000:00:00.0: supports D1
    [    1.818211] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [    1.829654] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit]
    [    1.829675] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
    [    1.830167] pcieport 0000:00:00.0: Signaling PME with IRQ 169
    [    1.830414] pcieport 0000:00:00.0: AER enabled with IRQ 169
    [    3.464717] gpio-209 (51000000.pcie): gpiod_request: status -16

    # lspci -v
    00:00.0 PCI bridge: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01) (prog-if 00 [Normal decode])
            Flags: bus master, fast devsel, latency 0, IRQ 169
            Memory at 20100000 (64-bit, non-prefetchable) [size=1M]
            Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
            I/O behind bridge: None
            Memory behind bridge: None
            Prefetchable memory behind bridge: None
            Capabilities: [40] Power Management version 3
            Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
            Capabilities: [70] Express Root Port (Slot-), MSI 00
            Capabilities: [100] Advanced Error Reporting
            Kernel driver in use: pcieport

    Thank you for your help.
    Greg

  • Greg, 

    Sorry for the delay, I was sidetracked.

    Since link training is still failing, I am thinking two steps of debugging:

    1. verify card init sequence is met by probing power, PERST# and REFCLK sequence. Specifically:

        a. Confirm how refclk is supplies to the M.2 slot

        b. capture a sequence of PERST and REFCLK on the same scope and view sequence. if you can put the power line there too, even better.

         c. please also share other entries in your dts for pcie1_rc. including interrupts  

    2. if all hardware issues checked out, we may need to poke some controller and PHY registers. by any chance you have access to a PCIe analyzer?

    3  have you tried to connect a ssd to a TI EVM, either the AM57 EVM or DRA7 via an adapter? 

    regards

    jian