xref: /arm-trusted-firmware/plat/rockchip/rk3399/drivers/dp/cdn_dp.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef CDN_DP_H
8*91f16700Schasinglulu #define CDN_DP_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <plat_private.h>
11*91f16700Schasinglulu 
12*91f16700Schasinglulu enum {
13*91f16700Schasinglulu 	CDN_DP_HDCP_1X_KSV_LEN = 5,
14*91f16700Schasinglulu 	CDN_DP_HDCP_KSV_LEN = 8,
15*91f16700Schasinglulu 	CDN_DP_HDCP_RESERVED_LEN = 10,
16*91f16700Schasinglulu 	CDN_DP_HDCP_UID_LEN = 16,
17*91f16700Schasinglulu 	CDN_DP_HDCP_SHA_LEN = 20,
18*91f16700Schasinglulu 	CDN_DP_HDCP_DPK_LEN = 280,
19*91f16700Schasinglulu 	CDN_DP_HDCP_1X_KEYS_LEN	= 285,
20*91f16700Schasinglulu 	CDN_DP_HDCP_KEY_LEN = 326,
21*91f16700Schasinglulu };
22*91f16700Schasinglulu 
23*91f16700Schasinglulu struct cdn_dp_hdcp_key_1x {
24*91f16700Schasinglulu 	uint8_t ksv[CDN_DP_HDCP_KSV_LEN];
25*91f16700Schasinglulu 	uint8_t device_key[CDN_DP_HDCP_DPK_LEN];
26*91f16700Schasinglulu 	uint8_t sha1[CDN_DP_HDCP_SHA_LEN];
27*91f16700Schasinglulu 	uint8_t uid[CDN_DP_HDCP_UID_LEN];
28*91f16700Schasinglulu 	uint16_t seed;
29*91f16700Schasinglulu 	uint8_t reserved[CDN_DP_HDCP_RESERVED_LEN];
30*91f16700Schasinglulu };
31*91f16700Schasinglulu 
32*91f16700Schasinglulu #define HDCP_KEY_DATA_START_TRANSFER	0
33*91f16700Schasinglulu #define HDCP_KEY_DATA_START_DECRYPT	1
34*91f16700Schasinglulu #define HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE	(6 * 64) / 8
35*91f16700Schasinglulu 
36*91f16700Schasinglulu /* Checks the cdn_dp_hdcp_key_1x must be aligned on 6 x 64-bit word boundary */
37*91f16700Schasinglulu CASSERT(sizeof(struct cdn_dp_hdcp_key_1x) % HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE,
38*91f16700Schasinglulu 	assert_hdcp_key_1x_store_data_align_size_mismatch);
39*91f16700Schasinglulu 
40*91f16700Schasinglulu uint64_t dp_hdcp_ctrl(uint64_t type);
41*91f16700Schasinglulu 
42*91f16700Schasinglulu uint64_t dp_hdcp_store_key(uint64_t x1,
43*91f16700Schasinglulu 			   uint64_t x2,
44*91f16700Schasinglulu 			   uint64_t x3,
45*91f16700Schasinglulu 			   uint64_t x4,
46*91f16700Schasinglulu 			   uint64_t x5,
47*91f16700Schasinglulu 			   uint64_t x6);
48*91f16700Schasinglulu 
49*91f16700Schasinglulu #endif /* CDN_DP_H */
50