Message ID | 20220728122101.28744-20-colyli@suse.de (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Jes Sorensen |
Headers | show |
Series | mdadm-CI for-jes/20220728: patches for merge | expand |
On Thu, 28 Jul 2022 20:20:57 +0800 Coly Li <colyli@suse.de> wrote: > From: Hannes Reinecke <hare@suse.de> > > Alderlake has a slightly different RST configuration; the UEFI > variable is name 'RstVmdV', and the AHCI controller shows up as > a child device of the VMD bridge, but continues to use the 'AHCI HBA' > PCI class (and not the RAID class as RSTe would normally do). > > Signed-off-by: Hannes Reinecke <hare@suse.de> > Acked-by: Coly Li <colyli@suse.de> > --- > platform-intel.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/platform-intel.c b/platform-intel.c > index 5a8729e7..a4d55a38 100644 > --- a/platform-intel.c > +++ b/platform-intel.c > @@ -512,12 +512,14 @@ static const struct imsm_orom > *find_imsm_hba_orom(struct sys_dev *hba) #define AHCI_PROP "RstSataV" > #define AHCI_SSATA_PROP "RstsSatV" > #define AHCI_TSATA_PROP "RsttSatV" > +#define AHCI_RST_PROP "RstVmdV" > #define VMD_PROP "RstUefiV" > > #define VENDOR_GUID \ > EFI_GUID(0x193dfefa, 0xa445, 0x4302, 0x99, 0xd8, 0xef, 0x3a, > 0xad, 0x1a, 0x04, 0xc6) > #define PCI_CLASS_RAID_CNTRL 0x010400 > +#define PCI_CLASS_SATA_HBA 0x010601 > > static int read_efi_var(void *buffer, ssize_t buf_size, > const char *variable_name, struct efi_guid > guid) @@ -604,7 +606,8 @@ const struct imsm_orom > *find_imsm_efi(struct sys_dev *hba) struct imsm_orom orom; > struct orom_entry *ret; > static const char * const sata_efivars[] = {AHCI_PROP, > AHCI_SSATA_PROP, > - AHCI_TSATA_PROP}; > + AHCI_TSATA_PROP, > + AHCI_RST_PROP}; > unsigned long i; > > if (check_env("IMSM_TEST_AHCI_EFI") || > check_env("IMSM_TEST_SCU_EFI")) @@ -622,7 +625,8 @@ const struct > imsm_orom *find_imsm_efi(struct sys_dev *hba) > return NULL; > case SYS_DEV_SATA: > - if (hba->class != PCI_CLASS_RAID_CNTRL) > + if (hba->class != PCI_CLASS_RAID_CNTRL && > + hba->class != PCI_CLASS_SATA_HBA) > return NULL; > > for (i = 0; i < ARRAY_SIZE(sata_efivars); i++) { Hi, This patch causes a regression. I've checked how SATA controllers will be visible in --detail-platform output for IMSM. If RAID mode will be turned on for one of the SATA controllers, rest of them will be also visible as supported ones. Please analyze this scenario. Regards, Kinga Tanska
diff --git a/platform-intel.c b/platform-intel.c index 5a8729e7..a4d55a38 100644 --- a/platform-intel.c +++ b/platform-intel.c @@ -512,12 +512,14 @@ static const struct imsm_orom *find_imsm_hba_orom(struct sys_dev *hba) #define AHCI_PROP "RstSataV" #define AHCI_SSATA_PROP "RstsSatV" #define AHCI_TSATA_PROP "RsttSatV" +#define AHCI_RST_PROP "RstVmdV" #define VMD_PROP "RstUefiV" #define VENDOR_GUID \ EFI_GUID(0x193dfefa, 0xa445, 0x4302, 0x99, 0xd8, 0xef, 0x3a, 0xad, 0x1a, 0x04, 0xc6) #define PCI_CLASS_RAID_CNTRL 0x010400 +#define PCI_CLASS_SATA_HBA 0x010601 static int read_efi_var(void *buffer, ssize_t buf_size, const char *variable_name, struct efi_guid guid) @@ -604,7 +606,8 @@ const struct imsm_orom *find_imsm_efi(struct sys_dev *hba) struct imsm_orom orom; struct orom_entry *ret; static const char * const sata_efivars[] = {AHCI_PROP, AHCI_SSATA_PROP, - AHCI_TSATA_PROP}; + AHCI_TSATA_PROP, + AHCI_RST_PROP}; unsigned long i; if (check_env("IMSM_TEST_AHCI_EFI") || check_env("IMSM_TEST_SCU_EFI")) @@ -622,7 +625,8 @@ const struct imsm_orom *find_imsm_efi(struct sys_dev *hba) return NULL; case SYS_DEV_SATA: - if (hba->class != PCI_CLASS_RAID_CNTRL) + if (hba->class != PCI_CLASS_RAID_CNTRL && + hba->class != PCI_CLASS_SATA_HBA) return NULL; for (i = 0; i < ARRAY_SIZE(sata_efivars); i++) {