PCIe Drivers ? JetPack-L4T-2.2 - JetPack-L4T-2.3 DIFF

Hello Dusty /Jetson Team,

After i upgraded JetPack-L4T-2.2 to JetPack-L4T-2.3 i am having issues with PCIe drivers.
are the drivers changes done by Nvidia or is it by Canonical team ?

How can i revert back to old drivers and what is the reason for changing drivers.

Can you be more specific, what do you mean by PCIe drivers? The root complex driver?

I am using a Dual PCIe Ethernet card it was working fine, with previous JetPack.

May  6 10:40:14 tegra-ubuntu NetworkManager[603]: <info>  [1462531214.1858] device (eth1): link disconnected (deferring action for 4 seconds)
May  6 10:40:14 tegra-ubuntu kernel: [18014.167388] mc-err: Too many MC errors; throttling prints
May  6 10:40:17 tegra-ubuntu NetworkManager[603]: <info>  [1462531217.0339] device (eth1): link connected
May  6 10:40:17 tegra-ubuntu kernel: [18016.938418] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
May  6 10:40:17 tegra-ubuntu kernel: [18017.128608] smmu_dump_pagetable(): fault_address=0x0000000000000000 pa=0xffffffffffffffff bytes=ffffffffffffffff #pte=0 in L2
May  6 10:40:17 tegra-ubuntu kernel: [18017.140362] mc-err: (0) csw_afiw: EMEM decode error on PDE or PTE entry
May  6 10:40:17 tegra-ubuntu kernel: [18017.147306] mc-err:   status = 0x60010031; addr = 0x00000000
May  6 10:40:17 tegra-ubuntu kernel: [18017.153119] mc-err:   secure: no, access-type: write, SMMU fault: nr-nw-s
May  6 10:40:18 tegra-ubuntu kernel: [18018.284660] smmu_dump_pagetable(): fault_address=0x00000000e7102000 pa=0xffffffffffffffff bytes=ffffffffffffffff #pte=0 in L2

Please apply the following patch

--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -2112,7 +2112,8 @@ static dma_addr_t arm_coherent_iommu_map_page(struct device *dev, struct page *p
     * compound page then there's probably a bug somewhere.
    if (page_offset > 0)
-       BUG_ON(page_count(page) == 1);
+       BUG_ON(page_offset > (1 << compound_order(compound_head(page)))
+           - ((page - compound_head(page)) << PAGE_SHIFT));

    dma_addr = __alloc_iova(mapping, len, attrs);
    if (dma_addr == DMA_ERROR_CODE)

@raak, Can you please confirm if the above patch works fine for you?

No, it did not, we are using stripped down version of Ubuntu 14 and on Ubuntu 16 its now working.
Its an custom carrier board. But issue exists on devkit too

Can you post the output of /etc/nv_tegra_release ?

Hi raak,

Is this still an issue in your side?
Or issue has been clarified and resolved?


Hi Kaycc,

We wrote our own drivers, issue is resolved.