You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.7 KiB
59 lines
1.7 KiB
/*
|
|
* Copyright 2017, Rockchip Electronics Co., Ltd
|
|
* hisping lin, <hisping.lin@rock-chips.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
#ifndef _OPTEE_CLIENT_RPC_H_
|
|
#define _OPTEE_CLIENT_RPC_H_
|
|
|
|
#include <optee_include/tee_base_types.h>
|
|
#include <optee_include/OpteeClientApiLib.h>
|
|
|
|
typedef struct{
|
|
unsigned int Arg0;
|
|
unsigned int Arg1;
|
|
unsigned int Arg2;
|
|
unsigned int Arg3;
|
|
unsigned int Arg4;
|
|
unsigned int Arg5;
|
|
unsigned int Arg6;
|
|
unsigned int Arg7;
|
|
} ARM_SMC_ARGS;
|
|
|
|
#define RPMB_PACKET_DATA_TO_UINT16(d) ((d[0] << 8) + (d[1]))
|
|
#define RPMB_PACKET_DATA_TO_UINT16(d) ((d[0] << 8) + (d[1]))
|
|
#define RPMB_STUFF_DATA_SIZE 196
|
|
#define RPMB_KEY_MAC_SIZE 32
|
|
#define RPMB_DATA_SIZE 256
|
|
#define RPMB_NONCE_SIZE 16
|
|
#define RPMB_DATA_FRAME_SIZE 512
|
|
|
|
typedef struct rpmb_data_frame {
|
|
unsigned char stuff_bytes[RPMB_STUFF_DATA_SIZE];
|
|
unsigned char key_mac[RPMB_KEY_MAC_SIZE];
|
|
unsigned char data[RPMB_DATA_SIZE];
|
|
unsigned char nonce[RPMB_NONCE_SIZE];
|
|
unsigned char write_counter[4];
|
|
unsigned char address[2];
|
|
unsigned char block_count[2];
|
|
unsigned char op_result[2];
|
|
unsigned char msg_type[2];
|
|
} EFI_RK_RPMB_DATA_PACKET;
|
|
|
|
typedef struct s_rpmb_back {
|
|
unsigned char stuff[RPMB_STUFF_DATA_SIZE];
|
|
unsigned char mac[RPMB_KEY_MAC_SIZE];
|
|
unsigned char data[RPMB_DATA_SIZE];
|
|
unsigned char nonce[RPMB_NONCE_SIZE];
|
|
unsigned int write_counter;
|
|
unsigned short address;
|
|
unsigned short block_count;
|
|
unsigned short result;
|
|
unsigned short request;
|
|
} EFI_RK_RPMB_DATA_PACKET_BACK;
|
|
|
|
TEEC_Result OpteeRpcCallback(ARM_SMC_ARGS *ArmSmcArgs);
|
|
|
|
#endif /*_OPTEE_CLIENT_RPC_H_*/
|