On 3/3/23 23:39, Michael Fritscher wrote:
Good evening,
you mean https://lkml.org/lkml/2019/6/20/27 /
https://lore.kernel.org/linux-pci/20190620061038.GA20564@xxxxxx/T/ ,
right? And yes, I have this problem as well. On a Toshiba z20t-c, and
this device has no option to switch this off. And even if has, there is
the problem that this device has no "normal" NVMe driver in the uefi it
seems, so it could not boot from...
As you might have glanced from the documentation, this is one of the
really bad mess-ups.
This particular feature was one of the first attempts by Intel to get
software RAID to work with NVMe without having to change Windows.
What they did here was to 'hide' the NVMe device behind an AHCI device,
essentially turning the AHCI PCI device into a combo with shared
registers and shared interrupts.
The resulting NVMe device is in violation of the spec, making it
questionable whether we should modify our implementation for a
non-compliant device.
To make matters worse Intel has since come up with similar (but
different) technologies; RSTe/VMD is one of the examples.
And Windows has meanwhile learned to handle NVMe, so the entire
rationale for this piece of .... has gone.
Making it even more questionable whether we should support it.
The only way I see how we could support it would be by writing an PCI
driver which splits the AHCI driver into two PCI virtual functions, the
first being a 'normal' AHCI' device and the other one being the NVMe.
Not sure if that's possible, though (one possible would have to ask
Bjorn Helgaas), but that seems to be the best option.
Except from ditching the NVMe in that device, of course :-)
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman