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

Jeremy Kerr jk at ozlabs.org
Thu Apr 24 08:18:24 UTC 2014


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

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

diff --git a/src/lib/include/fwts_firmware.h b/src/lib/include/fwts_firmware.h
index 1ef5e73..4dc4c96 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 cca0615..867c4bc 100644
--- a/src/lib/src/fwts_firmware.c
+++ b/src/lib/src/fwts_firmware.c
@@ -37,11 +37,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;



More information about the fwts-devel mailing list