]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
platform_intel: support EFI SCU OEM variable
authorLabun, Marcin <Marcin.Labun@intel.com>
Sun, 20 Mar 2011 04:47:33 +0000 (15:47 +1100)
committerNeilBrown <neilb@suse.de>
Sun, 20 Mar 2011 04:47:33 +0000 (15:47 +1100)
RstScuV and RstScuO variable names are supported.
First try reading from RstScuV, when it fails try RstScuO.

Signed-off-by: Marcin Labun <marcin.labun@intel.com>
Tested-by: Przemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
platform-intel.c

index 8003da6e3864b27b45ee69db9a90942fda4b3379..64542b9bdb97446a7b38a94d70d1719aac210321 100644 (file)
@@ -349,6 +349,7 @@ static const struct imsm_orom *find_imsm_hba_orom(enum sys_dev_type hba_id)
 
 #define SYS_EFI_VAR_PATH "/sys/firmware/efi/vars"
 #define SCU_PROP "RstScuV"
+#define SCU_PROP_OEM "RstScuO"
 #define AHCI_PROP "RstSataV"
 
 #define VENDOR_GUID \
@@ -393,8 +394,14 @@ const struct imsm_orom *find_imsm_efi(enum sys_dev_type hba_id)
                snprintf(path, PATH_MAX, "%s/%s-%s", SYS_EFI_VAR_PATH, AHCI_PROP, guid_str(buf, VENDOR_GUID));
 
        dprintf("EFI VAR: path=%s\n", path);
-
-       if ((dfd = open(path, O_RDONLY)) < 0) {
+       dfd = open(path, O_RDONLY);
+       if ((dfd < 0) && (hba_id == SYS_DEV_SAS)) {
+               /* check OEM parameters */
+               snprintf(path, PATH_MAX, "%s/%s-%s", SYS_EFI_VAR_PATH, SCU_PROP_OEM, guid_str(buf, VENDOR_GUID));
+               dfd = open(path, O_RDONLY);
+               dprintf("EFI VAR: path=%s\n", path);
+       }
+       if (dfd < 0) {
                populated_efi[hba_id] = 0;
                return NULL;
        }