test-runner: Connect to keymaster before running boot tests
Adds very basic validation of the keymaster bootloader interface.
TODO: Call in full boot path instead and test more typical boot flow.
Bug: 175896427
Change-Id: Id1b4a6d5a8c51c7ce051212fecf6098929888b0b
diff --git a/test-runner/rules.mk b/test-runner/rules.mk
index 7f9abdf..ccc6818 100644
--- a/test-runner/rules.mk
+++ b/test-runner/rules.mk
@@ -57,6 +57,8 @@
$(LOCAL_DIR)/virtio-console.c \
$(QL_TIPC)/ipc.c \
$(QL_TIPC)/ipc_dev.c \
+ $(QL_TIPC)/keymaster.c \
+ $(QL_TIPC)/keymaster_serializable.c \
$(QL_TIPC)/rpmb_proxy.c \
$(QL_TIPC)/trusty_dev_common.c \
$(QL_TIPC)/util.c \
diff --git a/test-runner/test-runner.c b/test-runner/test-runner.c
index 0625e96..e9f0631 100644
--- a/test-runner/test-runner.c
+++ b/test-runner/test-runner.c
@@ -26,6 +26,7 @@
#include <stddef.h>
#include <stdint.h>
#include <test-runner-arch.h>
+#include <trusty/keymaster.h>
#include <trusty/rpmb.h>
#include <trusty/trusty_dev.h>
#include <trusty/trusty_ipc.h>
@@ -133,6 +134,17 @@
log_msg("Could not find serial port rpmb0, skipping storage proxy.\n");
}
+ /*
+ * Check that keymaster can at least be connected to.
+ * TODO: Use in full boot path with typical calls.
+ */
+ ret = km_tipc_init(ipc_dev);
+ if (ret != 0) {
+ log_msg("km_tipc_init failed\n");
+ return;
+ }
+ km_tipc_shutdown(ipc_dev);
+
ret = arch_start_secondary_cpus();
if (ret) {
log_msg("Failed to start secondary CPUs\n");