@@ -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,
};
@@ -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;
Signed-off-by: Jeremy Kerr <jk@ozlabs.org> --- src/lib/include/fwts_firmware.h | 1 + src/lib/src/fwts_firmware.c | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-)