* [i.MX8 PCIe] PCIe link fails after kexec @ 2025-09-23 3:35 He, Guocai (CN) 2025-09-23 23:00 ` Bjorn Helgaas 0 siblings, 1 reply; 4+ messages in thread From: He, Guocai (CN) @ 2025-09-23 3:35 UTC (permalink / raw) To: Richard Zhu, Lucas Stach, Lorenzo Pieralisi, Krzysztof Wilczy��ski, Rob Herring, Bjorn Helgaas, Shawn Guo, Sascha Hauer, Philipp Zabel Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Wang, Xiaolei Hi all, We are seeing a PCIe issue on i.MX8-based board when using kexec on Linux kernel 6.6, we would appreciate your help to clarify whether this is a known problem or if there is a recommended fix. ## Board & Setup Linux version 6.6.103-yocto-standard (oe-user@oe-host) (aarch64-wrs-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2 .42.0.20240723) #1 SMP PREEMPT Wed Sep 3 20:13:35 UTC 2025 Machine model: Freescale i.MX8QM MEK PCIe device: Intel Corporation Wireless 7260 ##Boot flow: #step 1: Initial boot: Linux kernel boot from tftp . setenv ipaddr 128.224.165.120 setenv gatewayip 128.224.165.1 setenv netmask 255.255.255.0 setenv serverip 128.224.165.20 tftp 0x8a0000000 vlm-boards/29106/kernel tftp 0x8d0000000 vlm-boards/29106/dtb booti 0x8a0000000 - 0x8d0000000 #step 2: Switch to another kernel on disk using kexec Reproduction steps root@nxp-imx8:~# mkdir /mnt/sdisk root@nxp-imx8:~# mount /dev/mmcblk0p1 /mnt/sdisk/ root@nxp-imx8:~# scp ghe-cn@128.224.153.151:/folk/ghe-cn/images/Image /mnt/sdisk/kernel //the images is the same. root@nxp-imx8:~# kexec -l /mnt/sdisk/kernel --append="console=ttyLP0,115200 video=HDMI-A-1:1920x1080-32@60 rw root= /dev/nfs nfsroot=128.224.165.20:/export/pxeboot/vlm-boards/29105/rootfs,tcp,v3 ip=128.224.165.120:128.224.165.20:12 8.224.165.1:255.255.255.0::eth0:off selinux=0 enforcing=0" root@nxp-imx8:~# kexec -e #After the second kernel boots, the PCIe link does not come up. #Key log differences ##### boot (boot_cold.log): imx6q-pcie 5f010000.pcie: host bridge /bus@5f000000/pcie@5f010000 ranges: imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops dpu_bliteng_ops) imx6q-pcie 5f000000.pcie: host bridge /bus@5f000000/pcie@5f000000 ranges: imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> 0x0000000000 imx6q-pcie 5f000000.pcie: MEM 0x0060000000..0x006fefffff -> 0x0060000000 imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit 4G imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd imx6q-pcie 5f000000.pcie: PCIe Gen.1 x1 link up imx6q-pcie 5f000000.pcie: PCIe Gen.1 x1 link up imx6q-pcie 5f000000.pcie: Link up, Gen1 imx6q-pcie 5f000000.pcie: PCIe Gen.1 x1 link up imx6q-pcie 5f000000.pcie: PCI host bridge to bus 0000:00 #→ Link up successfully root@nxp-imx8:~# lspci 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) 01:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b) root@nxp-imx8:~# #####After kexec (boot_kexec.log): imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> 0x0000000000 imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit 4G imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd imx6q-pcie 5f000000.pcie: Phy link never came up imx6q-pcie 5f000000.pcie: Phy link never came up imx6q-pcie 5f000000.pcie: PCI host bridge to bus 0000:00 #→ Link never comes up, no PCIe devices detected. root@nxp-imx8:~# lspci 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) root@nxp-imx8:~# #Questions Are there existing patches or recommended workarounds for this scenario? Thanks for your time and any guidance you can provide. Best regards, Guocai ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [i.MX8 PCIe] PCIe link fails after kexec 2025-09-23 3:35 [i.MX8 PCIe] PCIe link fails after kexec He, Guocai (CN) @ 2025-09-23 23:00 ` Bjorn Helgaas 2025-09-25 6:19 ` Hongxing Zhu 0 siblings, 1 reply; 4+ messages in thread From: Bjorn Helgaas @ 2025-09-23 23:00 UTC (permalink / raw) To: He, Guocai (CN) Cc: Richard Zhu, Lucas Stach, Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring, Bjorn Helgaas, Shawn Guo, Sascha Hauer, Philipp Zabel, kernel@pengutronix.de, linux-imx@nxp.com, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Wang, Xiaolei On Tue, Sep 23, 2025 at 03:35:56AM +0000, He, Guocai (CN) wrote: > Hi all, > > We are seeing a PCIe issue on i.MX8-based board when using kexec on > Linux kernel 6.6, we would appreciate your help to clarify whether > this is a known problem or if there is a recommended fix. Can you boot a recent kernel, e.g., v6.16 or v6.17-rc7, to make sure you're not seeing an already-fixed problem? If you can't try a recent kernel, please include your devicetree and the complete dmesg log including both the initial boot and the kexec. > ## Board & Setup > Linux version 6.6.103-yocto-standard (oe-user@oe-host) (aarch64-wrs-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2 > .42.0.20240723) #1 SMP PREEMPT Wed Sep 3 20:13:35 UTC 2025 > > Machine model: Freescale i.MX8QM MEK > PCIe device: Intel Corporation Wireless 7260 > > > ##Boot flow: > #step 1: Initial boot: Linux kernel boot from tftp . > setenv ipaddr 128.224.165.120 > setenv gatewayip 128.224.165.1 > setenv netmask 255.255.255.0 > setenv serverip 128.224.165.20 > > tftp 0x8a0000000 vlm-boards/29106/kernel > tftp 0x8d0000000 vlm-boards/29106/dtb > booti 0x8a0000000 - 0x8d0000000 > > > #step 2: Switch to another kernel on disk using kexec > Reproduction steps > root@nxp-imx8:~# mkdir /mnt/sdisk > root@nxp-imx8:~# mount /dev/mmcblk0p1 /mnt/sdisk/ > root@nxp-imx8:~# scp ghe-cn@128.224.153.151:/folk/ghe-cn/images/Image /mnt/sdisk/kernel //the images is the same. > > root@nxp-imx8:~# kexec -l /mnt/sdisk/kernel --append="console=ttyLP0,115200 video=HDMI-A-1:1920x1080-32@60 rw root= > /dev/nfs nfsroot=128.224.165.20:/export/pxeboot/vlm-boards/29105/rootfs,tcp,v3 ip=128.224.165.120:128.224.165.20:12 > 8.224.165.1:255.255.255.0::eth0:off selinux=0 enforcing=0" > > root@nxp-imx8:~# kexec -e > > > #After the second kernel boots, the PCIe link does not come up. > #Key log differences > > ##### boot (boot_cold.log): > imx6q-pcie 5f010000.pcie: host bridge /bus@5f000000/pcie@5f010000 ranges: > imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops dpu_bliteng_ops) > imx6q-pcie 5f000000.pcie: host bridge /bus@5f000000/pcie@5f000000 ranges: > imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> 0x0000000000 > imx6q-pcie 5f000000.pcie: MEM 0x0060000000..0x006fefffff -> 0x0060000000 > imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit 4G > imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd > imx6q-pcie 5f000000.pcie: PCIe Gen.1 x1 link up > imx6q-pcie 5f000000.pcie: PCIe Gen.1 x1 link up > imx6q-pcie 5f000000.pcie: Link up, Gen1 > imx6q-pcie 5f000000.pcie: PCIe Gen.1 x1 link up > imx6q-pcie 5f000000.pcie: PCI host bridge to bus 0000:00 > > #→ Link up successfully > > root@nxp-imx8:~# lspci > 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) > 01:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b) > root@nxp-imx8:~# > > > #####After kexec (boot_kexec.log): > > imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> 0x0000000000 > imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit 4G > imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd > > imx6q-pcie 5f000000.pcie: Phy link never came up > imx6q-pcie 5f000000.pcie: Phy link never came up > imx6q-pcie 5f000000.pcie: PCI host bridge to bus 0000:00 > > #→ Link never comes up, no PCIe devices detected. > > root@nxp-imx8:~# lspci > 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) > root@nxp-imx8:~# > > > #Questions > Are there existing patches or recommended workarounds for this scenario? > Thanks for your time and any guidance you can provide. > > Best regards, > > Guocai ^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [i.MX8 PCIe] PCIe link fails after kexec 2025-09-23 23:00 ` Bjorn Helgaas @ 2025-09-25 6:19 ` Hongxing Zhu 2025-09-25 6:31 ` He, Guocai (CN) 0 siblings, 1 reply; 4+ messages in thread From: Hongxing Zhu @ 2025-09-25 6:19 UTC (permalink / raw) To: Bjorn Helgaas, He, Guocai (CN) Cc: Lucas Stach, Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring, Bjorn Helgaas, Shawn Guo, Sascha Hauer, Philipp Zabel, kernel@pengutronix.de, dl-linux-imx, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, xiaolei.wang Hi Guocai: I tried the L6.17-rc1 on i.MX8QM MEK board. No such kind of problem. Here are the logs: root@imx8qmmek:~# kexec /run/media/boot-mmcblk1p1/Image --dtb=/run/media/boot-mmcblk1p1/imx8qm-mek.dtb --command-line="console=ttyLP0,115200 earlycon no_console_suspend root=/dev/mmcblk1p2 rootwait rw" root@imx8qmmek:~# Stopping Session c6 of User root... [ OK ] Removed slice Slice /system/modprobe. [ OK ] Stopped target Graphical Interface. [ OK ] Stopped target Multi-User System. ... [ 28.693426] kexec_core: Starting new kernel [ 28.744358] psci: CPU1 killed (polled 0 ms) [ 28.776362] psci: CPU2 killed (polled 0 ms) [ 28.791996] psci: CPU3 killed (polled 0 ms) [ 28.797151] Bye! [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] ... [ 2.432495] clk: Disabling unused clocks [ 2.443360] check access for rdinit=/init failed: -2, ignoring [ 2.629319] imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit 4G [ 2.637134] imx6q-pcie 5f000000.pcie: Invalid eDMA IRQs found [ 2.746542] mmc1: new high speed SDHC card at address aaaa [ 2.753040] mmcblk1: mmc1:aaaa SA16G 14.8 GiB [ 2.761508] mmcblk1: p1 p2 [ 2.840973] imx6q-pcie 5f000000.pcie: PCIe Gen.3 x1 link up [ 2.847724] imx6q-pcie 5f000000.pcie: PCI host bridge to bus 0000:00 [ 2.854136] pci_bus 0000:00: root bus resource [bus 00-ff] [ 2.859659] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] ... imx8qmmek login: root root@imx8qmmek:~# root@imx8qmmek:~# root@imx8qmmek:~# uname -a Linux imx8qmmek 6.17.0-rc1 #3 SMP PREEMPT Thu Sep 25 14:14:51 CST 2025 aarch64 GNU/Linux root@imx8qmmek:~# lspci 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) 01:00.0 Non-Volatile memory controller: Shenzhen Unionmemory Information System Ltd. AM610 PCIe 3.0 x2 NVMe SSD 128GB, 256GB (rev 01) Best Regards Richard Zhu > -----Original Message----- > From: Bjorn Helgaas <helgaas@kernel.org> > Sent: 2025年9月24日 7:00 > To: He, Guocai (CN) <Guocai.He.CN@windriver.com> > Cc: Hongxing Zhu <hongxing.zhu@nxp.com>; Lucas Stach > <l.stach@pengutronix.de>; Lorenzo Pieralisi <lpieralisi@kernel.org>; Krzysztof > Wilczyński <kw@linux.com>; Rob Herring <robh@kernel.org>; Bjorn Helgaas > <bhelgaas@google.com>; Shawn Guo <shawnguo@kernel.org>; Sascha Hauer > <s.hauer@pengutronix.de>; Philipp Zabel <p.zabel@pengutronix.de>; > kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; > linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; xiaolei.wang > <xiaolei.wang@windriver.com> > Subject: Re: [i.MX8 PCIe] PCIe link fails after kexec > > On Tue, Sep 23, 2025 at 03:35:56AM +0000, He, Guocai (CN) wrote: > > Hi all, > > > > We are seeing a PCIe issue on i.MX8-based board when using kexec on > > Linux kernel 6.6, we would appreciate your help to clarify whether > > this is a known problem or if there is a recommended fix. > > Can you boot a recent kernel, e.g., v6.16 or v6.17-rc7, to make sure you're not > seeing an already-fixed problem? > > If you can't try a recent kernel, please include your devicetree and the > complete dmesg log including both the initial boot and the kexec. > > > ## Board & Setup > > Linux version 6.6.103-yocto-standard (oe-user@oe-host) > > (aarch64-wrs-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2 > > .42.0.20240723) #1 SMP PREEMPT Wed Sep 3 20:13:35 UTC 2025 > > > > Machine model: Freescale i.MX8QM MEK > > PCIe device: Intel Corporation Wireless 7260 > > > > > > ##Boot flow: > > #step 1: Initial boot: Linux kernel boot from tftp . > > setenv ipaddr 128.224.165.120 > > setenv gatewayip 128.224.165.1 > > setenv netmask 255.255.255.0 > > setenv serverip 128.224.165.20 > > > > tftp 0x8a0000000 vlm-boards/29106/kernel tftp 0x8d0000000 > > vlm-boards/29106/dtb booti 0x8a0000000 - 0x8d0000000 > > > > > > #step 2: Switch to another kernel on disk using kexec Reproduction > > steps root@nxp-imx8:~# mkdir /mnt/sdisk root@nxp-imx8:~# mount > > /dev/mmcblk0p1 /mnt/sdisk/ > > root@nxp-imx8:~# scp ghe-cn@128.224.153.151:/folk/ghe-cn/images/Image > /mnt/sdisk/kernel //the images is the same. > > > > root@nxp-imx8:~# kexec -l /mnt/sdisk/kernel > > --append="console=ttyLP0,115200 video=HDMI-A-1:1920x1080-32@60 rw > > root= /dev/nfs > > nfsroot=128.224.165.20:/export/pxeboot/vlm-boards/29105/rootfs,tcp,v3 > > ip=128.224.165.120:128.224.165.20:12 > > 8.224.165.1:255.255.255.0::eth0:off selinux=0 enforcing=0" > > > > root@nxp-imx8:~# kexec -e > > > > > > #After the second kernel boots, the PCIe link does not come up. > > #Key log differences > > > > ##### boot (boot_cold.log): > > imx6q-pcie 5f010000.pcie: host bridge /bus@5f000000/pcie@5f010000 > ranges: > > imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops > > dpu_bliteng_ops) imx6q-pcie 5f000000.pcie: host bridge > /bus@5f000000/pcie@5f000000 ranges: > > imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> > 0x0000000000 > > imx6q-pcie 5f000000.pcie: MEM 0x0060000000..0x006fefffff -> > 0x0060000000 > > imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit > > 4G imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd imx6q-pcie > > 5f000000.pcie: PCIe Gen.1 x1 link up imx6q-pcie 5f000000.pcie: PCIe > > Gen.1 x1 link up imx6q-pcie 5f000000.pcie: Link up, Gen1 imx6q-pcie > > 5f000000.pcie: PCIe Gen.1 x1 link up imx6q-pcie 5f000000.pcie: PCI > > host bridge to bus 0000:00 > > > > #→ Link up successfully > > > > root@nxp-imx8:~# lspci > > 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) > > 01:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b) > > root@nxp-imx8:~# > > > > > > #####After kexec (boot_kexec.log): > > > > imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> > 0x0000000000 > > imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit > > 4G imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd > > > > imx6q-pcie 5f000000.pcie: Phy link never came up imx6q-pcie > > 5f000000.pcie: Phy link never came up imx6q-pcie 5f000000.pcie: PCI > > host bridge to bus 0000:00 > > > > #→ Link never comes up, no PCIe devices detected. > > > > root@nxp-imx8:~# lspci > > 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) > > root@nxp-imx8:~# > > > > > > #Questions > > Are there existing patches or recommended workarounds for this scenario? > > Thanks for your time and any guidance you can provide. > > > > Best regards, > > > > Guocai ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [i.MX8 PCIe] PCIe link fails after kexec 2025-09-25 6:19 ` Hongxing Zhu @ 2025-09-25 6:31 ` He, Guocai (CN) 0 siblings, 0 replies; 4+ messages in thread From: He, Guocai (CN) @ 2025-09-25 6:31 UTC (permalink / raw) To: Hongxing Zhu, Bjorn Helgaas Cc: Lucas Stach, Lorenzo Pieralisi, Krzysztof Wilczy��ski, Rob Herring, Bjorn Helgaas, Shawn Guo, Sascha Hauer, Philipp Zabel, kernel@pengutronix.de, dl-linux-imx, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Wang, Xiaolei, Bi, Peng (CN) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset="gb2312", Size: 8024 bytes --] Richard and Bjorn: Thank you very much for your response and enthusiastic help. The issue is still exist on 6.16, but In 6.17, from https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0bd0a41a5120f78685a132834865b0a631b9026a the issue is disappeared. I have tried to use git bisect to find the commit and find a commit of "d31eb2174255 PCI: imx6: Remove apps_reset toggling from imx_pcie_{assert/deassert}_core_reset¡°. In fact, I applied the patch which created from d31eb2174255 to somewhere of 6.17, it works. But applied to 6.16, it not works, let alone 6.6. So I suspect the commit that fixed this issue was a combination of multiple commits. I will compare the differences and try to identify where the issue lies. Guocai ________________________________________ From: Hongxing Zhu <hongxing.zhu@nxp.com> Sent: Thursday, September 25, 2025 2:19 PM To: Bjorn Helgaas; He, Guocai (CN) Cc: Lucas Stach; Lorenzo Pieralisi; Krzysztof Wilczy¨½ski; Rob Herring; Bjorn Helgaas; Shawn Guo; Sascha Hauer; Philipp Zabel; kernel@pengutronix.de; dl-linux-imx; linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; Wang, Xiaolei Subject: RE: [i.MX8 PCIe] PCIe link fails after kexec CAUTION: This email comes from a non Wind River email account! Do not click links or open attachments unless you recognize the sender and know the content is safe. Hi Guocai: I tried the L6.17-rc1 on i.MX8QM MEK board. No such kind of problem. Here are the logs: root@imx8qmmek:~# kexec /run/media/boot-mmcblk1p1/Image --dtb=/run/media/boot-mmcblk1p1/imx8qm-mek.dtb --command-line="console=ttyLP0,115200 earlycon no_console_suspend root=/dev/mmcblk1p2 rootwait rw" root@imx8qmmek:~# Stopping Session c6 of User root... [ OK ] Removed slice Slice /system/modprobe. [ OK ] Stopped target Graphical Interface. [ OK ] Stopped target Multi-User System. ... [ 28.693426] kexec_core: Starting new kernel [ 28.744358] psci: CPU1 killed (polled 0 ms) [ 28.776362] psci: CPU2 killed (polled 0 ms) [ 28.791996] psci: CPU3 killed (polled 0 ms) [ 28.797151] Bye! [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] ... [ 2.432495] clk: Disabling unused clocks [ 2.443360] check access for rdinit=/init failed: -2, ignoring [ 2.629319] imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit 4G [ 2.637134] imx6q-pcie 5f000000.pcie: Invalid eDMA IRQs found [ 2.746542] mmc1: new high speed SDHC card at address aaaa [ 2.753040] mmcblk1: mmc1:aaaa SA16G 14.8 GiB [ 2.761508] mmcblk1: p1 p2 [ 2.840973] imx6q-pcie 5f000000.pcie: PCIe Gen.3 x1 link up [ 2.847724] imx6q-pcie 5f000000.pcie: PCI host bridge to bus 0000:00 [ 2.854136] pci_bus 0000:00: root bus resource [bus 00-ff] [ 2.859659] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] ... imx8qmmek login: root root@imx8qmmek:~# root@imx8qmmek:~# root@imx8qmmek:~# uname -a Linux imx8qmmek 6.17.0-rc1 #3 SMP PREEMPT Thu Sep 25 14:14:51 CST 2025 aarch64 GNU/Linux root@imx8qmmek:~# lspci 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) 01:00.0 Non-Volatile memory controller: Shenzhen Unionmemory Information System Ltd. AM610 PCIe 3.0 x2 NVMe SSD 128GB, 256GB (rev 01) Best Regards Richard Zhu > -----Original Message----- > From: Bjorn Helgaas <helgaas@kernel.org> > Sent: 2025Äê9ÔÂ24ÈÕ 7:00 > To: He, Guocai (CN) <Guocai.He.CN@windriver.com> > Cc: Hongxing Zhu <hongxing.zhu@nxp.com>; Lucas Stach > <l.stach@pengutronix.de>; Lorenzo Pieralisi <lpieralisi@kernel.org>; Krzysztof > Wilczy¨½ski <kw@linux.com>; Rob Herring <robh@kernel.org>; Bjorn Helgaas > <bhelgaas@google.com>; Shawn Guo <shawnguo@kernel.org>; Sascha Hauer > <s.hauer@pengutronix.de>; Philipp Zabel <p.zabel@pengutronix.de>; > kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; > linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; xiaolei.wang > <xiaolei.wang@windriver.com> > Subject: Re: [i.MX8 PCIe] PCIe link fails after kexec > > On Tue, Sep 23, 2025 at 03:35:56AM +0000, He, Guocai (CN) wrote: > > Hi all, > > > > We are seeing a PCIe issue on i.MX8-based board when using kexec on > > Linux kernel 6.6, we would appreciate your help to clarify whether > > this is a known problem or if there is a recommended fix. > > Can you boot a recent kernel, e.g., v6.16 or v6.17-rc7, to make sure you're not > seeing an already-fixed problem? > > If you can't try a recent kernel, please include your devicetree and the > complete dmesg log including both the initial boot and the kexec. > > > ## Board & Setup > > Linux version 6.6.103-yocto-standard (oe-user@oe-host) > > (aarch64-wrs-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2 > > .42.0.20240723) #1 SMP PREEMPT Wed Sep 3 20:13:35 UTC 2025 > > > > Machine model: Freescale i.MX8QM MEK > > PCIe device: Intel Corporation Wireless 7260 > > > > > > ##Boot flow: > > #step 1: Initial boot: Linux kernel boot from tftp . > > setenv ipaddr 128.224.165.120 > > setenv gatewayip 128.224.165.1 > > setenv netmask 255.255.255.0 > > setenv serverip 128.224.165.20 > > > > tftp 0x8a0000000 vlm-boards/29106/kernel tftp 0x8d0000000 > > vlm-boards/29106/dtb booti 0x8a0000000 - 0x8d0000000 > > > > > > #step 2: Switch to another kernel on disk using kexec Reproduction > > steps root@nxp-imx8:~# mkdir /mnt/sdisk root@nxp-imx8:~# mount > > /dev/mmcblk0p1 /mnt/sdisk/ > > root@nxp-imx8:~# scp ghe-cn@128.224.153.151:/folk/ghe-cn/images/Image > /mnt/sdisk/kernel //the images is the same. > > > > root@nxp-imx8:~# kexec -l /mnt/sdisk/kernel > > --append="console=ttyLP0,115200 video=HDMI-A-1:1920x1080-32@60 rw > > root= /dev/nfs > > nfsroot=128.224.165.20:/export/pxeboot/vlm-boards/29105/rootfs,tcp,v3 > > ip=128.224.165.120:128.224.165.20:12 > > 8.224.165.1:255.255.255.0::eth0:off selinux=0 enforcing=0" > > > > root@nxp-imx8:~# kexec -e > > > > > > #After the second kernel boots, the PCIe link does not come up. > > #Key log differences > > > > ##### boot (boot_cold.log): > > imx6q-pcie 5f010000.pcie: host bridge /bus@5f000000/pcie@5f010000 > ranges: > > imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops > > dpu_bliteng_ops) imx6q-pcie 5f000000.pcie: host bridge > /bus@5f000000/pcie@5f000000 ranges: > > imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> > 0x0000000000 > > imx6q-pcie 5f000000.pcie: MEM 0x0060000000..0x006fefffff -> > 0x0060000000 > > imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit > > 4G imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd imx6q-pcie > > 5f000000.pcie: PCIe Gen.1 x1 link up imx6q-pcie 5f000000.pcie: PCIe > > Gen.1 x1 link up imx6q-pcie 5f000000.pcie: Link up, Gen1 imx6q-pcie > > 5f000000.pcie: PCIe Gen.1 x1 link up imx6q-pcie 5f000000.pcie: PCI > > host bridge to bus 0000:00 > > > > #¡ú Link up successfully > > > > root@nxp-imx8:~# lspci > > 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) > > 01:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b) > > root@nxp-imx8:~# > > > > > > #####After kexec (boot_kexec.log): > > > > imx6q-pcie 5f000000.pcie: IO 0x006ff80000..0x006ff8ffff -> > 0x0000000000 > > imx6q-pcie 5f000000.pcie: iATU: unroll F, 6 ob, 6 ib, align 4K, limit > > 4G imx6q-pcie 5f000000.pcie: eDMA: unroll F, 1 wr, 1 rd > > > > imx6q-pcie 5f000000.pcie: Phy link never came up imx6q-pcie > > 5f000000.pcie: Phy link never came up imx6q-pcie 5f000000.pcie: PCI > > host bridge to bus 0000:00 > > > > #¡ú Link never comes up, no PCIe devices detected. > > > > root@nxp-imx8:~# lspci > > 00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01) > > root@nxp-imx8:~# > > > > > > #Questions > > Are there existing patches or recommended workarounds for this scenario? > > Thanks for your time and any guidance you can provide. > > > > Best regards, > > > > Guocai ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-09-25 6:32 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-09-23 3:35 [i.MX8 PCIe] PCIe link fails after kexec He, Guocai (CN) 2025-09-23 23:00 ` Bjorn Helgaas 2025-09-25 6:19 ` Hongxing Zhu 2025-09-25 6:31 ` He, Guocai (CN)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox