I'm working on an LS1021a-TWR board and trying to get a PCIe radio card to come up.
I'm using SDK 2.0, with the latest update 1611.
I've modified the kernel to enable ath9k and ath10k drivers.
I've also enabled : "PCI Express Port Bus support", if that helps.
The image is booted from and SD card.
root@ls1021atwr:~# uname -a
Linux ls1021atwr 4.1.30-rt34+g4004071 #2 SMP Thu Dec 15 16:05:14 EST 2016 armv7l GNU/Linux
Kernel boots fine, but lspci command only shows:
root@ls1021atwr:~# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0e0a (rev 10)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0e0a (rev 10)
root@ls1021atwr:~#
Interestingly, the kernel that was on the NOR flash, seems to have no trouble seeing the card:
root@ls1021atwr:/sys/devices/soc.2# lspci
00:00.0 Class 0604: 1957:0e0a
01:00.0 Class 0280: 168c:0030 <--- ath9k card
00:00.0 Class 0604: 1957:0e0a
root@ls1021atwr:/sys/devices/soc.2#
more copy paste of various pieces of info below
--------------------------------------
U-Boot 2014.01Layerscape-SDK-V1.3+g50d6848 (Oct 24 2014 - 19:21:22)
CPU: Freescale LayerScape LS1021E, Version: 1.0, (0x87081110)
Clock Configuration:
CPU0(ARMV7):1000 MHz,
Bus:300 MHz, DDR:800 MHz (1600 MT/s data rate),
Reset Configuration Word (RCW):
00000000: 0608000a 00000000 00000000 00000000
00000010: 70000000 00407900 e0025a00 21046000
00000020: 00000000 00000000 00000000 00038000
00000030: 00080000 48007340 00000000 00000000
Board: LS1021ATWR
CPLD: V2.3
PCBA: V3.0
VBank: 0
I2C: ready
DRAM: 1 GiB (DDR3, 32-bit, CL=10.5, ECC off)
Using SERDES1 Protocol: 112 (0x70)
Flash: 128 MiB
MMC: FSL_SDHC: 0
EEPROM: NXID v1
Firmware 'Microcode version 0.0.0 for T1040 r1.0' for 1040 V1.0
QE: uploading microcode 'Microcode for T1040 r1.0'
In: serial
Out: serial
Err: serial
SATA link 0 timeout.
AHCI 0001.0300 1 slots 1 ports ? Gbps 0x1 impl SATA mode
flags: 64bit ncq pm clo only pmp fbss pio slum part ccc
scanning bus for devices...
Found 0 device(s).
Net: eTSEC2 is in sgmii mode.
eTSEC1 [PRIME], eTSEC2, eTSEC3
Hit any key to stop autoboot: 0
--------------------------------------
here's the PCI related info from dmesg
root@ls1021atwr:~# dmesg | grep pci
[ 0.198708] PCI host bridge /soc/pcie@3400000 ranges:
[ 0.199064] layerscape-pcie 3400000.pcie: PCI host bridge to bus 0000:00
[ 0.199079] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.199090] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 0.199104] pci_bus 0000:00: root bus resource [mem 0x4040000000-0x407fffffff] (bus address [0x40000000-0x7fffffff])
[ 0.199150] pci 0000:00:00.0: [1957:0e0a] type 01 class 0x060400
[ 0.199180] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x00ffffff]
[ 0.199197] pci 0000:00:00.0: reg 0x14: [mem 0x00000000-0x03ffffff]
[ 0.199214] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x00ffffff pref]
[ 0.199284] pci 0000:00:00.0: supports D1 D2
[ 0.199294] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
[ 0.199932] pci 0000:00:00.0: BAR 1: assigned [mem 0x4040000000-0x4043ffffff]
[ 0.199948] pci 0000:00:00.0: BAR 0: assigned [mem 0x4044000000-0x4044ffffff]
[ 0.199963] pci 0000:00:00.0: BAR 6: assigned [mem 0x4045000000-0x4045ffffff pref]
[ 0.199975] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 0.200253] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
[ 0.200266] pcie_pme 0000:00:00.0:pcie01: service driver pcie_pme loaded
[ 0.200457] aer 0000:00:00.0:pcie02: service driver aer loaded
[ 0.200801] PCI host bridge /soc/pcie@3500000 ranges:
[ 0.201114] layerscape-pcie 3500000.pcie: PCI host bridge to bus 0001:00
[ 0.201126] pci_bus 0001:00: root bus resource [bus 00-ff]
[ 0.201140] pci_bus 0001:00: root bus resource [io 0x10000-0x1ffff] (bus address [0x0000-0xffff])
[ 0.201154] pci_bus 0001:00: root bus resource [mem 0x4840000000-0x487fffffff] (bus address [0x40000000-0x7fffffff])
[ 0.201195] pci 0001:00:00.0: [1957:0e0a] type 01 class 0x060400
[ 0.201221] pci 0001:00:00.0: reg 0x10: [mem 0x00000000-0x00ffffff]
[ 0.201238] pci 0001:00:00.0: reg 0x14: [mem 0x00000000-0x03ffffff]
[ 0.201255] pci 0001:00:00.0: reg 0x38: [mem 0x00000000-0x00ffffff pref]
[ 0.201317] pci 0001:00:00.0: supports D1 D2
[ 0.201327] pci 0001:00:00.0: PME# supported from D0 D1 D2 D3hot
[ 0.201966] pci 0001:00:00.0: BAR 1: assigned [mem 0x4840000000-0x4843ffffff]
[ 0.201982] pci 0001:00:00.0: BAR 0: assigned [mem 0x4844000000-0x4844ffffff]
[ 0.201997] pci 0001:00:00.0: BAR 6: assigned [mem 0x4845000000-0x4845ffffff pref]
[ 0.202008] pci 0001:00:00.0: PCI bridge to [bus 01]
[ 0.202278] pcieport 0001:00:00.0: Signaling PME through PCIe PME interrupt
[ 0.202291] pcie_pme 0001:00:00.0:pcie01: service driver pcie_pme loaded
[ 0.202483] aer 0001:00:00.0:pcie02: service driver aer loaded
---------------------------
P.S.
I've found this thread: LS1021A PCI Express is Visible in u-boot but not Linux
but the problem in that thread was due to an older SDK.
Any hints, suggestions would be appriciated