UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
1,452 Views
Registered: ‎06-19-2015

PCIe Slave Completer Abort Error in Linux loading

Hi,

 

I am facing an issue while porting Linux OS. Kernel Panic error is coming when it tries to load the drivers for PCIe based WiFi module.

 

Pls see the log here..

## Loading kernel from FIT Image at 81000000 ...
   Using 'conf@1' configuration
   Trying 'kernel@0' kernel subimage
     Description:  Linux Kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x810000dc
     Data Size:    6460564 Bytes = 6.2 MiB
     Architecture: MicroBlaze
     OS:           Linux
     Load Address: 0x80000000
     Entry Point:  0x80000000
     Hash algo:    sha1
     Hash value:   d0f856fb53a2fe66741a87dfd757c1cd2827caa1
   Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 81000000 ...
   Using 'conf@1' configuration
   Trying 'ramdisk@0' ramdisk subimage
     Description:  ramdisk
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x8162cd08
     Data Size:    4945488 Bytes = 4.7 MiB
     Architecture: MicroBlaze
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha1
     Hash value:   cf7b3b1284083237cd94448d70842cdb355eb288
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 81000000 ...
   Using 'conf@1' configuration
   Trying 'fdt@0' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x8162966c
     Data Size:    13796 Bytes = 13.5 KiB
     Architecture: MicroBlaze
     Hash algo:    sha1
     Hash value:   942b1953d7b3f7bf3d5d076fc2cc65564f3d6c12
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x8162966c
   Loading Kernel Image ... OK
## Loading ramdisk from FIT Image at 81000000 ...
   Using 'conf@1' configuration
   Trying 'ramdisk@0' ramdisk subimage
     Description:  ramdisk
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x8162cd08
     Data Size:    4945488 Bytes = 4.7 MiB
     Architecture: MicroBlaze
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha1
     Hash value:   cf7b3b1284083237cd94448d70842cdb355eb288
   Verifying Hash Integrity ... sha1+ OK
Ramdisk addr 0x8162cd08,
FDT at 0x8162966c
Linux version 4.9.0 (madhu@madhu-ubuntu) (gcc version 6.2.0 (crosstool-NG 1.20.0) ) #1 Mon Mar 5 15:06:10 IST 2018
setup_cpuinfo: initialising
setup_cpuinfo: Using full CPU PVR support
wt_msr_noirq
setup_memory: max_mapnr: 0x40000
setup_memory: min_low_pfn: 0x80000
setup_memory: max_low_pfn: 0xb0000
setup_memory: max_pfn: 0xc0000
Zone ranges:
  DMA      [mem 0x0000000080000000-0x00000000afffffff]
  Normal   empty
  HighMem  [mem 0x00000000b0000000-0x00000000bfffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000080000000-0x00000000bfffffff]
Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
On node 0 totalpages: 262144
free_area_init_node: node 0, pgdat c0601628, node_mem_map c0800000
  DMA zone: 1536 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 196608 pages, LIFO batch:31
  HighMem zone: 65536 pages, LIFO batch:15
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260608
Kernel command line: console=ttyUL0,115200 earlyprintk
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1027024K/1048576K available (4706K kernel code, 147K rwdata, 1260K rodata, 153K init, 584K bss, 21552K reserved, 0K cma-reserved, 262144K highmem)
Kernel virtual memory layout:
  * 0xfffea000..0xfffff000  : fixmap
  * 0xff800000..0xffc00000  : highmem PTEs
  * 0xff800000..0xff800000  : early ioremap
  * 0xf0000000..0xff800000  : vmalloc & ioremap
NR_IRQS:33
/amba_pl/interrupt-controller@41200000: num_irq=7, edge=0x4
/amba_pl/timer@41c00000: irq=3
clocksource: xilinx_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 15290083572 ns
xilinx_timer_shutdown
xilinx_timer_set_periodic
sched_clock: 32 bits at 125MHz, resolution 8ns, wraps every 17179869180ns
Calibrating delay loop... 61.44 BogoMIPS (lpj=307200)
pid_max: default: 4096 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
devtmpfs: initialized
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
NET: Registered protocol family 16
PCI: Probing PCI hardware
vgaarb: loaded
clocksource: Switched to clocksource xilinx_clocksource
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 5, 163840 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 24576 bytes)
UDP-Lite hash table entries: 512 (order: 2, 24576 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 32
Trying to unpack rootfs image as initramfs...
random: fast init done
Freeing initrd memory: 4828K (c162d000 - c1ae4000)
Skipping unavailable RESET gpio -2 (reset)
futex hash table entries: 16 (order: -4, 448 bytes)
audit: initializing netlink subsys (disabled)
audit: type=2000 audit(10.920:1): initialized
workingset: timestamp_bits=30 max_order=18 bucket_order=0
romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
bounce: pool size: 64 pages
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
xilinx-pcie 10000000.axi-pcie: PCIe Link is UP
OF: PCI: host bridge /amba_pl/axi-pcie@10000000 ranges:
OF: PCI:   MEM 0xc0000000..0xcfffffff -> 0xc0000000
xilinx-pcie 10000000.axi-pcie: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [bus 00-ff]
pci_bus 0000:00: root bus resource [mem 0xc0000000-0xcfffffff]
pci 0000:00:00.0: [10ee:7111] type 01 class 0x060400
pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:01:00.0: [168c:003c] type 00 class 0x028000
pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x001fffff 64bit]
pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
pci 0000:01:00.0: supports D1 D2
pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
pci 0000:00:00.0: BAR 8: assigned [mem 0xc0000000-0xc02fffff]
pci 0000:01:00.0: BAR 0: assigned [mem 0xc0000000-0xc01fffff 64bit]
pci 0000:01:00.0: BAR 6: assigned [mem 0xc0200000-0xc020ffff pref]
pci 0000:00:00.0: PCI bridge to [bus 01]
pci 0000:00:00.0:   bridge window [mem 0xc0000000-0xc02fffff]
pcieport 0000:00:00.0: enabling device (0000 -> 0002)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
40600000.serial: ttyUL0 at MMIO 0x40600000 (irq = 7, base_baud = 0) is a uartlite
console [ttyUL0] enabled
brd: module loaded
libphy: Fixed MDIO Bus: probed
xilinx_axienet 40c00000.ethernet: TX_CSUM 0
xilinx_axienet 40c00000.ethernet: RX_CSUM 0
libphy: Xilinx Axi Ethernet MDIO: probed
mdio_bus 40c00000:07: mdio_device_register
ath10k_pci 0000:01:00.0: enabling device (0000 -> 0002)
Data bus error exception in kernel mode.
Oops: bus exception, sig: 7
CPU: 0 PID: 1 Comm: swapper Not tainted 4.9.0 #1
task: ef814b00 task.stack: ef838000
 Registers dump: mode=AF839BF4
 r1=F0000000, r2=00000000, r3=00080000, r4=000000E2
 r5=EF928E20, r6=00000005, r7=F4200000, r8=04236000
 r9=00000000, r10=00000000, r11=00000003, r12=0000752F
 r13=00000000, r14=00080000, r15=C0307018, r16=00000000
 r17=C03068EC, r18=00000000, r19=00000031, r20=C0490480
 r21=00000000, r22=EF92CD1C, r23=00000000, r24=00000000
 r25=FFFFFFFB, r26=0000251C, r27=EFA1D868, r28=C05E4D00
 r29=00000000, r30=00000000, r31=EF814B00, rPC=C03068EC
 msr=000046A0, ear=C00077B0, esr=00000001, fsr=C04985E0
xilinx-pcie 10000000.axi-pcie: Slave Completer Abort
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007

---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007

Kernel panic error is coming after

xilinx-pcie 10000000.axi-pcie: Slave Completer Abort  

 

Pls suggest me the solution.

 

Thanks

Madhu

0 Kudos
4 Replies
Moderator
Moderator
1,402 Views
Registered: ‎02-16-2010

Re: PCIe Slave Completer Abort Error in Linux loading

Slave Completer Abort is an uncorrectable error. Check how the Linux you use will handle the uncorrectable error and is there any option to avoid kernel panic.

From the log, I find axi-pcie is used. To know the cause of completer abort, please probe S_AXI and M_AXI bus of axi-pcie.

Add cfg_errr_cpl_abort output in the design to ila and trigger on this signal. cfg_errr_cpl_abort is output from integrated block IP. You will need to add this signal through "set up debug" flow after synthesis.
------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
Explorer
Explorer
1,368 Views
Registered: ‎06-19-2015

Re: PCIe Slave Completer Abort Error in Linux loading

Hi @venkata,

 

Thanks for your reply.

 

But with same Bit file and Linux Image, PCIe to Ethernet adapter card inserted. Its working fine. No kernel panic error.

 

When I insert PCIe to WiFi adapter, this error is coming. 

 

Can you check my block design... (Find in attachements)

 

Is required to connect "INTX_MSI_Grant" and "MSI_enable" signals? If so where i should connect?

Can you suggest me the device tree?

 

Thanks

Madhu

0 Kudos
Moderator
Moderator
1,280 Views
Registered: ‎02-16-2010

Re: PCIe Slave Completer Abort Error in Linux loading

I am not completely sure if the following link has some related information.
https://lkml.org/lkml/2017/1/19/171

Please check if it helps.
------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
0 Kudos
Moderator
Moderator
1,260 Views
Registered: ‎02-16-2010

Re: PCIe Slave Completer Abort Error in Linux loading

I find you have connected INTX_MSI_Request to some constant. If it is 1'b0, you can disable MSI feature for your design.

I hope you have enabled Wifi driver with your design. Could you check if the driver is attached?

Do you know if WiFi drivers are tested on the Microblaze processor?
------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
0 Kudos