[RFC,PATCH 7/7 v2] fwts: Add OPAL firmware type

Jeremy Kerr jk at ozlabs.org
Mon Apr 28 01:35:14 UTC 2014


Signed-off-by: Jeremy Kerr <jk at ozlabs.org>

---
 src/lib/include/fwts_firmware.h |    1 +
 src/lib/src/fwts_firmware.c     |   14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/lib/include/fwts_firmware.h b/src/lib/include/fwts_firmware.h
index 83a0ba4..fae859f 100644
--- a/src/lib/include/fwts_firmware.h
+++ b/src/lib/include/fwts_firmware.h
@@ -25,6 +25,7 @@ enum firmware_type {
 	FWTS_FIRMWARE_UNKNOWN = 0,
 	FWTS_FIRMWARE_BIOS = 1,
 	FWTS_FIRMWARE_UEFI = 2,
+	FWTS_FIRMWARE_OPAL = 3,
 	FWTS_FIRMWARE_OTHER = 100,
 };
 
diff --git a/src/lib/src/fwts_firmware.c b/src/lib/src/fwts_firmware.c
index c67e7b2..2cfcb3b 100644
--- a/src/lib/src/fwts_firmware.c
+++ b/src/lib/src/fwts_firmware.c
@@ -45,11 +45,14 @@ int fwts_firmware_detect(void)
 	if (firmware_type_valid)
 		return firmware_type;
 
-	if (stat("/sys/firmware/efi", &statbuf)) {
-		/* No UEFI, Assume BIOS */
-		firmware_type = FWTS_FIRMWARE_BIOS;
-	} else {
+	if (!stat("/sys/firmware/efi", &statbuf)) {
 		firmware_type = FWTS_FIRMWARE_UEFI;
+
+	} else if (!stat("/sys/firmware/opal", &statbuf)) {
+		firmware_type = FWTS_FIRMWARE_OPAL;
+
+	} else {
+		firmware_type = FWTS_FIRMWARE_BIOS;
 	}
 
 	firmware_type_valid = true;
@@ -66,6 +69,9 @@ int fwts_firmware_features(void)
 	case FWTS_FIRMWARE_UEFI:
 		features = FWTS_FW_FEATURE_ACPI;
 		break;
+	case FWTS_FIRMWARE_OPAL:
+		features = FWTS_FW_FEATURE_DEVICETREE;
+		break;
 	default:
 		break;
 	}



More information about the fwts-devel mailing list