Re: [PATCH] PCI: Disable NoSnoop and Relaxed ordering for Intel wireless BE200

Bjorn Helgaas <[email protected]> Thu, 30 Jul 2026 12:28:07 -0500
Newsgroups dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-pci
Message-ID <20260730172807.GA1508799@bhelgaas>
On Thu, Jul 30, 2026 at 10:21:06AM +0530, Manikanta Maddireddy wrote:
> On 29/07/26 12:19 pm, Grumbach, Emmanuel wrote:
> > On Tue, 2026-07-28 at 15:18 -0500, Bjorn Helgaas wrote:
> > > On Tue, Jul 28, 2026 at 07:47:04PM +0000, Grumbach, Emmanuel wrote:
> > > > On Tue, 2026-07-28 at 14:24 -0500, Bjorn Helgaas wrote:
> > > > > On Tue, Jul 28, 2026 at 06:21:23PM +0000, Grumbach, Emmanuel
> > > > > wrote:
> > > > > > On Tue, 2026-07-28 at 13:03 -0500, Bjorn Helgaas wrote:
> > > > > > ...
> > > > > 
> > > > > > > AFAICS we still don't know why Tegra264 would set
> > > > > > > NoSnoop and/or RlxdOrd in the MMIO read.
> > > > > > 
> > > > > > Me neither but... I can't comment on that. And de-facto,
> > > > > > once it does that, the BE200 replies with the NoSnoop and
> > > > > > RlxOrd clear in the TLP which is then considered as a
> > > > > > malformed TLP.
> > > > > > 
> > > > > > > Unless iwlwifi asked for NoSnoop and/or RlxdOrd to be
> > > > > > > set, I think it's a potential problem for drivers if
> > > > > > > Tegra264 sets them.
> > > > > > 
> > > > > > I ... don't think we would do that. The driver would
> > > > > > certainly not do that... Regarding the hardware itself, I
> > > > > > can't comment, but I can check internally.
> > > > > 
> > > > > Forgot to ask, can you collect the output of "sudo lspci
> > > > > -vv", at least for the RP and the BE200?
> > > > > 
> > > > > And maybe the dmesg log when booted with "log_buf_len=16M
> > > > > pci=earlydump" as well, so we can see if attributes were
> > > > > enabled by a bootloader?
> > > > 
> > > > I assume you want all this without the quirk, right?
> > > 
> > > Right.
> > 
> > Attached.
> > Note that we used an out-of-tree driver in those attempts so the
> > kernel is tainted, but this does not impact the issue we're
> > discussing here.
> 
> PCI_EXP_DEVCTL_RELAX_EN and PCI_EXP_DEVCTL_NOSNOOP_EN are set by HW
> default value, this is inline with PCIe spec. It says "the default
> value of this bit is 1b" in both cases.

Huh, you're right.  I was assuming 0b was the default, but indeed 1b
is the default unless they're hardwired to 0.  And they're both set to
1b on my x86 (AMD) Root Ports as well.  

So I would think we'd see this Malformed TLP error on pretty much
every system with BE200 in it.