1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2020-2022, Intel Corporation. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef SOCFPGA_FCS_H 8*91f16700Schasinglulu #define SOCFPGA_FCS_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu /* FCS Definitions */ 11*91f16700Schasinglulu 12*91f16700Schasinglulu #define FCS_RANDOM_WORD_SIZE 8U 13*91f16700Schasinglulu #define FCS_PROV_DATA_WORD_SIZE 44U 14*91f16700Schasinglulu #define FCS_SHA384_WORD_SIZE 12U 15*91f16700Schasinglulu 16*91f16700Schasinglulu #define FCS_RANDOM_BYTE_SIZE (FCS_RANDOM_WORD_SIZE * 4U) 17*91f16700Schasinglulu #define FCS_RANDOM_EXT_MAX_WORD_SIZE 1020U 18*91f16700Schasinglulu #define FCS_PROV_DATA_BYTE_SIZE (FCS_PROV_DATA_WORD_SIZE * 4U) 19*91f16700Schasinglulu #define FCS_SHA384_BYTE_SIZE (FCS_SHA384_WORD_SIZE * 4U) 20*91f16700Schasinglulu 21*91f16700Schasinglulu #define FCS_RANDOM_EXT_OFFSET 3 22*91f16700Schasinglulu 23*91f16700Schasinglulu #define FCS_MODE_DECRYPT 0x0 24*91f16700Schasinglulu #define FCS_MODE_ENCRYPT 0x1 25*91f16700Schasinglulu #define FCS_ENCRYPTION_DATA_0 0x10100 26*91f16700Schasinglulu #define FCS_DECRYPTION_DATA_0 0x10102 27*91f16700Schasinglulu #define FCS_OWNER_ID_OFFSET 0xC 28*91f16700Schasinglulu #define FCS_CRYPTION_CRYPTO_HEADER 0x07000000 29*91f16700Schasinglulu #define FCS_CRYPTION_RESP_WORD_SIZE 4U 30*91f16700Schasinglulu #define FCS_CRYPTION_RESP_SIZE_OFFSET 3U 31*91f16700Schasinglulu 32*91f16700Schasinglulu #define PSGSIGMA_TEARDOWN_MAGIC 0xB852E2A4 33*91f16700Schasinglulu #define PSGSIGMA_SESSION_ID_ONE 0x1 34*91f16700Schasinglulu #define PSGSIGMA_UNKNOWN_SESSION 0xFFFFFFFF 35*91f16700Schasinglulu 36*91f16700Schasinglulu #define RESERVED_AS_ZERO 0x0 37*91f16700Schasinglulu /* FCS Single cert */ 38*91f16700Schasinglulu 39*91f16700Schasinglulu #define FCS_BIG_CNTR_SEL 0x1 40*91f16700Schasinglulu 41*91f16700Schasinglulu #define FCS_SVN_CNTR_0_SEL 0x2 42*91f16700Schasinglulu #define FCS_SVN_CNTR_1_SEL 0x3 43*91f16700Schasinglulu #define FCS_SVN_CNTR_2_SEL 0x4 44*91f16700Schasinglulu #define FCS_SVN_CNTR_3_SEL 0x5 45*91f16700Schasinglulu 46*91f16700Schasinglulu #define FCS_BIG_CNTR_VAL_MAX 495U 47*91f16700Schasinglulu #define FCS_SVN_CNTR_VAL_MAX 64U 48*91f16700Schasinglulu 49*91f16700Schasinglulu /* FCS Attestation Cert Request Parameter */ 50*91f16700Schasinglulu 51*91f16700Schasinglulu #define FCS_ATTEST_FIRMWARE_CERT 0x01 52*91f16700Schasinglulu #define FCS_ATTEST_DEV_ID_SELF_SIGN_CERT 0x02 53*91f16700Schasinglulu #define FCS_ATTEST_DEV_ID_ENROLL_CERT 0x04 54*91f16700Schasinglulu #define FCS_ATTEST_ENROLL_SELF_SIGN_CERT 0x08 55*91f16700Schasinglulu #define FCS_ATTEST_ALIAS_CERT 0x10 56*91f16700Schasinglulu #define FCS_ATTEST_CERT_MAX_REQ_PARAM 0xFF 57*91f16700Schasinglulu 58*91f16700Schasinglulu /* FCS Crypto Service */ 59*91f16700Schasinglulu 60*91f16700Schasinglulu #define FCS_CS_KEY_OBJ_MAX_WORD_SIZE 88U 61*91f16700Schasinglulu #define FCS_CS_KEY_INFO_MAX_WORD_SIZE 36U 62*91f16700Schasinglulu #define FCS_CS_KEY_RESP_STATUS_MASK 0xFF 63*91f16700Schasinglulu #define FCS_CS_KEY_RESP_STATUS_OFFSET 16U 64*91f16700Schasinglulu 65*91f16700Schasinglulu #define FCS_CS_FIELD_SIZE_MASK 0xFFFF 66*91f16700Schasinglulu #define FCS_CS_FIELD_FLAG_OFFSET 24 67*91f16700Schasinglulu #define FCS_CS_FIELD_FLAG_INIT BIT(0) 68*91f16700Schasinglulu #define FCS_CS_FIELD_FLAG_UPDATE BIT(1) 69*91f16700Schasinglulu #define FCS_CS_FIELD_FLAG_FINALIZE BIT(2) 70*91f16700Schasinglulu 71*91f16700Schasinglulu #define FCS_AES_MAX_DATA_SIZE 0x10000000 /* 256 MB */ 72*91f16700Schasinglulu #define FCS_AES_MIN_DATA_SIZE 0x20 /* 32 Byte */ 73*91f16700Schasinglulu #define FCS_AES_CMD_MAX_WORD_SIZE 15U 74*91f16700Schasinglulu 75*91f16700Schasinglulu #define FCS_MAX_DATA_SIZE 0x20000000 /* 512 MB */ 76*91f16700Schasinglulu #define FCS_MIN_DATA_SIZE 0x8 /* 8 Bytes */ 77*91f16700Schasinglulu 78*91f16700Schasinglulu #define FCS_GET_DIGEST_CMD_MAX_WORD_SIZE 7U 79*91f16700Schasinglulu #define FCS_GET_DIGEST_RESP_MAX_WORD_SIZE 19U 80*91f16700Schasinglulu #define FCS_MAC_VERIFY_CMD_MAX_WORD_SIZE 23U 81*91f16700Schasinglulu #define FCS_MAC_VERIFY_RESP_MAX_WORD_SIZE 4U 82*91f16700Schasinglulu #define FCS_SHA_HMAC_CRYPTO_PARAM_SIZE_OFFSET 8U 83*91f16700Schasinglulu 84*91f16700Schasinglulu #define FCS_ECDSA_GET_PUBKEY_MAX_WORD_SIZE 5U 85*91f16700Schasinglulu #define FCS_ECDSA_SHA2_DATA_SIGN_CMD_MAX_WORD_SIZE 7U 86*91f16700Schasinglulu #define FCS_ECDSA_SHA2_DATA_SIG_VERIFY_CMD_MAX_WORD_SIZE 43U 87*91f16700Schasinglulu #define FCS_ECDSA_HASH_SIGN_CMD_MAX_WORD_SIZE 17U 88*91f16700Schasinglulu #define FCS_ECDSA_HASH_SIG_VERIFY_CMD_MAX_WORD_SIZE 52U 89*91f16700Schasinglulu #define FCS_ECDH_REQUEST_CMD_MAX_WORD_SIZE 29U 90*91f16700Schasinglulu 91*91f16700Schasinglulu #define FCS_CRYPTO_ECB_BUFFER_SIZE 12U 92*91f16700Schasinglulu #define FCS_CRYPTO_CBC_CTR_BUFFER_SIZE 28U 93*91f16700Schasinglulu #define FCS_CRYPTO_BLOCK_MODE_MASK 0x07 94*91f16700Schasinglulu #define FCS_CRYPTO_ECB_MODE 0x00 95*91f16700Schasinglulu #define FCS_CRYPTO_CBC_MODE 0x01 96*91f16700Schasinglulu #define FCS_CRYPTO_CTR_MODE 0x02 97*91f16700Schasinglulu 98*91f16700Schasinglulu /* FCS Payload Structure */ 99*91f16700Schasinglulu typedef struct fcs_rng_payload_t { 100*91f16700Schasinglulu uint32_t session_id; 101*91f16700Schasinglulu uint32_t context_id; 102*91f16700Schasinglulu uint32_t crypto_header; 103*91f16700Schasinglulu uint32_t size; 104*91f16700Schasinglulu } fcs_rng_payload; 105*91f16700Schasinglulu 106*91f16700Schasinglulu typedef struct fcs_encrypt_payload_t { 107*91f16700Schasinglulu uint32_t first_word; 108*91f16700Schasinglulu uint32_t src_addr; 109*91f16700Schasinglulu uint32_t src_size; 110*91f16700Schasinglulu uint32_t dst_addr; 111*91f16700Schasinglulu uint32_t dst_size; 112*91f16700Schasinglulu } fcs_encrypt_payload; 113*91f16700Schasinglulu 114*91f16700Schasinglulu typedef struct fcs_decrypt_payload_t { 115*91f16700Schasinglulu uint32_t first_word; 116*91f16700Schasinglulu uint32_t owner_id[2]; 117*91f16700Schasinglulu uint32_t src_addr; 118*91f16700Schasinglulu uint32_t src_size; 119*91f16700Schasinglulu uint32_t dst_addr; 120*91f16700Schasinglulu uint32_t dst_size; 121*91f16700Schasinglulu } fcs_decrypt_payload; 122*91f16700Schasinglulu 123*91f16700Schasinglulu typedef struct fcs_encrypt_ext_payload_t { 124*91f16700Schasinglulu uint32_t session_id; 125*91f16700Schasinglulu uint32_t context_id; 126*91f16700Schasinglulu uint32_t crypto_header; 127*91f16700Schasinglulu uint32_t src_addr; 128*91f16700Schasinglulu uint32_t src_size; 129*91f16700Schasinglulu uint32_t dst_addr; 130*91f16700Schasinglulu uint32_t dst_size; 131*91f16700Schasinglulu } fcs_encrypt_ext_payload; 132*91f16700Schasinglulu 133*91f16700Schasinglulu typedef struct fcs_decrypt_ext_payload_t { 134*91f16700Schasinglulu uint32_t session_id; 135*91f16700Schasinglulu uint32_t context_id; 136*91f16700Schasinglulu uint32_t crypto_header; 137*91f16700Schasinglulu uint32_t owner_id[2]; 138*91f16700Schasinglulu uint32_t src_addr; 139*91f16700Schasinglulu uint32_t src_size; 140*91f16700Schasinglulu uint32_t dst_addr; 141*91f16700Schasinglulu uint32_t dst_size; 142*91f16700Schasinglulu } fcs_decrypt_ext_payload; 143*91f16700Schasinglulu 144*91f16700Schasinglulu typedef struct psgsigma_teardown_msg_t { 145*91f16700Schasinglulu uint32_t reserved_word; 146*91f16700Schasinglulu uint32_t magic_word; 147*91f16700Schasinglulu uint32_t session_id; 148*91f16700Schasinglulu } psgsigma_teardown_msg; 149*91f16700Schasinglulu 150*91f16700Schasinglulu typedef struct fcs_cntr_set_preauth_payload_t { 151*91f16700Schasinglulu uint32_t first_word; 152*91f16700Schasinglulu uint32_t counter_value; 153*91f16700Schasinglulu } fcs_cntr_set_preauth_payload; 154*91f16700Schasinglulu 155*91f16700Schasinglulu typedef struct fcs_cs_key_payload_t { 156*91f16700Schasinglulu uint32_t session_id; 157*91f16700Schasinglulu uint32_t reserved0; 158*91f16700Schasinglulu uint32_t reserved1; 159*91f16700Schasinglulu uint32_t key_id; 160*91f16700Schasinglulu } fcs_cs_key_payload; 161*91f16700Schasinglulu 162*91f16700Schasinglulu typedef struct fcs_crypto_service_data_t { 163*91f16700Schasinglulu uint32_t session_id; 164*91f16700Schasinglulu uint32_t context_id; 165*91f16700Schasinglulu uint32_t key_id; 166*91f16700Schasinglulu uint32_t crypto_param_size; 167*91f16700Schasinglulu uint64_t crypto_param; 168*91f16700Schasinglulu uint8_t is_updated; 169*91f16700Schasinglulu } fcs_crypto_service_data; 170*91f16700Schasinglulu 171*91f16700Schasinglulu typedef struct fcs_crypto_service_aes_data_t { 172*91f16700Schasinglulu uint32_t session_id; 173*91f16700Schasinglulu uint32_t context_id; 174*91f16700Schasinglulu uint32_t param_size; 175*91f16700Schasinglulu uint32_t key_id; 176*91f16700Schasinglulu uint32_t crypto_param[7]; 177*91f16700Schasinglulu uint8_t is_updated; 178*91f16700Schasinglulu } fcs_crypto_service_aes_data; 179*91f16700Schasinglulu 180*91f16700Schasinglulu /* Functions Definitions */ 181*91f16700Schasinglulu 182*91f16700Schasinglulu uint32_t intel_fcs_random_number_gen(uint64_t addr, uint64_t *ret_size, 183*91f16700Schasinglulu uint32_t *mbox_error); 184*91f16700Schasinglulu int intel_fcs_random_number_gen_ext(uint32_t session_id, uint32_t context_id, 185*91f16700Schasinglulu uint32_t size, uint32_t *send_id); 186*91f16700Schasinglulu uint32_t intel_fcs_send_cert(uint64_t addr, uint64_t size, 187*91f16700Schasinglulu uint32_t *send_id); 188*91f16700Schasinglulu uint32_t intel_fcs_get_provision_data(uint32_t *send_id); 189*91f16700Schasinglulu uint32_t intel_fcs_cntr_set_preauth(uint8_t counter_type, 190*91f16700Schasinglulu int32_t counter_value, 191*91f16700Schasinglulu uint32_t test_bit, 192*91f16700Schasinglulu uint32_t *mbox_error); 193*91f16700Schasinglulu uint32_t intel_fcs_encryption(uint32_t src_addr, uint32_t src_size, 194*91f16700Schasinglulu uint32_t dst_addr, uint32_t dst_size, 195*91f16700Schasinglulu uint32_t *send_id); 196*91f16700Schasinglulu 197*91f16700Schasinglulu uint32_t intel_fcs_decryption(uint32_t src_addr, uint32_t src_size, 198*91f16700Schasinglulu uint32_t dst_addr, uint32_t dst_size, 199*91f16700Schasinglulu uint32_t *send_id); 200*91f16700Schasinglulu 201*91f16700Schasinglulu int intel_fcs_encryption_ext(uint32_t session_id, uint32_t context_id, 202*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 203*91f16700Schasinglulu uint32_t dst_addr, uint32_t *dst_size, 204*91f16700Schasinglulu uint32_t *mbox_error); 205*91f16700Schasinglulu int intel_fcs_decryption_ext(uint32_t sesion_id, uint32_t context_id, 206*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 207*91f16700Schasinglulu uint32_t dst_addr, uint32_t *dst_size, 208*91f16700Schasinglulu uint32_t *mbox_error); 209*91f16700Schasinglulu 210*91f16700Schasinglulu int intel_fcs_sigma_teardown(uint32_t session_id, uint32_t *mbox_error); 211*91f16700Schasinglulu int intel_fcs_chip_id(uint32_t *id_low, uint32_t *id_high, uint32_t *mbox_error); 212*91f16700Schasinglulu int intel_fcs_attestation_subkey(uint64_t src_addr, uint32_t src_size, 213*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 214*91f16700Schasinglulu uint32_t *mbox_error); 215*91f16700Schasinglulu int intel_fcs_get_measurement(uint64_t src_addr, uint32_t src_size, 216*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 217*91f16700Schasinglulu uint32_t *mbox_error); 218*91f16700Schasinglulu uint32_t intel_fcs_get_rom_patch_sha384(uint64_t addr, uint64_t *ret_size, 219*91f16700Schasinglulu uint32_t *mbox_error); 220*91f16700Schasinglulu 221*91f16700Schasinglulu int intel_fcs_create_cert_on_reload(uint32_t cert_request, 222*91f16700Schasinglulu uint32_t *mbox_error); 223*91f16700Schasinglulu int intel_fcs_get_attestation_cert(uint32_t cert_request, uint64_t dst_addr, 224*91f16700Schasinglulu uint32_t *dst_size, uint32_t *mbox_error); 225*91f16700Schasinglulu 226*91f16700Schasinglulu int intel_fcs_open_crypto_service_session(uint32_t *session_id, 227*91f16700Schasinglulu uint32_t *mbox_error); 228*91f16700Schasinglulu int intel_fcs_close_crypto_service_session(uint32_t session_id, 229*91f16700Schasinglulu uint32_t *mbox_error); 230*91f16700Schasinglulu 231*91f16700Schasinglulu int intel_fcs_import_crypto_service_key(uint64_t src_addr, uint32_t src_size, 232*91f16700Schasinglulu uint32_t *mbox_error); 233*91f16700Schasinglulu int intel_fcs_export_crypto_service_key(uint32_t session_id, uint32_t key_id, 234*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 235*91f16700Schasinglulu uint32_t *mbox_error); 236*91f16700Schasinglulu int intel_fcs_remove_crypto_service_key(uint32_t session_id, uint32_t key_id, 237*91f16700Schasinglulu uint32_t *mbox_error); 238*91f16700Schasinglulu int intel_fcs_get_crypto_service_key_info(uint32_t session_id, uint32_t key_id, 239*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 240*91f16700Schasinglulu uint32_t *mbox_error); 241*91f16700Schasinglulu 242*91f16700Schasinglulu int intel_fcs_get_digest_init(uint32_t session_id, uint32_t context_id, 243*91f16700Schasinglulu uint32_t key_id, uint32_t param_size, 244*91f16700Schasinglulu uint64_t param_data, uint32_t *mbox_error); 245*91f16700Schasinglulu int intel_fcs_get_digest_update_finalize(uint32_t session_id, uint32_t context_id, 246*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 247*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 248*91f16700Schasinglulu uint8_t is_finalised, uint32_t *mbox_error); 249*91f16700Schasinglulu int intel_fcs_get_digest_smmu_update_finalize(uint32_t session_id, uint32_t context_id, 250*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 251*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 252*91f16700Schasinglulu uint8_t is_finalised, uint32_t *mbox_error, 253*91f16700Schasinglulu uint32_t *send_id); 254*91f16700Schasinglulu 255*91f16700Schasinglulu int intel_fcs_mac_verify_init(uint32_t session_id, uint32_t context_id, 256*91f16700Schasinglulu uint32_t key_id, uint32_t param_size, 257*91f16700Schasinglulu uint64_t param_data, uint32_t *mbox_error); 258*91f16700Schasinglulu int intel_fcs_mac_verify_update_finalize(uint32_t session_id, uint32_t context_id, 259*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 260*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 261*91f16700Schasinglulu uint32_t data_size, uint8_t is_finalised, 262*91f16700Schasinglulu uint32_t *mbox_error); 263*91f16700Schasinglulu int intel_fcs_mac_verify_smmu_update_finalize(uint32_t session_id, uint32_t context_id, 264*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 265*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 266*91f16700Schasinglulu uint32_t data_size, uint8_t is_finalised, 267*91f16700Schasinglulu uint32_t *mbox_error, uint32_t *send_id); 268*91f16700Schasinglulu 269*91f16700Schasinglulu int intel_fcs_ecdsa_hash_sign_init(uint32_t session_id, uint32_t context_id, 270*91f16700Schasinglulu uint32_t key_id, uint32_t param_size, 271*91f16700Schasinglulu uint64_t param_data, uint32_t *mbox_error); 272*91f16700Schasinglulu int intel_fcs_ecdsa_hash_sign_finalize(uint32_t session_id, uint32_t context_id, 273*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 274*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 275*91f16700Schasinglulu uint32_t *mbox_error); 276*91f16700Schasinglulu 277*91f16700Schasinglulu int intel_fcs_ecdsa_hash_sig_verify_init(uint32_t session_id, uint32_t context_id, 278*91f16700Schasinglulu uint32_t key_id, uint32_t param_size, 279*91f16700Schasinglulu uint64_t param_data, uint32_t *mbox_error); 280*91f16700Schasinglulu int intel_fcs_ecdsa_hash_sig_verify_finalize(uint32_t session_id, uint32_t context_id, 281*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 282*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 283*91f16700Schasinglulu uint32_t *mbox_error); 284*91f16700Schasinglulu 285*91f16700Schasinglulu int intel_fcs_ecdsa_sha2_data_sign_init(uint32_t session_id, 286*91f16700Schasinglulu uint32_t context_id, uint32_t key_id, 287*91f16700Schasinglulu uint32_t param_size, uint64_t param_data, 288*91f16700Schasinglulu uint32_t *mbox_error); 289*91f16700Schasinglulu int intel_fcs_ecdsa_sha2_data_sign_update_finalize(uint32_t session_id, 290*91f16700Schasinglulu uint32_t context_id, uint32_t src_addr, 291*91f16700Schasinglulu uint32_t src_size, uint64_t dst_addr, 292*91f16700Schasinglulu uint32_t *dst_size, uint8_t is_finalised, 293*91f16700Schasinglulu uint32_t *mbox_error); 294*91f16700Schasinglulu int intel_fcs_ecdsa_sha2_data_sign_smmu_update_finalize(uint32_t session_id, 295*91f16700Schasinglulu uint32_t context_id, uint32_t src_addr, 296*91f16700Schasinglulu uint32_t src_size, uint64_t dst_addr, 297*91f16700Schasinglulu uint32_t *dst_size, uint8_t is_finalised, 298*91f16700Schasinglulu uint32_t *mbox_error, uint32_t *send_id); 299*91f16700Schasinglulu 300*91f16700Schasinglulu int intel_fcs_ecdsa_sha2_data_sig_verify_init(uint32_t session_id, 301*91f16700Schasinglulu uint32_t context_id, uint32_t key_id, 302*91f16700Schasinglulu uint32_t param_size, uint64_t param_data, 303*91f16700Schasinglulu uint32_t *mbox_error); 304*91f16700Schasinglulu int intel_fcs_ecdsa_sha2_data_sig_verify_update_finalize(uint32_t session_id, 305*91f16700Schasinglulu uint32_t context_id, uint32_t src_addr, 306*91f16700Schasinglulu uint32_t src_size, uint64_t dst_addr, 307*91f16700Schasinglulu uint32_t *dst_size, uint32_t data_size, 308*91f16700Schasinglulu uint8_t is_finalised, uint32_t *mbox_error); 309*91f16700Schasinglulu int intel_fcs_ecdsa_sha2_data_sig_verify_smmu_update_finalize(uint32_t session_id, 310*91f16700Schasinglulu uint32_t context_id, uint32_t src_addr, 311*91f16700Schasinglulu uint32_t src_size, uint64_t dst_addr, 312*91f16700Schasinglulu uint32_t *dst_size, uint32_t data_size, 313*91f16700Schasinglulu uint8_t is_finalised, uint32_t *mbox_error, 314*91f16700Schasinglulu uint32_t *send_id); 315*91f16700Schasinglulu 316*91f16700Schasinglulu int intel_fcs_ecdsa_get_pubkey_init(uint32_t session_id, uint32_t context_id, 317*91f16700Schasinglulu uint32_t key_id, uint32_t param_size, 318*91f16700Schasinglulu uint64_t param_data, uint32_t *mbox_error); 319*91f16700Schasinglulu int intel_fcs_ecdsa_get_pubkey_finalize(uint32_t session_id, uint32_t context_id, 320*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 321*91f16700Schasinglulu uint32_t *mbox_error); 322*91f16700Schasinglulu 323*91f16700Schasinglulu int intel_fcs_ecdh_request_init(uint32_t session_id, uint32_t context_id, 324*91f16700Schasinglulu uint32_t key_id, uint32_t param_size, 325*91f16700Schasinglulu uint64_t param_data, uint32_t *mbox_error); 326*91f16700Schasinglulu int intel_fcs_ecdh_request_finalize(uint32_t session_id, uint32_t context_id, 327*91f16700Schasinglulu uint32_t src_addr, uint32_t src_size, 328*91f16700Schasinglulu uint64_t dst_addr, uint32_t *dst_size, 329*91f16700Schasinglulu uint32_t *mbox_error); 330*91f16700Schasinglulu 331*91f16700Schasinglulu int intel_fcs_aes_crypt_init(uint32_t session_id, uint32_t context_id, 332*91f16700Schasinglulu uint32_t key_id, uint64_t param_addr, 333*91f16700Schasinglulu uint32_t param_size, uint32_t *mbox_error); 334*91f16700Schasinglulu int intel_fcs_aes_crypt_update_finalize(uint32_t session_id, 335*91f16700Schasinglulu uint32_t context_id, uint64_t src_addr, 336*91f16700Schasinglulu uint32_t src_size, uint64_t dst_addr, 337*91f16700Schasinglulu uint32_t dst_size, uint8_t is_finalised, 338*91f16700Schasinglulu uint32_t *send_id); 339*91f16700Schasinglulu 340*91f16700Schasinglulu #endif /* SOCFPGA_FCS_H */ 341