50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
/*
|
|
* 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 */
|