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");