AIRETOS AEX-QCA9880-NX wifi module on jetson nano

Followed the link, Welcome — Jetson Linux<br/>Developer Guide 34.1 documentation

and modified the DTB as specified, able to overcome the dma address issue.

Hello everyone,

@ganga,

Can you tell exactly how you followed the instruction to modify DTB?
I followed the instruction however it mainly covers on how to compile the new kernel while as far as I understand this, the need is to alter the file within hardware folder and not the kernel itself (considering that kernel_src consists of the following two folders: hardware and kernel)
Would appreciate any direction on this matter.

Yes, i had to change in hardware folder. When i build the kernel, changes were effective and new kernel-4.9/kernel_build/arch/arm64/boot/dts/tegra210-p3448-0000-p3449-0000-b00.dtb was created.

Looks like nvidia has modified the kernel to build. So, give it a try with kernel build.

Thanks ganga. I did the part with building the kernel, now i got stuck how to flash it, can you advise how did you do it?
I have complied the kernel on the actual nano…

I have used external Host to build an image, after the kernel build, i copied Image and dtb into Linux_for_Tegra and used a script file to create the sd-card image.

Commands used:

$TEGRA_KERNEL_OUT/arch/arm64/boot/Image – <release_packagep>/Linux_for_Tegra/kernel/Image

cp ./arch/arm64/boot/Image …/…/…/…/Linux_for_Tegra/kernel/Image

$TEGRA_KERNEL_OUT/arch/arm64/boot/dts/ – Linux_for_Tegra/kernel/dtb/

cp -R ./arch/arm64/boot/dts/ …/…/…/…/Linux_for_Tegra/kernel/dtb/

sudo ./apply_binaries.sh

And then created a sd-card image with script,

sudo ./create-jetson-nano-sd-card-image.sh -o sd-blob-b01.img -s 10G -r 300

Thanks ganga. Managed to get it done and also overcome the problem with Wifi.
Few remarks though:

  1. in my case (version) i had to use different script
  2. in my case revision of the board was A01 that corresponds to -r 200

Basically followed the following when it comes to building the kernel:
https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fkernel_custom.html%23

and this one in order to flash my image:

https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fflashing.html%23wwpID0E0PG0HA

Although had to overcome few obstacles along the road: in the NVIDIA guide name of script is different, also had to download few files in addition like L4T Driver package and Sample root file system.

Nevertheless, achieved what i needed after few hours.
Cheers.

I finally got around to trying the fix today! it worked like a charm. I have to say that figuring out how to build and flash the DTB and kernel was a pain though… the instructions are not very well written in my opinion. Anyway, for reference here is a step by step:

Required:
Computer with Ubuntu and Jetpack SDK installer, with the Jetson Nano jetpack downloaded

Steps:

  • On the computer go to the folder where Jetpack is installed

    cd ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra
    
  • Find the tag for the kernel sources you need. For Jetpack 4.3 it was tegra-l4t-r32.3.1

  • Use source_sync.sh script to download the kernel sources, you will be asked for the above tag to download the correct version of the sources

    $ ./source_sync.sh
    
  • After the above finishes, the source files will be at:

    ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/sources
    
  • Find the file mentioned in th post above:

  • remove the lines mentioned
  • Continue building the kernel, set the output folder where you want the new files to be built:

    $ TEGRA_KERNEL_OUT=~/KernelBuild
    
  • Find the path to. the arm64 toolchain

    $ which aarch64-linux-gnu-cpp
    

    the output should be something like: /usr/bin/aarch64-linux-gnu-cpp

  • Set the variables for cross-compiling, use the output from the above command with. out the cpp part:

    $ export CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-
    $ export LOCALVERSION=-tegra
    
  • Create the .config file by executing the following commands:

    $ cd ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/sources/kernel/kernel-4.9
    $ mkdir -p $TEGRA_KERNEL_OUT
    $ make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
    
  • Build the Kernel and all DTBs (note <n> is the number of processors available -1):

    $ make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j<n>
    
  • Copy the created image and DTBs to the JetPack folder:

    $ cp $TEGRA_KERNEL_OUT/arch/arm64/boot/Image ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/Image
    $ cp -r $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/* ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/dtb/
    
  • Install the Kernel Modules:

    $ sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/rootfs/
    
  • create an archive of. the kernel modules and replace the old ones (replace <yourusername> with your linux user to set the correct owner of the file) :

    $ cd <modules_install_path>
    $ sudo tar --owner root --group root -cjf kernel_supplements.tbz2 lib/modules
    $ mv ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/kernel_supplements.tbz2 ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/kernel_supplements.tbz2.orig
    $ sudo mv kernel_supplements.tbz2 ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/
    $ sudo chown <yourusername>:<yourusername> ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/kernel_supplements.tbz2
    
  • Apply the binaries you just created:

    $ cd ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra
    $ sudo ./apply_binaries.sh
    
  • At this point you either need to create an SD Card image for the Nano, or in my case I had to flash a production module with the updated kernel using the following command.

    $ sudo ./flash.sh -r jetson-nano-emmc mmcblk0p1
    
  • After this is done follow the normal initial configuration steps on the Nano and you image will no longer have the issue.

Hope this makes it easier for anyone to modify and rebuild the kernel if needed.

4 Likes

Hi, @Manikanta, could you help with similar issue with QCNFA335?

[    6.031485] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    6.060275] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    6.161363] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    6.182632] mc-err: (0) csw_afiw: EMEM address decode error
[    6.188332] mc-err:   status = 0x20011031; addr = 0x65e17060
[    6.194056] mc-err:   secure: no, access-type: write, SMMU fault: none
[    6.204215] mc-err: (0) csw_afiw: EMEM address decode error
[    6.209878] mc-err:   status = 0x20011031; addr = 0x65e18060
[    6.215612] mc-err:   secure: no, access-type: write, SMMU fault: none
[    6.237889] mc-err: (0) csw_afiw: EMEM address decode error
[    6.243527] mc-err:   status = 0x20011031; addr = 0x65e19060
[    6.249255] mc-err:   secure: no, access-type: write, SMMU fault: none
[    6.273950] mc-err: (0) csr_afir: EMEM address decode error
[    6.279582] mc-err:   status = 0x2000000e; addr = 0x5d9ffe00
[    6.285328] mc-err:   secure: no, access-type: read, SMMU fault: none
[    6.303306] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    6.303359] Bluetooth: BNEP socket layer initialized
[    6.312131] mc-err: Too many MC errors; throttling prints

I tried your solution here and recompile the kernel but it didn’t work.
This seem also has been reported here

Additional info: the first time the image booted and I had to setup the wifi connection in the wizard, it worked. But after it reboots, that error above is shown in dmesg.

Can you execute below script and provide output?

#!/bin/bash
shopt -s nullglob
for g in /sys/kernel/iommu_groups/; do
echo "IOMMU Group ${g##
/}:"
for d in $g/devices/; do
echo -e "\t$(lspci -nns ${d##
/})"
done;
done;

Thanks,
Manikanta

Thanks for your attention to this, Manikananta,

I found that the device list formats are not ready for lspci -nns, so I modified the scrip to list them as is (without feeding to lspci -nns):

IOMMU Group 0
    tegra-carveouts
IOMMU Group 1
    smmu_test
IOMMU Group 2
    70090000.xusb
IOMMU Group 3
    70006000.serial
IOMMU Group 4
    70006040.serial
IOMMU Group 5
    70006200.serial
IOMMU Group 6
    sound
IOMMU Group 7
    7000d400.spi
IOMMU Group 8
    7000d600.spi
IOMMU Group 9
    70410000.spi
IOMMU Group 10
    50000000.host1x
IOMMU Group 11
    54080000.vi
IOMMU Group 12
    54600000.isp
IOMMU Group 13
    54680000.isp
IOMMU Group 14
    tegradc.0
IOMMU Group 15
    tegradc.1
IOMMU Group 16
    54340000.vic
IOMMU Group 17
    544c0000.nvenc
IOMMU Group 18
    54500000.tsec
IOMMU Group 19
    54100000.tsecb
IOMMU Group 20
    54480000.nvdec
IOMMU Group 21
    54380000.nvjpg
IOMMU Group 22
    546c0000.i2c
IOMMU Group 23
    57000000.gpu
IOMMU Group 24
    70012000.se
IOMMU Group 25
    7000c000.i2c
IOMMU Group 26
    7000c400.i2c
IOMMU Group 27
    7000c500.i2c
IOMMU Group 28
    7000c700.i2c
IOMMU Group 29
    7000d000.i2c
IOMMU Group 30
    7000d100.i2c
IOMMU Group 31
    sdhci-tegra.0
IOMMU Group 32
    700d0000.xudc
IOMMU Group 33
    702ef000.adsp
IOMMU Group 34
    aconnect@702c0000:adsp_audio
IOMMU Group 35
    serial8250
IOMMU Group 36
    snd-soc-dummy

Here’s an output of lspci -nn

00:01.0 PCI bridge [0604]: NVIDIA Corporation Device [10de:0fae] (rev a1)
00:02.0 PCI bridge [0604]: NVIDIA Corporation Device [10de:0faf] (rev a1)
01:00.0 Network controller [0280]: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter [168c:0036] (rev 01)
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)

and -vv:

00:01.0 PCI bridge: NVIDIA Corporation Device 0fae (rev a1) (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin A routed to IRQ 84
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    Memory behind bridge: 13000000-130fffff
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
    BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: NVIDIA Corporation Device 0000
    Capabilities: [48] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
        Address: 0000000000000000 Data: 0000
    Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
        Mapping Address Base: 00000000fee00000
    Capabilities: [80] Express (v2) Root Port (Slot+), MSI 00
        DevCap:    MaxPayload 128 bytes, PhantFunc 0
            ExtTag+ RBE+
        DevCtl:    Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
        LnkCap:    Port #0, Speed 5GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <512ns, L1 <4us
            ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
        LnkCtl:    ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
        SltCap:    AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
        SltCtl:    Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
            Control: AttnInd Off, PwrInd On, Power- Interlock-
        SltSta:    Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
            Changed: MRL- PresDet+ LinkState+
        RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
        RootCap: CRSVisible-
        RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        DevCap2: Completion Timeout: Range AB, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd-
        DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
        LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
    Capabilities: [100 v1] Advanced Error Reporting
        UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UESvrt:    DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
        CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
        CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
        AERCap:    First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
    Capabilities: [140 v1] L1 PM Substates
        L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
             PortCommonModeRestoreTime=30us PortTPowerOnTime=70us
        L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
             T_CommonMode=30us LTR1.2_Threshold=0ns
        L1SubCtl2: T_PwrOn=70us
    Kernel driver in use: pcieport

00:02.0 PCI bridge: NVIDIA Corporation Device 0faf (rev a1) (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin A routed to IRQ 84
    Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
    I/O behind bridge: 00001000-00001fff
    Memory behind bridge: 13100000-131fffff
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
    BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: NVIDIA Corporation Device 0000
    Capabilities: [48] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
        Address: 0000000000000000 Data: 0000
    Capabilities: [60] HyperTransport: MSI Mapping Enable- Fixed-
        Mapping Address Base: 00000000fee00000
    Capabilities: [80] Express (v2) Root Port (Slot+), MSI 00
        DevCap:    MaxPayload 128 bytes, PhantFunc 0
            ExtTag+ RBE+
        DevCtl:    Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
        LnkCap:    Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <512ns, L1 <4us
            ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
        SltCap:    AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
        SltCtl:    Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
            Control: AttnInd Off, PwrInd On, Power- Interlock-
        SltSta:    Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
            Changed: MRL- PresDet+ LinkState+
        RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
        RootCap: CRSVisible-
        RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        DevCap2: Completion Timeout: Range AB, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd-
        DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
        LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
    Capabilities: [100 v1] Advanced Error Reporting
        UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UESvrt:    DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
        CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
        CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
        AERCap:    First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
    Capabilities: [140 v1] L1 PM Substates
        L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
             PortCommonModeRestoreTime=30us PortTPowerOnTime=70us
        L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
             T_CommonMode=150us LTR1.2_Threshold=294912ns
        L1SubCtl2: T_PwrOn=150us
    Kernel driver in use: pcieport

01:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)
    Subsystem: Lite-On Communications Inc QCA9565 / AR9565 Wireless Network Adapter
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 84
    Region 0: Memory at 13000000 (64-bit, non-prefetchable) [size=512K]
    [virtual] Expansion ROM at 13080000 [disabled] [size=64K]
    Capabilities: [40] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable- Count=1/4 Maskable+ 64bit+
        Address: 0000000000000000 Data: 0000
        Masking: 00000000 Pending: 00000000
    Capabilities: [70] Express (v2) Endpoint, MSI 00
        DevCap:    MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us
            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
        DevCtl:    Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- UncorrErr+ FatalErr- UnsuppReq- AuxPwr+ TransPend-
        LnkCap:    Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us
            ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
        LnkCtl:    ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
        DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
        LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
    Capabilities: [100 v1] Advanced Error Reporting
        UESta:    DLP- SDES- TLP- FCP- CmpltTO+ CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UESvrt:    DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
        CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
        CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
        AERCap:    First Error Pointer: 0e, GenCap- CGenEn- ChkCap- ChkEn-
    Capabilities: [140 v1] Virtual Channel
        Caps:    LPEVC=0 RefClk=100ns PATEntryBits=1
        Arb:    Fixed- WRR32- WRR64- WRR128-
        Ctrl:    ArbSelect=Fixed
        Status:    InProgress-
        VC0:    Caps:    PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
            Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
            Ctrl:    Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
            Status:    NegoPending- InProgress-
    Capabilities: [160 v1] Device Serial Number 00-00-00-00-00-00-00-00
    Kernel driver in use: ath9k
    Kernel modules: ath9k


02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
    Subsystem: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 406
    Region 0: I/O ports at 1000 [size=256]
    Region 2: Memory at 13104000 (64-bit, non-prefetchable) [size=4K]
    Region 4: Memory at 13100000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Address: 00000000fa81f000 Data: 0000
    Capabilities: [70] Express (v2) Endpoint, MSI 01
        DevCap:    MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
        DevCtl:    Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 4096 bytes
        DevSta:    CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
        LnkCap:    Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
            ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
        LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Via message/WAKE#
        DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
        LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
    Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
        Vector table: BAR=4 offset=00000000
        PBA: BAR=4 offset=00000800
    Capabilities: [100 v2] Advanced Error Reporting
        UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
        UESvrt:    DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
        CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
        CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
        AERCap:    First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
    Capabilities: [140 v1] Virtual Channel
        Caps:    LPEVC=0 RefClk=100ns PATEntryBits=1
        Arb:    Fixed- WRR32- WRR64- WRR128-
        Ctrl:    ArbSelect=Fixed
        Status:    InProgress-
        VC0:    Caps:    PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
            Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
            Ctrl:    Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
            Status:    NegoPending- InProgress-
    Capabilities: [160 v1] Device Serial Number 00-00-00-00-00-00-00-00
    Capabilities: [170 v1] Latency Tolerance Reporting
        Max snoop latency: 0ns
        Max no snoop latency: 0ns
    Capabilities: [178 v1] L1 PM Substates
        L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
             PortCommonModeRestoreTime=150us PortTPowerOnTime=150us
        L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
             T_CommonMode=0us LTR1.2_Threshold=294912ns
        L1SubCtl2: T_PwrOn=150us
    Kernel driver in use: r8168


Hi,

I don’t find AFI as part of iommu group, so the change is not applied correctly. Please follow the steps shared by Jaime and verify.

Thanks,
Manikanta

OK, seems like I needed to do “make clean” before recompiling the kernel.
It’s working, now. Many thanks!