110301bf7SZiyuan Xu /* 210301bf7SZiyuan Xu * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. 310301bf7SZiyuan Xu * 410301bf7SZiyuan Xu * SPDX-License-Identifier: BSD-3-Clause 510301bf7SZiyuan Xu */ 610301bf7SZiyuan Xu 7c3cf06f1SAntonio Nino Diaz #ifndef CDN_DP_H 8c3cf06f1SAntonio Nino Diaz #define CDN_DP_H 9c3cf06f1SAntonio Nino Diaz 1010301bf7SZiyuan Xu #include <plat_private.h> 1110301bf7SZiyuan Xu 1210301bf7SZiyuan Xu enum { 1310301bf7SZiyuan Xu CDN_DP_HDCP_1X_KSV_LEN = 5, 1410301bf7SZiyuan Xu CDN_DP_HDCP_KSV_LEN = 8, 1510301bf7SZiyuan Xu CDN_DP_HDCP_RESERVED_LEN = 10, 1610301bf7SZiyuan Xu CDN_DP_HDCP_UID_LEN = 16, 1710301bf7SZiyuan Xu CDN_DP_HDCP_SHA_LEN = 20, 1810301bf7SZiyuan Xu CDN_DP_HDCP_DPK_LEN = 280, 1910301bf7SZiyuan Xu CDN_DP_HDCP_1X_KEYS_LEN = 285, 2010301bf7SZiyuan Xu CDN_DP_HDCP_KEY_LEN = 326, 2110301bf7SZiyuan Xu }; 2210301bf7SZiyuan Xu 2310301bf7SZiyuan Xu struct cdn_dp_hdcp_key_1x { 2410301bf7SZiyuan Xu uint8_t ksv[CDN_DP_HDCP_KSV_LEN]; 2510301bf7SZiyuan Xu uint8_t device_key[CDN_DP_HDCP_DPK_LEN]; 2610301bf7SZiyuan Xu uint8_t sha1[CDN_DP_HDCP_SHA_LEN]; 2710301bf7SZiyuan Xu uint8_t uid[CDN_DP_HDCP_UID_LEN]; 2810301bf7SZiyuan Xu uint16_t seed; 2910301bf7SZiyuan Xu uint8_t reserved[CDN_DP_HDCP_RESERVED_LEN]; 3010301bf7SZiyuan Xu }; 3110301bf7SZiyuan Xu 3210301bf7SZiyuan Xu #define HDCP_KEY_DATA_START_TRANSFER 0 3310301bf7SZiyuan Xu #define HDCP_KEY_DATA_START_DECRYPT 1 3410301bf7SZiyuan Xu #define HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE (6 * 64) / 8 3510301bf7SZiyuan Xu 3610301bf7SZiyuan Xu /* Checks the cdn_dp_hdcp_key_1x must be aligned on 6 x 64-bit word boundary */ 37*9a90d720SElyes Haouas CASSERT(sizeof(struct cdn_dp_hdcp_key_1x) % HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE, 3810301bf7SZiyuan Xu assert_hdcp_key_1x_store_data_align_size_mismatch); 3910301bf7SZiyuan Xu 4010301bf7SZiyuan Xu uint64_t dp_hdcp_ctrl(uint64_t type); 4110301bf7SZiyuan Xu 4210301bf7SZiyuan Xu uint64_t dp_hdcp_store_key(uint64_t x1, 4310301bf7SZiyuan Xu uint64_t x2, 4410301bf7SZiyuan Xu uint64_t x3, 4510301bf7SZiyuan Xu uint64_t x4, 4610301bf7SZiyuan Xu uint64_t x5, 4710301bf7SZiyuan Xu uint64_t x6); 48c3cf06f1SAntonio Nino Diaz 49c3cf06f1SAntonio Nino Diaz #endif /* CDN_DP_H */ 50