Le 08/03/2025 à 11:05, Eric a écrit :
Hello Niklas,
I'll begin with the quick parts, changing kernel will take more time, this box is fit for family use but takes a bit of time to compile.
And now, results with the patched 6.14-rc5
Le 07/03/2025 à 10:53, Niklas Cassel a écrit :
Hello Eric,
On Thu, Mar 06, 2025 at 01:27:17PM +0100, Eric wrote:
I installed the same system on a USB stick, on which I also installed grub, so that the reboot is made independent of weather the UEFI sees the SSD disk or not. I'll attach dmesg extracts (grep on ata or ahci) to this mail. [...]
I hope this is useful for diagnosing the problem.
It is indeed!
Wow.
The problem does not appear to be with the SSD firmware.
The problem appears to be that your AHCI controller reports different values in the PI (Ports Implemented) register.
I have attached to this message the journal from a coldboot + reboot session.
Also, it would be helpful if you could print every time we read/write the PI register. (Don't ask me why libata writes a read-only register... we were not always the maintainers for this driver...)
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index e7ace4b10f15..dd837834245b 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c @@ -533,6 +533,7 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv) /* Override the HBA ports mapping if the platform needs it */ port_map = readl(mmio + HOST_PORTS_IMPL); + dev_err(dev, "%s:%d PI: read: %#lx\n", __func__, __LINE__, port_map); if (hpriv->saved_port_map && port_map != hpriv->saved_port_map) { dev_info(dev, "forcing port_map 0x%lx -> 0x%x\n", port_map, hpriv->saved_port_map); @@ -629,6 +630,7 @@ static void ahci_restore_initial_config(struct ata_host *host) if (hpriv->saved_cap2) writel(hpriv->saved_cap2, mmio + HOST_CAP2); writel(hpriv->saved_port_map, mmio + HOST_PORTS_IMPL); + dev_err(host->dev, "%s:%d PI: wrote: %#x\n", __func__, __LINE__, hpriv->saved_port_map); (void) readl(mmio + HOST_PORTS_IMPL); /* flush */ for_each_set_bit(i, &port_map, AHCI_MAX_PORTS) {
Kind regards
Eric