summaryrefslogtreecommitdiff
path: root/drivers/staging/greybus/greybus_protocols.h
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2016-06-30 10:54:00 -0500
committerAlex Elder <elder@linaro.org>2016-07-06 17:51:32 -0500
commite3eda54d0b5fef23957cc4f586f4b44fd223c881 (patch)
treeb119ef76cfaa147d7d71d8c6ca7284503ae3f04d /drivers/staging/greybus/greybus_protocols.h
parent80b3982b8d1ca463963b9d2d406098c18add2baf (diff)
greybus: Add Component Authentication Protocol support
This patch adds Component Authentication Protocol support in greybus. The purpose of the CAP protocol is to authenticate the Module hardware, and it can only be used when it is present as part of the firmware-management bundle, on a separate CPort. Compile tested only. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by: Jun Li <li_jun@projectara.com> Tested-by: Jun Li <li_jun@projectara.com> Signed-off-by: Alex Elder <elder@linaro.org>
Diffstat (limited to 'drivers/staging/greybus/greybus_protocols.h')
-rw-r--r--drivers/staging/greybus/greybus_protocols.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/staging/greybus/greybus_protocols.h b/drivers/staging/greybus/greybus_protocols.h
index 327d01f3679a..0043b912f720 100644
--- a/drivers/staging/greybus/greybus_protocols.h
+++ b/drivers/staging/greybus/greybus_protocols.h
@@ -345,6 +345,43 @@ struct gb_fw_mgmt_backend_fw_updated_request {
/* firmware management backend firmware updated response has no payload */
+/* Component Authentication Protocol (CAP) */
+
+/* Request Types */
+#define GB_CAP_TYPE_GET_ENDPOINT_UID 0x01
+#define GB_CAP_TYPE_GET_IMS_CERTIFICATE 0x02
+#define GB_CAP_TYPE_AUTHENTICATE 0x03
+
+/* CAP get endpoint uid request has no payload */
+struct gb_cap_get_endpoint_uid_response {
+ __u8 uid[8];
+} __packed;
+
+/* CAP get endpoint ims certificate request/response */
+struct gb_cap_get_ims_certificate_request {
+ __le32 certificate_class;
+ __le32 certificate_id;
+} __packed;
+
+struct gb_cap_get_ims_certificate_response {
+ __u8 result_code;
+ __u8 certificate[0];
+} __packed;
+
+/* CAP authenticate request/response */
+struct gb_cap_authenticate_request {
+ __le32 auth_type;
+ __u8 uid[8];
+ __u8 challenge[32];
+} __packed;
+
+struct gb_cap_authenticate_response {
+ __u8 result_code;
+ __u8 response[64];
+ __u8 signature[0];
+} __packed;
+
+
/* Bootrom Protocol */
/* Version of the Greybus bootrom protocol we support */