linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vidya Sagar <vidyas@nvidia.com>
To: Thierry Reding <thierry.reding@gmail.com>,
	Mikko Perttunen <cyndis@kapsi.fi>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Arnd Bergmann <arnd@arndb.de>, "Tomasz Nowicki" <tn@semihalf.com>,
	Liviu Dudau <liviu.dudau@arm.com>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	<linux-pci@vger.kernel.org>, <linux-tegra@vger.kernel.org>
Subject: Re: [PATCH v4 10/10] arm64: tegra: Enable PCIe on Jetson TX1
Date: Thu, 1 Dec 2016 00:09:28 +0530	[thread overview]
Message-ID: <71d84d4b-b14d-2f32-c36c-35a79e62d8bf@nvidia.com> (raw)
In-Reply-To: <20161130181409.GA29576@ulmo.ba.sec>

Is it possible that, this NIC card's DMA is only 32-bit capable (can be 
confirmed from lspci -vv output) and since SMMU is disabled, allocated 
memory's physical address happen to fall beyond 0xFFFF_FFFF region, so, 
 >32-bits are stripped off by DMA controller of NIC, resulting in 
accesses to random addresses?


On Wednesday 30 November 2016 11:44 PM, Thierry Reding wrote:
> * PGP Signed by an unknown key
>
> On Wed, Nov 30, 2016 at 08:06:45PM +0200, Mikko Perttunen wrote:
>> On 11/30/2016 07:48 PM, Thierry Reding wrote:
>>> On Mon, Nov 28, 2016 at 06:54:44PM +0200, Mikko Perttunen wrote:
>>>> Testing this series with a Jetson TX1 + r8168e PCI-E card, it /almost/
>>>> works.. Relevant parts of bootlog:
>>>>
>>>> [    1.876191] tegra-pcie 1003000.pcie-controller: 4x1, 1x1 configuration
>>>> [    1.884200] tegra-pcie 1003000.pcie-controller: probing port 0, using 4
>>>> lanes
>>>> [    1.893368] tegra-pcie 1003000.pcie-controller: Slot present pin change,
>>>> signature: 00000008
>>>> [    1.948049] tegra-pcie 1003000.pcie-controller: probing port 1, using 1
>>>> lanes
>>>> [    1.957209] tegra-pcie 1003000.pcie-controller: Slot present pin change,
>>>> signature: 00000000
>>>> [    2.367748] tegra-pcie 1003000.pcie-controller: link 1 down, retrying
>>>> [    2.778307] tegra-pcie 1003000.pcie-controller: link 1 down, retrying
>>>> [    3.188888] tegra-pcie 1003000.pcie-controller: link 1 down, retrying
>>>> [    3.197344] tegra-pcie 1003000.pcie-controller: link 1 down, ignoring
>>>> [    3.203931] tegra-pcie 1003000.pcie-controller: PCI host bridge to bus
>>>> 0000:00
>>>> [    3.211160] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
>>>> [    3.217343] pci_bus 0000:00: root bus resource [mem
>>>> 0x13000000-0x1fffffff]
>>>> [    3.224218] pci_bus 0000:00: root bus resource [mem 0x20000000-0x3fffffff
>>>> pref]
>>>> [    3.231525] pci_bus 0000:00: root bus resource [bus 00-ff]
>>>> [    3.237380] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]),
>>>> reconfiguring
>>>> [    3.254499] pci 0000:00:01.0: BAR 14: assigned [mem
>>>> 0x13000000-0x130fffff]
>>>> [    3.261389] pci 0000:00:01.0: BAR 15: assigned [mem 0x20000000-0x200fffff
>>>> 64bit pref]
>>>> [    3.269220] pci 0000:00:01.0: BAR 13: assigned [io  0x1000-0x1fff]
>>>> [    3.275412] pci 0000:01:00.0: BAR 4: assigned [mem 0x20000000-0x20003fff
>>>> 64bit pref]
>>>> [    3.283172] pci 0000:01:00.0: BAR 2: assigned [mem 0x13000000-0x13000fff
>>>> 64bit]
>>>> [    3.290498] pci 0000:01:00.0: BAR 0: assigned [io  0x1000-0x10ff]
>>>> [    3.296596] pci 0000:00:01.0: PCI bridge to [bus 01]
>>>> [    3.301568] pci 0000:00:01.0:   bridge window [io  0x1000-0x1fff]
>>>> [    3.307666] pci 0000:00:01.0:   bridge window [mem 0x13000000-0x130fffff]
>>>> [    3.314454] pci 0000:00:01.0:   bridge window [mem 0x20000000-0x200fffff
>>>> 64bit pref]
>>>> [    3.322213] pci 0000:00:01.0: nv_msi_ht_cap_quirk didn't locate host
>>>> bridge
>>>> [    3.329257] pcieport 0000:00:01.0: enabling device (0000 -> 0003)
>>>> [    3.335572] pcieport 0000:00:01.0: Signaling PME through PCIe PME
>>>> interrupt
>>>> [    3.342537] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
>>>> [    3.349256] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
>>>> [    3.354858] r8169 0000:01:00.0: enabling device (0000 -> 0003)
>>>> [    3.361460] r8169 0000:01:00.0 eth0: RTL8168e/8111e at
>>>> 0xffff000008eae000, 98:de:d0:04:25:14, XID 0c200000 IRQ 348
>>>> [    3.371812] r8169 0000:01:00.0 eth0: jumbo features [frames: 9200 bytes,
>>>> tx checksumming: ko]
>>>>
>>>> then
>>>>
>>>> [    3.706240] tegra-mc 70019000.memory-controller: afiw: write
>>>> @0x000000007a484000: EMEM address decode error (EMEM decode error)
>>>> [    3.717747] r8169 0000:01:00.0 eth0: link down
>>> Hmm... that's very odd. It seems like for some reason the PCIe
>>> controller wants to access memory that's below the DRAM. Do you happen
>>> to have the SMMU enabled for PCIe? Can you try adding some debug prints
>>> to the networking driver to find out where this address is coming from?
>> SMMU is disabled; I'll try adding debug prints. The behavior certainly looks
>> pretty strange.
> Maybe you can also find out if at any point in the above the driver is
> actually accessing the I/O ports. I don't think we've ever tested that
> particular part very much.
>
> I seem to be using a very similar card to yours, which makes it all the
> more surprising that it isn't working for you.
>
> Thierry
>
> * Unknown Key
> * 0x7F3EB3A1


  reply	other threads:[~2016-11-30 18:39 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-25 10:57 [PATCH v4 01/10] PCI: Add new method for registering PCI hosts Thierry Reding
2016-11-25 10:57 ` [PATCH v4 02/10] PCI: Allow driver-specific data in host bridge Thierry Reding
2016-11-25 10:57 ` [PATCH v4 03/10] PCI: Make host bridge interface publicly available Thierry Reding
2016-11-25 10:57 ` [PATCH v4 04/10] PCI: tegra: Use new pci_register_host_bridge() interface Thierry Reding
2016-12-09 10:11   ` Tomasz Nowicki
2016-11-25 10:57 ` [PATCH v4 05/10] dt-bindings: pci: tegra: Add Tegra210 support Thierry Reding
2016-11-25 10:57 ` [PATCH v4 06/10] PCI: tegra: Implement PCA enable workaround Thierry Reding
2016-11-25 10:57 ` [PATCH v4 07/10] PCI: tegra: Add Tegra210 support Thierry Reding
2016-11-25 10:57 ` [PATCH v4 08/10] PCI: tegra: Enable the driver on 64-bit ARM Thierry Reding
2016-11-25 10:57 ` [PATCH v4 09/10] arm64: tegra: Add PCIe host bridge on Tegra210 Thierry Reding
2016-11-25 10:57 ` [PATCH v4 10/10] arm64: tegra: Enable PCIe on Jetson TX1 Thierry Reding
2016-11-28 16:54   ` Mikko Perttunen
2016-11-29  6:25     ` Vidya Sagar
2016-11-30 17:48     ` Thierry Reding
2016-11-30 18:06       ` Mikko Perttunen
2016-11-30 18:14         ` Thierry Reding
2016-11-30 18:39           ` Vidya Sagar [this message]
2016-11-30 19:38             ` Mikko Perttunen
2016-12-02 12:29               ` Mikko Perttunen
2016-12-07 17:58 ` [PATCH v4 01/10] PCI: Add new method for registering PCI hosts Bjorn Helgaas
2016-12-08 20:34 ` Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=71d84d4b-b14d-2f32-c36c-35a79e62d8bf@nvidia.com \
    --to=vidyas@nvidia.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=cyndis@kapsi.fi \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=liviu.dudau@arm.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=thierry.reding@gmail.com \
    --cc=tn@semihalf.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).