But 0001:01:00.0 cannot be bind to above node?
Yes,It’s cannot be bind to above node.
root@tegra-ubuntu:/sys/bus/pci/devices# echo -n “0001:01:00.0” > /sys/bus/pci/drivers/ath11k_pci/bind
-bash: echo: write error: No such device
root@tegra-ubuntu:/sys/bus/pci/devices# lspci -kv
0001:00:00.0 PCI bridge: NVIDIA Corporation Device 229e (rev a1) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 51
Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: 40000000-401fffff [size=2M]
Prefetchable memory behind bridge: [disabled]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Root Port (Slot-), MSI 00
Capabilities: [b0] MSI-X: Enable- Count=1 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Secondary PCI Express
Capabilities: [158] Physical Layer 16.0 GT/s <?>
Capabilities: [17c] Lane Margining at the Receiver <?>
Capabilities: [190] L1 PM Substates
Capabilities: [1a0] Vendor Specific Information: ID=0002 Rev=4 Len=100 <?>
Capabilities: [2a0] Vendor Specific Information: ID=0001 Rev=1 Len=038 <?>
Capabilities: [2d8] Data Link Feature <?>
Capabilities: [2e4] Precision Time Measurement
Capabilities: [2f0] Vendor Specific Information: ID=0004 Rev=1 Len=054 <?>
Capabilities: [358] Vendor Specific Information: ID=0006 Rev=0 Len=018 <?>
Kernel driver in use: pcieport
0001:01:00.0 Network controller: Qualcomm Device 1103 (rev 01)
Subsystem: Lite-On Communications Inc Device a85d
Flags: fast devsel
Memory at 20a8000000 (64-bit, non-prefetchable) [disabled] [size=2M]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/32 Maskable+ 64bit-
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Secondary PCI Express
Capabilities: [158] Transaction Processing Hints
Capabilities: [1e4] Latency Tolerance Reporting
Capabilities: [1ec] L1 PM Substates
there is no driver node under this path, right?
/sys/bus/pci/devices/0001:01:00.0/
Yes,It’s doesn’t have driver node under /sys/bus/pci/devices/0001:01:00.0/
nvidia@tegra-ubuntu:/sys/bus/pci/devices/0001:01:00.0$ ls
aer_dev_correctable broken_parity_status current_link_speed devspec irq max_link_speed power resource subsystem_device
aer_dev_fatal class current_link_width dma_mask_bits link max_link_width remove resource0 subsystem_vendor
aer_dev_nonfatal config d3cold_allowed driver_override local_cpulist modalias rescan revision uevent
ari_enabled consistent_dma_mask_bits device enable local_cpus msi_bus reset subsystem vendor
Could you unbind it first and then bind again?
How to unbind it?
as below?
root@tegra-ubuntu:/sys/bus/pci/drivers/ath11k_pci# echo -n “0001:01:00.0” > /sys/bus/pci/drivers/ath11k_pci/unbind
-bash: echo: write error: No such device
Should I modify the device tree about pcie?
Driver ath11k_pci cannot probe,the problem I guess is about device tree doesn’t have a node to probe the
driver
Hi,
This issue has nothing to do with device tree. This issue seems to be the vendor driver on this kernel driver does not support the wifi module you are using.
For example, any kind of nvme can work on jetson. But we didn’t enable any “nvme” thing in the device tree…
So maybe I can update my ath11k path? Does it work in your opinion?
like this link([Solved] No Wifi adapter found for QCNFA765 Wireless Network Adapter - Red Hat Customer Portal)
nvidia@tegra-ubuntu:/lib/firmware/ath11k$ ls
QCA6390 WCN6855
I don’t know. You should confirm with the wifi card vnedor.
I notice the upstream driver has this on the device list.
static const struct pci_device_id ath11k_pci_id_table[] = {
{ PCI_VDEVICE(QCOM, QCA6390_DEVICE_ID) },
{ PCI_VDEVICE(QCOM, WCN6855_DEVICE_ID) },
{ PCI_VDEVICE(QCOM, QCN9074_DEVICE_ID) },
{0}
};
But the driver you currently use only has
static const struct pci_device_id ath11k_pci_id_table[] = {
{ PCI_VDEVICE(QCOM, QCA6390_DEVICE_ID) },
{0}
};
And if you ever read your lspci result, you will notice your device id is 1103. QCA6390_DEVICE_ID is 1101.
Thank you for reply.
So if I update my driver(ath11k) for my Wi-Fi 6E module,it would be can show up the kernel driver in use and kernel module in use when I command lspci -kv right?
But I ref this link(Jetson AGX Orin Platform Adaptation and Bring-Up — Jetson Linux<br/>Developer Guide 34.1 documentation) it’s say if I want to enabling PCIe in a
customer carrier board should set ODMDATA to match hardware/nvidia/platform/t23x/concord/kernel-dts/cvb/tegra234-p3737-pcie.dtsi
So I check p3701.conf.common :
#ODMDATA="gbe-uphy-config-22,hsstp-lane-map-3,nvhs-uphy-config-0,hsio-uphy-config-0,gbe0-enable-10g";
ODMDATA="gbe-uphy-config-0,hsstp-lane-map-3,nvhs-uphy-config-0,hsio-uphy-config-0";
and my dtsi file from hardware/nvidia/platform/t23x/concord/kernel-dts/cvb/tegra234-p3737-pcie.dtsi
/*
* Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/
#include <dt-bindings/gpio/tegra234-gpio.h>
/ {
pcie@14100000 {
status = "okay";
phys = <&p2u_hsio_3>;
phy-names = "p2u-0";
};
pcie@14160000 {
status = "okay";
phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>,
<&p2u_hsio_7>;
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
};
pcie@141a0000 {
status = "okay";
phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
<&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
<&p2u_nvhs_6>, <&p2u_nvhs_7>;
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
"p2u-5", "p2u-6", "p2u-7";
};
pcie_ep@141a0000 {
status = "disabled";
reset-gpios = <&tegra_main_gpio
TEGRA234_MAIN_GPIO(AF, 1)
GPIO_ACTIVE_LOW>;
nvidia,refclk-select-gpios = <&tegra_main_gpio
TEGRA234_MAIN_GPIO(Q, 4)
GPIO_ACTIVE_HIGH>;
phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
<&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
<&p2u_nvhs_6>, <&p2u_nvhs_7>;
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
"p2u-5", "p2u-6", "p2u-7";
};
};
Does above picture means the dtsi file and ODMDATA is match and when I update my driver(ath11k) succeed, the command lspci -kv will show up kernel driver and module in use?
Any help would be appreciated.
Thank you.
Hi,
Just forget about those ODMDATA. I don’t know why you are so stick to it.
Those document is talking about enabling C7 and C9 PCIe controller on the board. And that is for custom board.
Orin AGX devkit totally has no such hardware there.
We sell modules and some users/customers would make those carrier board to their own kind. If their own board will use pcie C7 and C9 lanes, they need to follow the document for enabling them.
Also, those functions are all for PCIe only. Which means if you already saw the device coming up in lspci, then it has nothing to do with ODMDATA. Enabling them does not help for your case.
Your wifi card is already up on the PCIe C1 controller. But just lacks of a proper vendor driver to run it.
簡單來說, 有一些用戶會自己作底板. 然後他們底板上面有使用到PCIe C7/C9那幾條lane.
那個ODMDATA文件是為了這種用戶.
如果你是使用Oring AGX Devkit底板, 那塊底板上本來就沒有在用PCIe C7/C9 這兩條lane/controller. 你就算把它們開了對你的case也沒有影響… 相反的可能還會沒辦法開機…
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.