Hi,
the tested E3930 SoC (microcode: sig=0x506c9, pf=0x1, revision=0x2c) has issues accessing the 32-bit non-prefetchable memory resource of Xilinx PCIe Endpoint (Vendor 10EE Device 0007). Within each block of 80-84 bytes only four starting dwords get read correctly, the next dword is the product of dword address, remaining data is zeroed. While the real memory contents are random non-zero data.
The problem appears only on E3930 (in a form of Qseven module), while the same PCIe endpoint works fine with E3845, E3815, x5-E8000. It's also reproducible with Linux (4.8, 4.14) as well as with EFI Shell, changing the PCI/PCIe configuration doesn't appear to help. No errors reported by endpoint/root port.
EFI Shell dump (zeroed data returned is incorrect):
Memory Address 0000000091200000 256 Bytes
91200000: D7 16 2A 88 05 24 64 21-64 80 01 03 00 4C 00 04 *..*..$d!d....L..*
91200010: 00 00 25 04 00 00 00 00-00 00 00 00 00 00 00 00 *..%.............*
91200020: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200030: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200040: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200050: 00 00 00 00 06 00 20 85-00 00 35 16 09 80 1E 21 *...... ...5....!*
91200060: A7 88 46 20 00 00 31 19-00 00 00 00 00 00 00 00 *..F ..1.........*
91200070: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200080: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200090: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912000A0: 00 00 00 00 00 00 00 00-E2 90 90 0A 00 00 21 2B *..............!+*
912000B0: 00 00 25 2C 00 28 AD 01-00 00 25 2E 00 00 00 00 *..%,.(....%.....*
912000C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912000D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912000E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912000F0: 00 00 00 00 00 00 00 00-00 00 00 00 C3 B0 0C 71 *...............q*
91200100: 28 42 84 42 0A 20 00 87-08 81 49 00 20 55 54 81 *(B.B. ....I. UT.*
91200110: 00 00 25 44 00 00 00 00-00 00 00 00 00 00 00 00 *..%D............*
91200120: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200130: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200140: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200150: 00 00 00 00 20 8A 9C 81-00 00 35 56 08 21 C9 57 *.... .....5V.!.W*
91200160: 00 08 88 81 00 00 31 59-00 00 00 00 00 00 00 00 *......1Y........*
91200170: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200180: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200190: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912001A0: 00 00 00 00 00 00 00 00-A5 10 00 18 00 00 21 6B *..............!k*
912001B0: 00 00 25 6C 01 04 C4 40-00 00 25 6E 00 00 00 00 *..%l...@..%n....*
912001C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912001D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
912001F0: 00 00 00 00 00 00 00 00-00 00 00 00 2C 40 42 10 *............,@B.*
91200200: 00 12 84 0D 10 26 0C 01-79 C0 00 12 4A E0 8E 12 *.....&..y...J...*
91200210: 00 00 35 04 00 00 00 00-00 00 00 00 00 00 00 00 *..5.............*
91200220: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200230: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200240: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
91200250: 00 00 00 00 81 21 *.....!*