diff mbox

[6/6] fwts: Add OPAL firmware type

Message ID 1431487854.935600.135100293821.6.gpush@pablo
State Accepted
Headers show

Commit Message

Jeremy Kerr May 13, 2015, 3:30 a.m. UTC
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Alex Hung <alex.hung@canonical.com>

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

Patch

diff --git a/src/lib/include/fwts_firmware.h b/src/lib/include/fwts_firmware.h
index cc3cccf..26ff460 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 db7e9cc..c939b68 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;
 	}