mbed-os/targets/TARGET_Samsung/security_subsystem/drivers/mb_cmd_system.h

121 lines
4.4 KiB
C

/****************************************************************************
*
* Copyright 2020 Samsung Electronics All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific
* language governing permissions and limitations under the License.
*
****************************************************************************/
#ifndef MB_CMD_SYSTEM_H
#define MB_CMD_SYSTEM_H
/*************** Include Files ********************************************/
#include "sss_common.h"
/*************** Assertions ***********************************************/
/*************** Definitions / Macros *************************************/
#define CLEAR_TYPE_MAILBOX (0x00)
#define CLEAR_TYPE_ALL (0xff)
#define ERROR_INVALID_LEN_RSP_BLOCK (FROM_DRV | (INVALID_LEN | ERR_OUTPUT))
//! Mailbox Command
#define FUNC_SYSTEM_GET_INFO (0x00000101)
#define FUNC_SYSTEM_CLEAR (0x00000201)
#define FUNC_SYSTEM_SELF_LOAD (0x00000501)
/*************** New Data Types (Basic Data Types) ***********************/
/*************** New Data Types *******************************************/
/*************** Constants ************************************************/
/*************** Variable declarations ************************************/
/*************** Functions ***********************************************/
/*!
* @brief mailbox command for clear function
* @param[in] type definition of clear level {}
* @return
Error Code Description
SSSR_SUCCESS Function operates normally
Others(!=0) fail - error from sub-function
* @author Jinsu Hyun
* @version V0.5
Version Date Person Description
V0.50 2016.08.13 jinsu Initial Version
V0.51 2018.01.04 kitak Modify for S111 SRAM code
*/
unsigned int mb_system_clear(unsigned int type);
/*!
* @brief mailbox command for get info function
* @param[in] version ??? ???
* @return
Error Code Description
SSSR_SUCCESS Function operates normally
Others(!=0) fail - error from sub-function
* @author Jinsu Hyun
* @version V0.5
Version Date Person Description
V0.50 2016.08.13 jinsu Initial Version
V0.51 2018.01.04 kitak Modify for S111 SRAM code
*/
unsigned int mb_system_get_info(unsigned int *version);
unsigned int mb_system_get_info_sram(unsigned int *version);
/**
* @brief mailbox command for self-loading
* @param[in] u32SrcAddr Address of FW to be loaded
* @return
Error Code Description
SSSR_SUCCESS Function operates normally
ERROR_IP_BUSY
ERROR_INVALID_OID_SIZE
* @author kiseok.bae (kiseok.bae@samsung.com)
* @version V0.00
Version Date Person Description
V0.00 2017.07.15 kiseok Initial Version
V0.51 2018.01.04 kitak Modify for S111 SRAM code
*/
unsigned int mb_system_fw_loading(unsigned int u32REMAP_ADDR, unsigned int u32SFR_REMAP_ADDR);
unsigned int sss_mb_command(unsigned int u32Command);
unsigned int sss_mb_check_error(void);
unsigned int sss_mb_check_n_get_response(stOCTET_STRING *pstOutput, unsigned int u32ExpecedLen);
unsigned int sss_mb_get_response(stOCTET_STRING *pstOutput);
unsigned int sss_mb_get_response_BN(stBIG_NUM *pstOutput);
unsigned int sss_mb_check_n_get_response_BN(stOCTET_STRING *pstOutput, unsigned int u32ExpecedLen);
#endif /* MB_CMD_SYSTEM_H */