Hello,
I have a custom board based on TI's AM5728 EVM. I am using the latest Linux PSDK 6.03 on it.
I am using SparkLAN WNFQ-258ACN(BT), which is an 802.11ac/a/b/g/n Dual-Band Wi-Fi+Bluetooth M.2 card based on Qualcomm Atheros QCA6174A chipset. The interface for WiFi is PCIe and for Bluetooth is USB.
I have connected the WiFi device to PCIe_SS1 (PCIe0) in single-lane host mode. The PCIe is configured as RC (root complex) in the board-level device tree file.
Following are the device tree entries -
pcie1_rc: pcie@51000000 {
reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>;
reg-names = "rc_dbics", "ti_conf", "config";
interrupts = <0 232 0x4>, <0 233 0x4>;
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
ranges = <0x81000000 0 0 0x03000 0 0x00010000
0x82000000 0 0x20013000 0x13000 0 0xffed000>;
bus-range = <0x00 0xff>;
#interrupt-cells = <1>;
num-lanes = <1>;
linux,pci-domain = <0>;
ti,hwmods = "pcie1";
phys = <&pcie1_phy>;
phy-names = "pcie-phy0";
ti,syscon-lane-sel = <&scm_conf_pcie 0x18>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie1_intc 1>,
<0 0 0 2 &pcie1_intc 2>,
<0 0 0 3 &pcie1_intc 3>,
<0 0 0 4 &pcie1_intc 4>;
ti,syscon-unaligned-access = <&scm_conf1 0x14 1>;
status = "disabled";
pcie1_intc: interrupt-controller {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <1>;
};
};
&pcie1_rc {
status = "okay";
gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
};
I am getting the following logs in the kernel while booting -
root@am57xx-evm:~# dmesg | grep pci
[ 0.664203] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1
[ 0.664373] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null)
[ 0.664380] dra7-pcie 51000000.pcie: using device tree for GPIO lookup
[ 0.664413] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0)
[ 0.664631] dra7-pcie 51000000.pcie: host bridge /ocp/axi@0/pcie@51000000 ranges:
[ 0.664673] dra7-pcie 51000000.pcie: IO 0x20003000..0x20012fff -> 0x00000000
[ 0.664701] dra7-pcie 51000000.pcie: MEM 0x20013000..0x2fffffff -> 0x20013000
[ 1.664965] dra7-pcie 51000000.pcie: Phy link never came up
[ 1.665098] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
[ 1.665113] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 1.665126] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 1.665137] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
[ 1.665174] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400
[ 1.665208] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
[ 1.665270] pci 0000:00:00.0: supports D1
[ 1.665278] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[ 1.676386] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit]
[ 1.676406] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 1.676741] pcieport 0000:00:00.0: Signaling PME with IRQ 177
[ 1.676874] pcieport 0000:00:00.0: AER enabled with IRQ 177
But the WiFi device is not detected in lspci output. However, the Bluetooth device is detected in lsusb output.
root@am57xx-evm:~# lspci 00:00.0 PCI bridge: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01) root@am57xx-evm:~# lsusb Bus 001 Device 003: ID 0cf3:e300 Qualcomm Atheros Communications Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
root@am57xx-evm:~# lspci 00:00.0 PCI bridge: Texas Instruments Multicore DSP+ARM KeyStone II SOC (rev 01) 01:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac WiFi adapter root@am57xx-evm:~# lsusb Bus 001 Device 003: ID 0bda:b822 Realtek Semiconductor Corp. Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub oot@am57xx-evm:~# dmesg | grep pci [ 0.634285] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1 [ 0.634454] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null) [ 0.634462] dra7-pcie 51000000.pcie: using device tree for GPIO lookup [ 0.634496] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0) [ 0.634714] dra7-pcie 51000000.pcie: host bridge /ocp/axi@0/pcie@51000000 ranges: [ 0.634732] dra7-pcie 51000000.pcie: Parsing ranges property... [ 0.634764] dra7-pcie 51000000.pcie: IO 0x20003000..0x20012fff -> 0x00000000 [ 0.634793] dra7-pcie 51000000.pcie: MEM 0x20013000..0x2fffffff -> 0x20013000 [ 0.734877] dra7-pcie 51000000.pcie: Link up [ 0.735011] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00 [ 0.735026] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.735039] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] [ 0.735051] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff] [ 0.735063] pci_bus 0000:00: scanning bus [ 0.735096] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400 [ 0.735131] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit] [ 0.735198] pci 0000:00:00.0: supports D1 [ 0.735205] pci 0000:00:00.0: PME# supported from D0 D1 D3hot [ 0.735215] pci 0000:00:00.0: PME# disabled [ 0.740937] pci_bus 0000:00: fixups for bus [ 0.740967] pci 0000:00:00.0: scanning [bus 01-ff] behind bridge, pass 0 [ 0.741057] pci_bus 0000:01: scanning bus [ 0.741140] pci 0000:01:00.0: [10ec:b822] type 00 class 0x028000 [ 0.741265] pci 0000:01:00.0: reg 0x10: [io 0x0000-0x00ff] [ 0.741361] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x0000ffff 64bit] [ 0.741817] pci 0000:01:00.0: supports D1 D2 [ 0.741824] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 0.741844] pci 0000:01:00.0: PME# disabled [ 0.777146] pci_bus 0000:01: fixups for bus [ 0.777191] pci_bus 0000:01: bus scan returning with max=01 [ 0.777205] pci 0000:00:00.0: scanning [bus 01-ff] behind bridge, pass 1 [ 0.777216] pci_bus 0000:00: bus scan returning with max=ff [ 0.777248] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit] [ 0.777270] pci 0000:00:00.0: BAR 8: assigned [mem 0x20200000-0x202fffff] [ 0.777284] pci 0000:00:00.0: BAR 7: assigned [io 0x1000-0x1fff] [ 0.777302] pci 0000:01:00.0: BAR 2: assigned [mem 0x20200000-0x2020ffff 64bit] [ 0.777359] pci 0000:01:00.0: BAR 0: assigned [io 0x1000-0x10ff] [ 0.777385] pci 0000:00:00.0: PCI bridge to [bus 01-ff] [ 0.777398] pci 0000:00:00.0: bridge window [io 0x1000-0x1fff] [ 0.777411] pci 0000:00:00.0: bridge window [mem 0x20200000-0x202fffff] [ 0.777541] pcieport 0000:00:00.0: assign IRQ: got 178 [ 0.777751] pcieport 0000:00:00.0: Signaling PME with IRQ 179 [ 0.777879] pcieport 0000:00:00.0: AER enabled with IRQ 179
I am not able to understand why one device is getting enumerated and other is not. Am I missing something else here?
Kindly acknowledge and revert.
Regards,
Devashish