I was able to boot MintPPC32 from the M.2 NVMe SSD today.
It definitely boots and works faster on the M.2 NVMe SSD than from the internal SATA SSD.
However, the following kernel error messages appear with kernel versions 7.3 and 6.12:
Code: Select all
[ 3.309247] Hardware name: varisys,CYRUS5040 e5500 0x80240012 CoreNet Generic
[ 3.309250] Workqueue: pm .pm_runtime_work
[ 3.309267] Call Trace:
[ 3.309269] [c0000001febc77c0] [c000000000ce4b68] .dump_stack_lvl+0x78/0xa4 (unreliable)
[ 3.309280] [c0000001febc7850] [c0000000000cae44] .__report_bad_irq+0x34/0xf0
[ 3.309289] [c0000001febc78f0] [c0000000000cb1c8] .note_interrupt+0x1cc/0x304
[ 3.309296] [c0000001febc79b0] [c0000000000c7360] .handle_irq_event_percpu+0x44/0x54
[ 3.309308] [c0000001febc7a30] [c0000000000c73dc] .handle_irq_event+0x6c/0x98
[ 3.309316] [c0000001febc7ac0] [c0000000000ccc8c] .handle_level_irq+0x6c/0xa0
[ 3.309324] [c0000001febc7b40] [c0000000000c66d8] .handle_irq_desc+0x60/0x78
[ 3.309332] [c0000001febc7bb0] [c000000000038640] .fsl_error_int_handler+0x70/0xc0
[ 3.309341] [c0000001febc7c50] [c0000000000c71cc] .__handle_irq_event_percpu+0x64/0x1b4
[ 3.309349] [c0000001febc7d10] [c0000000000c7338] .handle_irq_event_percpu+0x1c/0x54
[ 3.309357] [c0000001febc7d90] [c0000000000c73dc] .handle_irq_event+0x6c/0x98
[ 3.309365] [c0000001febc7e20] [c0000000000ccd98] .handle_fasteoi_irq+0xd8/0x188
[ 3.309372] [c0000001febc7eb0] [c0000000000c66d8] .handle_irq_desc+0x60/0x78
[ 3.309380] [c0000001febc7f20] [c0000000000016b4] .__do_irq+0x78/0x80
[ 3.309388] [c0000001febc7f90] [c000000000001d2c] .__do_IRQ+0x6c/0x74
[ 3.309395] [c0000001febcb950] [c0000001febcb9e0] 0xc0000001febcb9e0
[ 3.309400] [c0000001febcb9e0] [c000000000001da0] .do_IRQ+0x6c/0xd0
[ 3.309407] [c0000001febcba80] [c000000000010a78] exc_0x500_common+0x110/0x114
[ 3.309417] ---- interrupt: 500 at .arch_local_irq_restore+0x4c/0xb0
[ 3.309423] NIP: c00000000000cfe4 LR: c000000000072744 CTR: c000000000035dc8
[ 3.309427] REGS: c0000001febcbaf0 TRAP: 0500 Not tainted (7.3.0-rc2-2-powerpc64-smp)
[ 3.309431] MSR: 0000000080029002 <CE,EE,ME> CR: 24242220 XER: 00000000
[ 3.309442] IRQMASK: 0
GPR00: c000000000072744 c0000001febcbd90 c0000000016e3000 0000000000000000
GPR04: 0000000000000000 00000000000000b0 0000000000000000 c0000000018c5e00
GPR08: 00000001fd146000 0000000000000000 0000000000000000 0000000000000001
GPR12: 0000000044248220 c000000001a5f000 c0000000000919b0 c0000000019a1080
GPR16: 0000000000000000 0000000000000002 0000000000000000 c00000008008a605
GPR20: c0000000019a1080 c000000080d36200 c0000000018c2580 0000000000000001
GPR24: 0000000000000000 0000000000000000 c0000000019a29c0 00000000fffb775d
GPR28: 0000000004208060 000000000000000a c0000000018c2580 0000000000000003
[ 3.309509] NIP [c00000000000cfe4] .arch_local_irq_restore+0x4c/0xb0
[ 3.309515] LR [c000000000072744] .arch_local_irq_enable+0x14/0x28
[ 3.309526] ---- interrupt: 500
[ 3.309528] [c0000001febcbd90] [c0000001febcbe80] 0xc0000001febcbe80 (unreliable)
[ 3.309535] [c0000001febcbe10] [c000000000072744] .arch_local_irq_enable+0x14/0x28
[ 3.309543] [c0000001febcbe80] [c000000000072bb8] .handle_softirqs+0xc8/0x26c
[ 3.309551] [c0000001febcbf90] [c000000000001e34] .do_softirq_own_stack+0x30/0x38
[ 3.309558] [c000000080f93270] [c000000000072848] .__irq_exit_rcu+0x64/0x10c
[ 3.309566] [c000000080f932e0] [c000000000072f94] .irq_exit+0x10/0x28
[ 3.309574] [c000000080f93350] [c00000000000d064] .replay_soft_interrupts+0x1c/0x30
[ 3.309581] [c000000080f933c0] [c00000000000ab24] .interrupt_exit_kernel_prepare+0xac/0xe4
[ 3.309588] [c000000080f93440] [c000000000000438] interrupt_return_srr_kernel+0x8/0xfc
[ 3.309595] ---- interrupt: 500 at .arch_local_irq_restore+0xa4/0xb0
[ 3.309601] NIP: c00000000000d03c LR: c00000000000d018 CTR: c000000000035dc8
[ 3.309604] REGS: c000000080f934b0 TRAP: 0500 Not tainted (7.3.0-rc2-2-powerpc64-smp)
[ 3.309608] MSR: 0000000080029002 <CE,EE,ME> CR: 24248220 XER: 00000000
[ 3.309618] IRQMASK: 0
GPR00: c00000000000d018 c000000080f93750 c0000000016e3000 0000000000000000
GPR04: 0000000000000000 00000000000000b0 0000000000000004 4000000000000000
GPR08: 00000001fd146000 0000000000000000 c0000001fea05380 fefefefefefefeff
GPR12: 0000000024248220 c000000001a5f000 c0000000000919b0 c000000080b5e380
GPR16: 0000000000000000 0000000000000000 0000000000000000 c00000008008a605
GPR20: 000000007fffffff c000000080d368f8 c0000000802a42c8 c000000080d36200
GPR24: 0000000000000000 0000000000000000 0000000000000000 c000000083659288
GPR28: 0000000000000008 0000000000000000 0000000000000000 0000000000000003
[ 3.309686] NIP [c00000000000d03c] .arch_local_irq_restore+0xa4/0xb0
[ 3.309691] LR [c00000000000d018] .arch_local_irq_restore+0x80/0xb0
[ 3.309697] ---- interrupt: 500
[ 3.309699] [c000000080f937d0] [c0000000008eb6b4] .__raw_spin_unlock_irq+0x48/0x5c
[ 3.309707] [c000000080f93840] [c0000000008ed940] .xhci_suspend+0x37c/0x3fc
[ 3.309715] [c000000080f938e0] [c00000000090199c] .xhci_pci_suspend+0xb4/0x118
[ 3.309725] [c000000080f93970] [c0000000008d7258] .hcd_pci_runtime_suspend+0x88/0x130
[ 3.309732] [c000000080f93a00] [c000000000529640] .pci_pm_runtime_suspend+0x88/0x1a0
[ 3.309742] [c000000080f93aa0] [c00000000071f504] .__rpm_callback+0x54/0x14c
[ 3.309750] [c000000080f93b40] [c00000000071f65c] .rpm_callback+0x60/0x64
[ 3.309757] [c000000080f93bc0] [c00000000071fce4] .rpm_suspend+0x260/0x444
[ 3.309765] [c000000080f93cb0] [c000000000720904] .pm_runtime_work+0xa8/0xb8
[ 3.309772] [c000000080f93d30] [c000000000088628] .process_scheduled_works+0x1d8/0x2ac
[ 3.309782] [c000000080f93e30] [c000000000088980] .worker_thread+0x178/0x1f0
[ 3.309789] [c000000080f93ef0] [c000000000091ac8] .kthread+0x118/0x120
[ 3.309797] [c000000080f93f90] [c0000000000005a8] .start_kernel_thread+0x10/0x14
[ 3.309804] handlers:
[ 3.521603] [<(____ptrval____)>] .pcie_pme_irq
[ 3.524293] [<(____ptrval____)>] .aer_irq threaded [<(____ptrval____)>] .aer_isr
[ 3.527028] [<(____ptrval____)>] .pcie_bwnotif_irq
[ 3.529760] Disabling IRQ #481
The stable long-term kernel 5.10 doesn't have these error messages during the boot.
dmesg | grep 481
Code: Select all
[ 0.048170] pci 0001:09:06.0: PME# supported from D0 D3hot D3cold
[ 0.102693] pcieport 0001:00:00.0: PME: Signaling with IRQ 481
[ 0.103115] pcieport 0001:00:00.0: AER: enabled with IRQ 481
[ 2.160481] PPP generic driver version 2.4.2
[ 3.306309] irq 481: nobody cared (try booting with the "irqpoll" option)
[ 3.529760] Disabling IRQ #481
[ 3.715481] usb 4-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
dmesg | grep 0001:09:06.0
Code: Select all
[ 0.047936] pci 0001:09:06.0: [1022:43f5] type 01 class 0x060400 PCIe Switch Downstream Port
[ 0.047984] pci 0001:09:06.0: PCI bridge to [bus 0d]
[ 0.048039] pci 0001:09:06.0: enabling Extended Tags
[ 0.048170] pci 0001:09:06.0: PME# supported from D0 D3hot D3cold
[ 0.052713] pci 0001:09:06.0: PCI bridge to [bus 0d-ff]
[ 0.055505] pci 0001:09:06.0: disabling bridge window [io 0x0000-0xffffffffffffffff] to [bus 0d] (unused)
[ 0.055517] pci 0001:09:06.0: disabling bridge window [mem 0x00000000-0xffffffffffffffff 64bit pref] to [bus 0d] (unused)
[ 0.055531] pci 0001:09:06.0: disabling bridge window [mem 0x00000000-0xffffffffffffffff] to [bus 0d] (unused)
[ 0.055972] pci 0001:09:06.0: PCI bridge to [bus 0d]
lspci | grep 0001:09:06.0
Code: Select all
0001:09:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port (rev 01)
Solution:
Add to the bootargs:
pcie_ports=compat
For example:
Code: Select all
setenv bootargs root=/dev/nvme0n1p1 pcie_ports=compat
The kernel boot argument
pcie_ports=compat activates the compatibility mode designed primarily for platforms where the Linux 7.x and 6.x kernel's native PCIe port management does not work properly with the firmware or hardware.
And that seems to be exactly the case with the X5000.