From: "Arnd Bergmann" <arnd@arndb.de>
To: "Josua Mayer" <josua@solid-run.com>,
"sashiko-reviews@lists.linux.dev"
<sashiko-reviews@lists.linux.dev>
Cc: "Conor Dooley" <conor+dt@kernel.org>,
"Rob Herring" <robh@kernel.org>, "Frank Li" <Frank.Li@kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"imx@lists.linux.dev" <imx@lists.linux.dev>
Subject: Re: [PATCH v7 1/9] arm64: dts: lx2160a-rev2: extend 32-bit, and add 64-bit pci regions
Date: Tue, 09 Jun 2026 19:24:01 +0200 [thread overview]
Message-ID: <9e6326f6-dad1-4169-a63c-e62ee5b341f2@app.fastmail.com> (raw)
In-Reply-To: <3528dc91-1ffc-42f9-94ea-a27c6c1d6a50@solid-run.com>
On Sun, May 24, 2026, at 19:12, Josua Mayer wrote:
> Am 24.05.26 um 17:13 schrieb sashiko-bot@kernel.org:
>>> - ranges = <0x81000000 0x0 0x00000000 0x80 0x00010000 0x0 0x00010000
>>> - 0x82000000 0x0 0x40000000 0x80 0x40000000 0x0 0x40000000>;
>>> + ranges = <0x81000000 0x00 0x00000000 0x80 0x00010000 0x00 0x00010000>, /* 16-Bit IO Window */
>>> + <0x82000000 0x00 0x40000000 0x80 0x40000000 0x00 0xc0000000>, /* 32-Bit - non-prefetchable */
>>> + <0xC3000000 0x84 0x00000000 0x84 0x00000000 0x04 0x00000000>; /* 64-Bit - prefetchable - 16GB */
>> [Severity: High]
>> Does expanding the 32-bit PCI outbound window to 3GB (0xc0000000) cause it to
>> overlap with inbound system memory?
>>
>> System memory starts at physical address 0x80000000. Since there isn't a
>> dma-ranges property mapping inbound DMA to a different bus address, system
>> memory uses a 1:1 mapping, meaning inbound DMA targets 0x80000000 and above.
>>
>> If a PCIe device requests a large 32-bit BAR, the kernel might allocate it
>> within this 0x40000000-0xffffffff range. This causes the Root Port's
>> downstream bridge Memory Limit register to be programmed to a value >=
>> 0x80000000.
>>
>> A Root Port won't forward upstream memory transactions if the address falls
>> within its programmed downstream window, as it assumes it is peer-to-peer
>> traffic.
>>
>> Could this intercept endpoint DMA targeting system memory in the overlapped
>> range and cause system hangs?
> This configuration was tested with NVMe and GPUs,
> the SMMU should ensure isolation pci bus addresses do not overlap with
> physical ram base address.
I noticed the same thing while reading through the pull request
for 7.2, and I think the bot message is correct here. The SMMU
does not help here because addresses on the same bus are routed
inside of the PCIe host bridge rather than directed to the host
side. If the non-prefetchable ranges ever get assigned to an
address 0x80000000, this definitely breaks.
You will not hit this in most tests, because large MMIO windows
are likely to be 64-bit capable and will end up in the
prefetchable range and addresses are usually assigned from
the lowest address. You can try to force the bug by starting the
non-prefetchable window just below the start of RAM for testing,
which will assign some of the devices to the RAM area.
Arnd
next prev parent reply other threads:[~2026-06-09 17:24 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-24 14:54 [PATCH v7 0/9] arm64: dts: lx2160a: cleanups, add new board, large pci bars Josua Mayer
2026-05-24 14:54 ` [PATCH v7 1/9] arm64: dts: lx2160a-rev2: extend 32-bit, and add 64-bit pci regions Josua Mayer
2026-05-24 15:03 ` Josua Mayer
2026-05-24 15:13 ` sashiko-bot
2026-05-24 17:12 ` Josua Mayer
2026-06-09 17:24 ` Arnd Bergmann [this message]
2026-06-09 18:01 ` Frank Li
2026-06-09 19:36 ` Arnd Bergmann
2026-06-09 20:34 ` Frank Li
2026-06-09 21:31 ` Arnd Bergmann
2026-06-09 22:13 ` Frank Li
2026-06-10 7:43 ` Arnd Bergmann
2026-06-10 10:36 ` Josua Mayer
2026-06-10 11:09 ` Arnd Bergmann
2026-05-24 14:54 ` [PATCH v7 2/9] arm64: dts: lx2162a-clearfog: use rev2 SoC dtsi Josua Mayer
2026-05-24 14:54 ` [PATCH v7 3/9] arm64: dts: lx2162a-clearfog: cleanup superfluous status properties Josua Mayer
2026-05-24 14:54 ` [PATCH v7 4/9] arm64: dts: lx2162a-clearfog: specify sfp ports led colour and function Josua Mayer
2026-05-24 14:54 ` [PATCH v7 5/9] dt-bindings: arm: fsl: Add solidrun lx2160a twins board Josua Mayer
2026-05-26 9:15 ` Krzysztof Kozlowski
2026-05-24 14:54 ` [PATCH v7 6/9] arm64: dts: lx2160a-clearfog-itx: remove redundant dts version tag Josua Mayer
2026-05-24 14:54 ` [PATCH v7 7/9] arm64: dts: lx2160a-clearfog-itx: move shared includes to dts Josua Mayer
2026-05-24 14:54 ` [PATCH v7 8/9] arm64: dts: lx2160a-cex7: add usb hub Josua Mayer
2026-05-24 14:54 ` [PATCH v7 9/9] arm64: dts: Add support for LX2160 Twins board in single configuration Josua Mayer
2026-05-24 16:19 ` sashiko-bot
2026-05-24 17:10 ` Josua Mayer
2026-06-01 20:31 ` [PATCH v7 0/9] arm64: dts: lx2160a: cleanups, add new board, large pci bars Frank.Li
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=9e6326f6-dad1-4169-a63c-e62ee5b341f2@app.fastmail.com \
--to=arnd@arndb.de \
--cc=Frank.Li@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=imx@lists.linux.dev \
--cc=josua@solid-run.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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