| /* |
| * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #ifndef CDN_DP_H |
| #define CDN_DP_H |
| |
| #include <plat_private.h> |
| |
| enum { |
| CDN_DP_HDCP_1X_KSV_LEN = 5, |
| CDN_DP_HDCP_KSV_LEN = 8, |
| CDN_DP_HDCP_RESERVED_LEN = 10, |
| CDN_DP_HDCP_UID_LEN = 16, |
| CDN_DP_HDCP_SHA_LEN = 20, |
| CDN_DP_HDCP_DPK_LEN = 280, |
| CDN_DP_HDCP_1X_KEYS_LEN = 285, |
| CDN_DP_HDCP_KEY_LEN = 326, |
| }; |
| |
| struct cdn_dp_hdcp_key_1x { |
| uint8_t ksv[CDN_DP_HDCP_KSV_LEN]; |
| uint8_t device_key[CDN_DP_HDCP_DPK_LEN]; |
| uint8_t sha1[CDN_DP_HDCP_SHA_LEN]; |
| uint8_t uid[CDN_DP_HDCP_UID_LEN]; |
| uint16_t seed; |
| uint8_t reserved[CDN_DP_HDCP_RESERVED_LEN]; |
| }; |
| |
| #define HDCP_KEY_DATA_START_TRANSFER 0 |
| #define HDCP_KEY_DATA_START_DECRYPT 1 |
| #define HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE (6 * 64) / 8 |
| |
| /* Checks the cdn_dp_hdcp_key_1x must be aligned on 6 x 64-bit word boundary */ |
| CASSERT(sizeof(struct cdn_dp_hdcp_key_1x) % HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE, \ |
| assert_hdcp_key_1x_store_data_align_size_mismatch); |
| |
| uint64_t dp_hdcp_ctrl(uint64_t type); |
| |
| uint64_t dp_hdcp_store_key(uint64_t x1, |
| uint64_t x2, |
| uint64_t x3, |
| uint64_t x4, |
| uint64_t x5, |
| uint64_t x6); |
| |
| #endif /* CDN_DP_H */ |