[PATCH 1/2] ebbr: add EBBR option for ARM embedded systems

Ivan Hu ivan.hu at canonical.com
Wed Nov 6 09:47:19 UTC 2019


The Embedded Base Boot Requirements specification defines requirements for
embedded systems to enable inter-operability between SoCs, hardware platforms,
firmware implementations, and operating system distributions.
https://github.com/ARM-software/ebbr

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/lib/include/fwts_framework.h         | 3 ++-
 src/lib/src/fwts_framework.c             | 9 +++++++--
 src/uefi/uefirtmisc/uefirtmisc.c         | 2 +-
 src/uefi/uefirttime/uefirttime.c         | 2 +-
 src/uefi/uefirtvariable/uefirtvariable.c | 2 +-
 5 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/lib/include/fwts_framework.h b/src/lib/include/fwts_framework.h
index 47eba368..74e12657 100644
--- a/src/lib/include/fwts_framework.h
+++ b/src/lib/include/fwts_framework.h
@@ -61,7 +61,8 @@ typedef enum {
 	FWTS_FLAG_SHOW_TESTS_FULL		= 0x00200000,
 	FWTS_FLAG_SHOW_TESTS_CATEGORIES		= 0x00400000,
 	FWTS_FLAG_TEST_COMPLIANCE_ACPI		= 0x00800000,
-	FWTS_FLAG_TEST_SBBR			= 0x01000000
+	FWTS_FLAG_TEST_SBBR			= 0x01000000,
+	FWTS_FLAG_TEST_EBBR			= 0x02000000
 } fwts_framework_flags;
 
 #define FWTS_FLAG_TEST_MASK		\
diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
index 698fa49a..f9e76b96 100644
--- a/src/lib/src/fwts_framework.c
+++ b/src/lib/src/fwts_framework.c
@@ -57,7 +57,8 @@ typedef struct {
 	 FWTS_FLAG_TEST_UEFI |			\
 	 FWTS_FLAG_TEST_ACPI |			\
 	 FWTS_FLAG_TEST_COMPLIANCE_ACPI |	\
-	 FWTS_FLAG_TEST_SBBR)
+	 FWTS_FLAG_TEST_SBBR |			\
+	 FWTS_FLAG_TEST_EBBR)
 
 static const fwts_categories categories[] = {
 	{ "ACPI",			FWTS_FLAG_TEST_ACPI },
@@ -136,6 +137,7 @@ static fwts_option fwts_framework_options[] = {
 	{ "sbbr",		"",   0, "Run ARM SBBR tests." },
 	{ "ifv",		"",   0, "Run tests in firmware-vendor modes." },
 	{ "clog",		"",   1, "Specify a coreboot logfile dump" },
+	{ "ebbr",		"",   0, "Run ARM EBBR tests." },
 	{ NULL, NULL, 0, NULL }
 };
 
@@ -1338,7 +1340,10 @@ int fwts_framework_options_handler(fwts_framework *fw, int argc, char * const ar
 			break;
 		case 48: /* --coreboot-log */
 			fwts_framework_strdup(&fw->clog, optarg);
-
+			break;
+		case 49: /* --ebbr */
+			fw->flags |= FWTS_FLAG_TEST_EBBR;
+			break;
 		}
 		break;
 	case 'a': /* --all */
diff --git a/src/uefi/uefirtmisc/uefirtmisc.c b/src/uefi/uefirtmisc/uefirtmisc.c
index 4cda7783..cbe4a4a1 100644
--- a/src/uefi/uefirtmisc/uefirtmisc.c
+++ b/src/uefi/uefirtmisc/uefirtmisc.c
@@ -324,6 +324,6 @@ static fwts_framework_ops uefirtmisc_ops = {
 	.minor_tests = uefirtmisc_tests
 };
 
-FWTS_REGISTER("uefirtmisc", &uefirtmisc_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_TEST_UEFI | FWTS_FLAG_UNSAFE | FWTS_FLAG_ROOT_PRIV)
+FWTS_REGISTER("uefirtmisc", &uefirtmisc_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_TEST_UEFI | FWTS_FLAG_UNSAFE | FWTS_FLAG_ROOT_PRIV | FWTS_FLAG_TEST_EBBR)
 
 #endif
diff --git a/src/uefi/uefirttime/uefirttime.c b/src/uefi/uefirttime/uefirttime.c
index c6ffb644..08a5507d 100644
--- a/src/uefi/uefirttime/uefirttime.c
+++ b/src/uefi/uefirttime/uefirttime.c
@@ -1355,6 +1355,6 @@ static fwts_framework_ops uefirttime_ops = {
 	.minor_tests = uefirttime_tests
 };
 
-FWTS_REGISTER("uefirttime", &uefirttime_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_TEST_UEFI | FWTS_FLAG_UNSAFE | FWTS_FLAG_ROOT_PRIV)
+FWTS_REGISTER("uefirttime", &uefirttime_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_TEST_UEFI | FWTS_FLAG_UNSAFE | FWTS_FLAG_ROOT_PRIV | FWTS_FLAG_TEST_EBBR)
 
 #endif
diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c
index 55a9b1d9..db72abe1 100644
--- a/src/uefi/uefirtvariable/uefirtvariable.c
+++ b/src/uefi/uefirtvariable/uefirtvariable.c
@@ -2294,6 +2294,6 @@ static fwts_framework_ops uefirtvariable_ops = {
 	.options_check   = options_check,
 };
 
-FWTS_REGISTER("uefirtvariable", &uefirtvariable_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_TEST_UEFI | FWTS_FLAG_UNSAFE | FWTS_FLAG_ROOT_PRIV)
+FWTS_REGISTER("uefirtvariable", &uefirtvariable_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_TEST_UEFI | FWTS_FLAG_UNSAFE | FWTS_FLAG_ROOT_PRIV | FWTS_FLAG_TEST_EBBR)
 
 #endif
-- 
2.17.1




More information about the fwts-devel mailing list