cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
koolscooby
Observer
Observer
6,523 Views
Registered: ‎10-15-2016

ZCU102 PCIe Slave Errors

Hi All,

 

I'm trying to get PCIe working on the ZCU102. The end goal is a PCIe WiFi adapter based on a Marvell chipset. I've made some progress, but I hit a wall and I'm hoping someone else can help.

 

  1. I've enabled PCIe in the MPSoC IP block configuration in Vivado and I've exported that hardware to Xilinx SDK. I've used that hardware profile to build a FSBL.
    IO Config.png
    Clock Config.png
    PCIe Config.png
  2. I've enabled PCIe in linux by enabling the NWL PCIe driver and MSI support, and I've edited my device tree for various things:
    In zynqmp-zcu102.dts:
    ...
    &pcie { status = "okay"; };
    ...
    I also commented out the DisplayPort status="okay" to avoid conflicts w/ DisplayPort - even though I believe I changed it from dual-link to single-link; also changed the GPIO to output-low to enable the GTR mux for PCIe on lane 0.
    ...
    &xlnx_dp { /* status = "okay"; */ phy-names = "dp-phy0"; /* "dp-phy1"; */ phys = <&lane1 PHY_TYPE_DP 0 3 27000000>; /*, <&lane0 PHY_TYPE_DP 1 3 27000000>; */ };
    ...
    tca6416_u97: gpio@20 {
    		/*
    		 * Enable all GTs to out from U-Boot
    		 * i2c mw 20 6 0  - setup IO to output
    		 * i2c mw 20 2 ef - setup output values on pins 0-7
    		 * i2c mw 20 3 ff - setup output values on pins 10-17
    		 */
    		compatible = "ti,tca6416";
    		reg = <0x20>;
    		gpio-controller;
    		#gpio-cells = <2>;
    		/*
    		 * IRQ not connected
    		 * Lines:
    		 * 0 - PS_GTR_LAN_SEL0
    		 * 1 - PS_GTR_LAN_SEL1
    		 * 2 - PS_GTR_LAN_SEL2
    		 * 3 - PS_GTR_LAN_SEL3
    		 * 4 - PCI_CLK_DIR_SEL
    		 * 5 - IIC_MUX_RESET_B
    		 * 6 - GEM3_EXP_RESET_B
    		 * 7, 10 - 17 - not connected
    		 */
    
    		gtr_sel0 {
    			gpio-hog;
    			gpios = <0 0>;
    			output-low; /* PCIE = 0, DP = 1 */ /* BH: changed from output-high to output-low to enable PCIe. */
    			line-name = "sel0";
    		};
    		gtr_sel1 {
    			gpio-hog;
    			gpios = <1 0>;
    			output-high; /* PCIE = 0, DP = 1 */
    			line-name = "sel1";
    		};
    		gtr_sel2 {
    			gpio-hog;
    			gpios = <2 0>;
    			output-high; /* PCIE = 0, USB0 = 1 */
    			line-name = "sel2";
    		};
    		gtr_sel3 {
    			gpio-hog;
    			gpios = <3 0>;
    			output-high; /* PCIE = 0, SATA = 1 */
    			line-name = "sel3";
    		};
    	};
  3. Devices DO successfully enumerate. Without the endpoint device's device driver built into the kernel, PCIe enumeration works and I can boot the system and run lspci to see the device(s). this works with a couple of different PCIe WiFi cards I have laying around.
  4. As soon as I build the device driver into the kernel, the correct device driver enumerates followed by a crash; entire log attached.
    [    2.169591] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    [    2.174993] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
    [    2.181635] nwl-pcie fd0e0000.pcie: Link is UP
    [    2.185989] PCI host bridge /amba/pcie@fd0e0000 ranges:
    [    2.191149]   No bus range found for /amba/pcie@fd0e0000, using [bus 00-ff]
    [    2.198077]   MEM 0xe0000000..0xefffffff -> 0xe0000000
    [    2.203173]   MEM 0x600000000..0x7ffffffff -> 0x600000000
    [    2.208617] nwl-pcie fd0e0000.pcie: PCI host bridge to bus 0000:00
    [    2.214679] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    2.220125] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff]
    [    2.226958] pci_bus 0000:00: root bus resource [mem 0x600000000-0x7ffffffff pref]
    [    2.234416] pci_bus 0000:00: scanning bus
    [    2.238396] pci 0000:00:00.0: [10ee:d024] type 01 class 0x060400
    [    2.244396] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
    [    2.250315] pci 0000:00:00.0: PME# disabled
    [    2.254575] pci 0000:00:00.0: cannot attach to SMMU, is it on the same bus?
    [    2.261385] iommu: Adding device 0000:00:00.0 to group 11
    [    2.266772] pci_bus 0000:00: fixups for bus
    [    2.270902] pci 0000:00:00.0: scanning [bus 01-0c] behind bridge, pass 0
    [    2.277608] pci_bus 0000:01: scanning bus
    [    2.281566] pci 0000:01:00.0: [1814:3090] type 00 class 0x028000
    [    2.287530] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x0000ffff]
    [    2.293969] pci 0000:01:00.0: cannot attach to SMMU, is it on the same bus?
    [    2.300734] iommu: Adding device 0000:01:00.0 to group 11
    [    2.313072] pci_bus 0000:01: fixups for bus
    [    2.317071] pci_bus 0000:01: bus scan returning with max=01
    [    2.322610] pci 0000:00:00.0: scanning [bus 01-0c] behind bridge, pass 1
    [    2.329265] pci_bus 0000:00: bus scan returning with max=0c
    [    2.334816] pci 0000:00:00.0: BAR 8: assigned [mem 0xe0000000-0xe00fffff]
    [    2.341548] pci 0000:01:00.0: BAR 0: assigned [mem 0xe0000000-0xe000ffff]
    [    2.348298] pci 0000:00:00.0: PCI bridge to [bus 01-0c]
    [    2.353484] pci 0000:00:00.0:   bridge window [mem 0xe0000000-0xe00fffff]
    [    2.360255] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
    [    2.366291] pcieport 0000:00:00.0: enabling bus mastering
    ...
    ...
    ...
    [    2.604515] nwl-pcie fd0e0000.pcie: PCIe Core error
    ...
    ...
    ...
    [    2.821784] rt2800pci 0000:01:00.0: enabling device (0000 -> 0002)
    [    2.827890] rt2800pci 0000:01:00.0: enabling bus mastering
    [    2.833354] rt2800pci 0000:01:00.0: enabling Mem-Wr-Inval
    [    2.838779] nwl-pcie fd0e0000.pcie: Slave error
    [    2.843241] Unhandled fault: synchronous external abort (0x96000010) at 0xffffff8008ee1000
    [    2.851484] Internal error: : 96000010 [#1] SMP
    [    2.855991] Modules linked in:
    [    2.859032] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.6.0-ridgerun #9
    [    2.865625] Hardware name: zcu102caster (DT)
    [    2.869879] task: ffffffc87b876b80 ti: ffffffc87b878000 task.ti: ffffffc87b878000
    [    2.877349] PC is at rt2x00mmio_register_read+0x8/0x18
    [    2.882466] LR is at rt2800_probe_hw+0x4c/0xfc0
    [    2.886979] pc : [<ffffff80085ae3e0>] lr : [<ffffff80085a19cc>] pstate: 80000245
    [    2.894355] sp : ffffffc87b87bb20
    [    2.897654] x29: ffffffc87b87bb20 x28: 0000000000000000
    [    2.902949] x27: ffffff8008bd5d50 x26: ffffff8008b8d250
    [    2.908244] x25: ffffff8008bc76c8 x24: ffffffc87b87bb8c
    [    2.913538] x23: ffffffc87b1425c0 x22: 0000000fffffffe0
    [    2.918833] x21: ffffffc87b143728 x20: ffffffc073930000
    [    2.924128] x19: ffffffc87b143200 [    2.927234] ata2: SATA link down (SStatus 0 SControl 330)
    [    2.927261] ata1: SATA link down (SStatus 0 SControl 330)
    
    [    2.938103] x18: 000000000000000e
    [    2.941661] x17: 0000000000000007 x16: 0000000000000001
    [    2.946956] x15: 0000000000000007 x14: 000000000000000e
    [    2.952251] x13: 0000000000000013 x12: 000000000000001a
    [    2.957546] x11: 0088000000000000 x10: ffffff8008c1c000
    [    2.962840] x9 : 0000000000000000 x8 : 0000000000000002
    [    2.968135] x7 : 0000000000000004 x6 : 0000000000000000
    [    2.973430] x5 : fffffffffffffff8 x4 : ffffff800858ede0
    [    2.978725] x3 : ffffff80085ae3d8 x2 : ffffffc87b87bb8c
    [    2.984020] x1 : ffffff8008ee1000 x0 : ffffff8008ee0000
    [    2.989314]
    [    2.990791] Process swapper/0 (pid: 1, stack limit = 0xffffffc87b878020)
    [    2.997475] Stack: (0xffffffc87b87bb20 to 0xffffffc87b87c000)
    [    3.003206] bb20: ffffffc87b87bb90 ffffff800858fabc ffffffc87b143200 ffffffc073930000
    [    3.011018] bb40: ffffffc87b143728 0000000fffffffe0 ffffffc87b1425c0 ffffff800895e6a8
    [    3.018829] bb60: ffffff8008bc76c8 ffffff8008b8d250 ffffff8008bd5d50 0000000000000000
    [    3.026641] bb80: 000000000000003f 0000000000000000 ffffffc87b87bc00 ffffff80085950f0
    [    3.034453] bba0: ffffffc87b143200 ffffffc073930000 0000000000000000 ffffffc073930098
    [    3.042265] bbc0: ffffffc87b1425c0 ffffff800895e6a8 ffffff8008bc76c8 ffffff8008b8d250
    [    3.050077] bbe0: ffffff8008bd5d50 0000000000000000 0000000000000000 000030900859508c
    [    3.057889] bc00: ffffffc87b87bc50 ffffff80085ae53c ffffff8008c63758 ffffffc073930098
    [    3.065701] bc20: ffffffc073930000 ffffff8008c636f0 0000000000000000 ffffff8008b85c78
    [    3.073514] bc40: ffffffc87b87bc60 3090ff800840c6f0 ffffffc87b87bc60 ffffff800840c708
    [    3.081325] bc60: ffffffc87b87bc90 ffffff80084ff404 ffffffc073930098 ffffff8008cce000
    [    3.089138] bc80: ffffffc0739300f8 ffffff8008c63758 ffffffc87b87bcd0 ffffff80084ff5dc
    [    3.096949] bca0: ffffffc073930098 ffffff8008c63758 ffffffc0739300f8 ffffff8008c3e4f0
    [    3.104761] bcc0: ffffff8008c4e000 ffffff80084ff550 ffffffc87b87bd00 ffffff80084fd5e0
    [    3.112573] bce0: 0000000000000000 ffffff8008c63758 ffffff80084ff528 ffffff8008c3e4f0
    [    3.120385] bd00: ffffffc87b87bd40 ffffff80084fed80 ffffff8008c63758 ffffffc87b12bd00
    [    3.128197] bd20: 0000000000000000 00000000ffffffe0 ffffffc87ba608a8 ffffffc0739c6768
    [    3.136010] bd40: ffffffc87b87bd50 ffffff80084fe9a8 ffffffc87b87bd90 ffffff80084ffc38
    [    3.143821] bd60: ffffff8008c63758 ffffff8008c0eaa0 ffffffc87b13b180 ffffff8008bb2368
    [    3.151633] bd80: 0000000000000000 ffffff80080829a4 ffffffc87b87bdb0 ffffff800840bf54
    [    3.159445] bda0: ffffff8008c0eaa0 ffffff8008c0eaa0 ffffffc87b87bdc0 ffffff8008bb2388
    [    3.167258] bdc0: ffffffc87b87bdd0 ffffff80080829b4 ffffffc87b87be50 ffffff8008b8da30
    [    3.175069] bde0: 0000000000000136 ffffff8008bc7760 ffffff8008c92000 0000000000000006
    [    3.182881] be00: ffffff8008c92000 ffffff8008b8d250 ffffff8008bd5700 0000000000000000
    [    3.190693] be20: ffffff8008c92000 ffffff8008a83d20 0000000600000006 0000000000000000
    [    3.198505] be40: 0000000000000000 ffffff8008b85c78 ffffffc87b87beb0 ffffff80088bf9c8
    [    3.206317] be60: ffffff80088bf9b8 0000000000000000 0000000000000000 0000000000000000
    [    3.214129] be80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.221941] bea0: 0000000000000000 ff000000ff0000ff 0000000000000000 ffffff8008085dd0
    [    3.229753] bec0: ffffff80088bf9b8 0000000000000000 0000000000000000 0000000000000000
    [    3.237565] bee0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.245377] bf00: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.253189] bf20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.261001] bf40: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.268813] bf60: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.276625] bf80: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.284437] bfa0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.292249] bfc0: 0000000000000000 0000000000000000 0000000000000000 0000000000000005
    [    3.300061] bfe0: 0000000000000000 0000000000000000 ff000000ff0000ff 00ffffff00ffff04
    [    3.307871] Call trace:
    [    3.310303] Exception stack(0xffffffc87b87b960 to 0xffffffc87b87ba80)
    [    3.316727] b960: ffffffc87b143200 ffffffc073930000 ffffffc87b87bb20 ffffff80085ae3e0
    [    3.324539] b980: 0000000000000007 ffffffc800000000 ffffff8008ee1000 0000000080000245
    [    3.332351] b9a0: 0000000000000025 ffffff8008bc76c8 ffffff8008b8d250 ffffff8008bd5d50
    [    3.340163] b9c0: 0000000000000000 ffffffc87b87bb20 ffffff80085a19cc ffffffc87b87ba00
    [    3.347975] b9e0: ffffff8008085560 0000000060000145 ffffffc87b87ba40 ffffff80080b2664
    [    3.355787] ba00: ffffff8008ee0000 ffffff8008ee1000 ffffffc87b87bb8c ffffff80085ae3d8
    [    3.363599] ba20: ffffff800858ede0 fffffffffffffff8 0000000000000000 0000000000000004
    [    3.371411] ba40: 0000000000000002 0000000000000000 ffffff8008c1c000 0088000000000000
    [    3.379222] ba60: 000000000000001a 0000000000000013 000000000000000e 0000000000000007
    [    3.387036] [<ffffff80085ae3e0>] rt2x00mmio_register_read+0x8/0x18
    [    3.393200] [<ffffff800858fabc>] rt2x00lib_probe_dev+0x1cc/0x6c0
    [    3.399188] [<ffffff80085950f0>] rt2x00pci_probe+0x138/0x348
    [    3.404830] [<ffffff80085ae53c>] rt2800pci_probe+0x14/0x20
    [    3.410299] [<ffffff800840c708>] pci_device_probe+0x80/0xe8
    [    3.415854] [<ffffff80084ff404>] really_probe+0x12c/0x250
    [    3.421235] [<ffffff80084ff5dc>] __driver_attach+0xb4/0xb8
    [    3.426703] [<ffffff80084fd5e0>] bus_for_each_dev+0x60/0xa0
    [    3.432258] [<ffffff80084fed80>] driver_attach+0x20/0x28
    [    3.437553] [<ffffff80084fe9a8>] bus_add_driver+0x1d0/0x238
    [    3.443108] [<ffffff80084ffc38>] driver_register+0x60/0xf8
    [    3.448576] [<ffffff800840bf54>] __pci_register_driver+0x3c/0x48
    [    3.454565] [<ffffff8008bb2388>] rt2800pci_driver_init+0x20/0x28
    [    3.460556] [<ffffff80080829b4>] do_one_initcall+0x8c/0x190
    [    3.466111] [<ffffff8008b8da30>] kernel_init_freeable+0x14c/0x1ec
    [    3.472188] [<ffffff80088bf9c8>] kernel_init+0x10/0xf0
    [    3.477307] [<ffffff8008085dd0>] ret_from_fork+0x10/0x40
    [    3.482602] Code: d65f03c0 d503201f f942d000 8b214001 (b9400021)
    [    3.488696] ---[ end trace 7252f99da49f9b1d ]---
    [    3.493290] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    [    3.493290]
    [    3.502392] CPU3: stopping
    [    3.505083] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G      D         4.6.0-ridgerun #9
    [    3.512892] Hardware name: zcu102caster (DT)
    [    3.517145] Call trace:
    [    3.519580] [<ffffff8008089860>] dump_backtrace+0x0/0x198
    [    3.524961] [<ffffff8008089a0c>] show_stack+0x14/0x20
    [    3.529996] [<ffffff80083c776c>] dump_stack+0x94/0xb8
    [    3.535029] [<ffffff800808f584>] handle_IPI+0x19c/0x1b0
    [    3.540236] [<ffffff80080824f8>] gic_handle_irq+0xa0/0xc0
    [    3.545617] Exception stack(0xffffffc87ff83050 to 0xffffffc87ff83170)
    [    3.552041] 3040:                                   ffffffc87b8f3e40 ffffffc87b8f0000
    [    3.559854] 3060: ffffffc87b8f3f60 ffffff8008086680 0000000060000045 ffffff8008bdf070
    [    3.567666] 3080: ffffffc87b8f3f60 ffffffc87b8f3e40 0000000000000000 0000000000000000
    [    3.575477] 30a0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.583289] 30c0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.591101] 30e0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.598913] 3100: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.606725] 3120: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.614537] 3140: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.622348] 3160: 0000000000000000 0000000000000000
    [    3.627210] [<ffffff8008085720>] el1_irq+0xa0/0x100
    [    3.632071] [<ffffff8008086680>] arch_cpu_idle+0x10/0x18
    [    3.637367] [<ffffff80080d06d4>] cpu_startup_entry+0x144/0x1d8
    [    3.643181] [<ffffff800808ef90>] secondary_start_kernel+0x170/0x1c8
    [    3.649430] [<000000000008284c>] 0x8284c
    [    3.653336] CPU2: stopping
    [    3.656028] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G      D         4.6.0-ridgerun #9
    [    3.663837] Hardware name: zcu102caster (DT)
    [    3.668090] Call trace:
    [    3.670525] [<ffffff8008089860>] dump_backtrace+0x0/0x198
    [    3.675906] [<ffffff8008089a0c>] show_stack+0x14/0x20
    [    3.680939] [<ffffff80083c776c>] dump_stack+0x94/0xb8
    [    3.685974] [<ffffff800808f584>] handle_IPI+0x19c/0x1b0
    [    3.691181] [<ffffff80080824f8>] gic_handle_irq+0xa0/0xc0
    [    3.696562] Exception stack(0xffffffc87ff6f050 to 0xffffffc87ff6f170)
    [    3.702986] f040:                                   ffffffc87b8efe40 ffffffc87b8ec000
    [    3.710799] f060: ffffffc87b8eff60 ffffff8008086680 0000000060000045 ffffff8008bdf070
    [    3.718611] f080: ffffffc87b8eff60 ffffffc87b8efe40 0000000000000000 0000000000000000
    [    3.726422] f0a0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.734234] f0c0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.742046] f0e0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.749858] f100: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.757670] f120: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.765482] f140: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.773293] f160: 0000000000000000 0000000000000000
    [    3.778155] [<ffffff8008085720>] el1_irq+0xa0/0x100
    [    3.783016] [<ffffff8008086680>] arch_cpu_idle+0x10/0x18
    [    3.788311] [<ffffff80080d06d4>] cpu_startup_entry+0x144/0x1d8
    [    3.794126] [<ffffff800808ef90>] secondary_start_kernel+0x170/0x1c8
    [    3.800375] [<000000000008284c>] 0x8284c
    [    3.804281] CPU1: stopping
    [    3.806973] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D         4.6.0-ridgerun #9
    [    3.814783] Hardware name: zcu102caster (DT)
    [    3.819036] Call trace:
    [    3.821470] [<ffffff8008089860>] dump_backtrace+0x0/0x198
    [    3.826851] [<ffffff8008089a0c>] show_stack+0x14/0x20
    [    3.831885] [<ffffff80083c776c>] dump_stack+0x94/0xb8
    [    3.836919] [<ffffff800808f584>] handle_IPI+0x19c/0x1b0
    [    3.842126] [<ffffff80080824f8>] gic_handle_irq+0xa0/0xc0
    [    3.847507] Exception stack(0xffffffc87ff5b050 to 0xffffffc87ff5b170)
    [    3.853931] b040:                                   ffffffc87b8ebe40 ffffffc87b8e8000
    [    3.861744] b060: ffffffc87b8ebf60 ffffff8008086680 0000000060000045 ffffff8008bdf070
    [    3.869556] b080: ffffffc87b8ebf60 ffffffc87b8ebe40 0000000000000000 0000000000000000
    [    3.877368] b0a0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.885179] b0c0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.892991] b0e0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.900803] b100: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.908615] b120: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.916427] b140: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [    3.924238] b160: 0000000000000000 0000000000000000
    [    3.929100] [<ffffff8008085720>] el1_irq+0xa0/0x100
    [    3.933961] [<ffffff8008086680>] arch_cpu_idle+0x10/0x18
    [    3.939256] [<ffffff80080d06d4>] cpu_startup_entry+0x144/0x1d8
    [    3.945071] [<ffffff800808ef90>] secondary_start_kernel+0x170/0x1c8
    [    3.951320] [<000000000008284c>] 0x8284c
    [    3.955227] Kernel Offset: disabled
    [    3.958697] Memory Limit: none
    [    3.961737] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    [    3.961737]
  5. I've reviewed http://www.wiki.xilinx.com/ZynqMP+Linux+PCIe+Root+Port and XAP1289 Wiki for help / clues and haven't seen anything. 

 

It seems like register reads work fine during enumeration (they have to, right?) and then something happens that break register reads - such as in the rt2x00mmio_register_read method. I'm at a loss for ideas - any thoughts or suggestions? 

 

Thanks in advance for your help!

0 Kudos
7 Replies
koolscooby
Observer
Observer
6,519 Views
Registered: ‎10-15-2016

I should mention that the PCIe card in my original post is this thing: http://www.ascendtech.us/anatel-wn7601r-h1-wireless-pci-e-card_i_ltpanwn7601rh1m.aspx

 

However, I have tried a PCIe to mini-PCIe adapter with two different Intel cards with the same error. And I've tried a PCIe to mini-PCIe to M.2 E-key with an Advantech Marvell-based adapter with similar errors as well. Since I wanted to rule out the adapter boards, I found the Ascendtech unit laying in a drawer and tried it. In addition, the Ascendtech unit works in a linux PC.

 

Still seems like something wrong with my hardware configuration, FSBL, DTS, or linux... Thanks again!

0 Kudos
achutha
Xilinx Employee
Xilinx Employee
6,462 Views
Registered: ‎07-01-2010

@koolscooby

 

Check if the patch discussed in the link helps to resolve this.

https://patchwork.kernel.org/patch/8513621/

 

Regards,

Achutha

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------
0 Kudos
koolscooby
Observer
Observer
6,451 Views
Registered: ‎10-15-2016

Hi @achutha,

 

Thanks for the suggestion. I'm already using xilinx-v2016.3 tag of linux-xlnx that I believe already includes that patch. 

 

https://github.com/Xilinx/linux-xlnx/commit/ab597d35ef11d2a921e0ec507a9b7861bcb44cbd

 

Any other ideas?

0 Kudos
dsingh
Participant
Participant
3,451 Views
Registered: ‎02-01-2018

Hi @koolscooby,

 

Did you find solution for your problem?  I am experiencing similar issues. 

 

 

 

 

0 Kudos
koolscooby
Observer
Observer
3,446 Views
Registered: ‎10-15-2016

Hi @dsingh,

 

We did solve this problem, but I'm not certain as to the final fix. This thread might have something to do with it:

https://forums.xilinx.com/t5/Embedded-Linux/Zynq-UltraScale-PCIe-Root-Port-Lessons-Learned/m-p/766426

 

Slave errors also seem to be common when using the Display Port subsystem driver in combination with PCIe - when the DP driver initializes its lanes (PHYs), it seems to do so incorrectly (or my device tree was wrong, but this seems unlikely...) causing slave error on the PCIe port.

 

Hope this helps.

0 Kudos
dsingh
Participant
Participant
3,434 Views
Registered: ‎02-01-2018

Thanks
0 Kudos
dsingh
Participant
Participant
3,433 Views
Registered: ‎02-01-2018

Hi @koolscooby, Thanks.
0 Kudos