Re: REGRESSION: v5.13-rc1 does not boot because of "of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses"

From: Leonardo Brás
Date: Fri Jun 18 2021 - 09:17:00 EST


Hello Domenico,

If I got that correctly, my patche exposes an issue with host bridge
windows. 

There is already a patch approved that should fix the issue:
http://patchwork.ozlabs.org/project/linux-pci/patch/20210614230457.752811-1-punitagrawal@xxxxxxxxx/

Please check if it fixes the issue for you (also, if possible give
feedback in the patch thread).

Best regards,
Leonardo Bras

On Fri, 2021-06-18 at 14:36 +0200, Domenico Andreoli wrote:
> Hi Leonardo,
>
> Since v5.13-rc1 my NanoPI M4 (arm64 with pcie-attached nvme) does not
> boot any more.
>
> I could bisect it down to your commit
> 9d57e61bf72336e13e4cd3c31e93ab26266296a8, just
> reverting it from v5.13-rc6 makes the boot happen again.
>
> The .dts file I use is arch/arm64/boot/dts/rockchip/rk3399-nanopi-
> m4v2.dts.
>
> This is the output of lspci -vv:
>
> 00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd RK3399 PCI
> Express Root Port (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- <MAbort- >SERR- <PERR- INTx-
>         Latency: 0
>         Interrupt: pin A routed to IRQ 90
>         Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>         I/O behind bridge: 00000000-00000fff [size=4K]
>         Memory behind bridge: fa000000-fa0fffff [size=1M]
>         Prefetchable memory behind bridge: 00000000-000fffff [size=1M]
>         Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- <SERR- <PERR-
>         BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset-
> FastB2B-
>                 PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>         Capabilities: <access denied>
>         Kernel driver in use: pcieport
>
> 01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe
> SSD Controller SM981/PM981/PM983 (prog-if 02 [NVM Express])
>         Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller
> SM981/PM981/PM983
>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR- FastB2B- DisINTx+
>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Latency: 0
>         Interrupt: pin A routed to IRQ 89
>         NUMA node: 0
>         Region 0: Memory at fa000000 (64-bit, non-prefetchable)
> [size=16K]
>         Capabilities: <access denied>
>         Kernel driver in use: nvme
>         Kernel modules: nvme
>
> Is there anything I can do to help you understanding why this is
> happening?
>
> I apologize for not having bisected it earlier.
>
> Kind regards,
> Domenico
>