-
Type:
Bug
-
Resolution: resolved
-
Priority:
Low
-
Component/s: None
-
None
Here's what a typical dmesg looks like:
[ 16.135669] datadev: Init [ 16.135704] datadev 0000:0a:00.0: enabling device (0000 -> 0002) [ 16.135804] (NULL device *): Init: Mapping Register space 0xfb000000 with size 0x1000000. [ 16.135861] (NULL device *): Init: Mapped to 0xffffaabf45000000. [ 16.135863] datadev 0000:0a:00.0: Init: Setting user reset [ 16.135865] datadev 0000:0a:00.0: Init: Clearing user reset [ 16.135868] datadev 0000:0a:00.0: Init: Using 40-bit DMA mask. [ 16.135870] datadev 0000:0a:00.0: Init: Creating device class [ 16.135956] datadev 0000:0a:00.0: Init: Creating 16 TX Buffers. Size=1048576 Bytes. Mode=1. [ 16.137978] datadev 0000:0a:00.0: Init: Created 16 out of 16 TX Buffers. 16777216 Bytes. [ 16.138036] datadev 0000:0a:00.0: Init: Creating 4096 RX Buffers. Size=1048576 Bytes. Mode=1. [ 16.543149] datadev 0000:0a:00.0: Init: Created 4096 out of 4096 RX Buffers. 0 Bytes. [ 16.543244] datadev 0000:0a:00.0: Init: Read ring at: sw 0xffff953091a90000 -> hw 0xf0000. [ 16.543246] datadev 0000:0a:00.0: Init: Write ring at: sw 0xffff95308d920000 -> hw 0xe0000. [ 16.545404] datadev 0000:0a:00.0: Init: Found Version 2 Device. Desc128En=1 [ 16.545405] datadev 0000:0a:00.0: Init: IRQ 160 [ 16.545506] datadev 0000:0a:00.0: Init: Reg space mapped to 0xffffaabf45000000. [ 16.545507] datadev 0000:0a:00.0: Init: User space mapped to 0xffffaabf45010000 with size 0xff0000. [ 16.545509] datadev 0000:0a:00.0: Init: Top Register = 0x4010101
I am working on a Alveo V80 PCIe card and forgot to include the Legacy INT configuration in the Vivado PCIe configuration. When the driver load, it fails to map the interrupt but just continues to without any error messages. Here's the dmesg print out for the V80 without Legancy INT included:
[ 17.924946] datadev: Init [ 17.924974] datadev 0000:01:00.0: enabling device (0000 -> 0002) [ 17.924979] (NULL device *): Init: Mapping Register space 0xf3000000 with size 0x1000000. [ 17.924987] (NULL device *): Init: Mapped to 0xffff9cce07000000. [ 17.924989] datadev 0000:01:00.0: Init: Setting user reset [ 17.924990] datadev 0000:01:00.0: Init: Clearing user reset [ 17.924992] datadev 0000:01:00.0: Init: Using 40-bit DMA mask. [ 17.924993] datadev 0000:01:00.0: Init: Using 40-bit coherent DMA mask. [ 17.924996] datadev 0000:01:00.0: Init: Creating device class [ 17.925063] datadev 0000:01:00.0: Init: Creating 16 TX Buffers. Size=2097152 Bytes. Mode=1. [ 17.926512] datadev 0000:01:00.0: Init: Created 16 out of 16 TX Buffers. 33554432 Bytes. [ 17.926554] datadev 0000:01:00.0: Init: Creating 256 RX Buffers. Size=2097152 Bytes. Mode=1. [ 17.949735] datadev 0000:01:00.0: Init: Created 256 out of 256 RX Buffers. 536870912 Bytes. [ 17.949843] datadev 0000:01:00.0: Init: Read ring at: sw 0xffff9cce04149000 -> hw 0x86df0000. [ 17.949845] datadev 0000:01:00.0: Init: Write ring at: sw 0xffff9cce0415a000 -> hw 0x86de0000. [ 17.949887] datadev 0000:01:00.0: Init: Found Version 2 Device. Desc128En=1 [ 17.949950] datadev 0000:01:00.0: Init: Reg space mapped to 0x000000003d82cd2e. [ 17.949955] datadev 0000:01:00.0: Init: User space mapped to 0x000000005964f062 with size 0xff0000. [ 17.949958] datadev 0000:01:00.0: Init: Top Register = 0x5010101
In the dump above notice how "datadev 0000:0a:00.0: Init: IRQ XXX" is missing
The driver needs to be updated to catch when the IRQ mapping is failed or doesn't exists in the PCIe endpoint device