GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2022, STMicroelectronics - All Rights Reserved
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <platform_def.h>
|
||||
|
||||
#include <common/debug.h>
|
||||
#include <drivers/st/bsec.h>
|
||||
#include <drivers/st/bsec2_reg.h>
|
||||
|
||||
#include <stm32mp1_smc.h>
|
||||
|
||||
#include "bsec_svc.h"
|
||||
|
||||
uint32_t bsec_main(uint32_t x1, uint32_t x2, uint32_t x3,
|
||||
uint32_t *ret_otp_value)
|
||||
{
|
||||
uint32_t result;
|
||||
uint32_t tmp_data = 0U;
|
||||
|
||||
switch (x1) {
|
||||
case STM32_SMC_READ_SHADOW:
|
||||
result = bsec_read_otp(ret_otp_value, x2);
|
||||
break;
|
||||
case STM32_SMC_PROG_OTP:
|
||||
*ret_otp_value = 0U;
|
||||
result = bsec_program_otp(x3, x2);
|
||||
break;
|
||||
case STM32_SMC_WRITE_SHADOW:
|
||||
*ret_otp_value = 0U;
|
||||
result = bsec_write_otp(x3, x2);
|
||||
break;
|
||||
case STM32_SMC_READ_OTP:
|
||||
*ret_otp_value = 0U;
|
||||
result = bsec_read_otp(&tmp_data, x2);
|
||||
if (result != BSEC_OK) {
|
||||
break;
|
||||
}
|
||||
|
||||
result = bsec_shadow_register(x2);
|
||||
if (result != BSEC_OK) {
|
||||
break;
|
||||
}
|
||||
|
||||
result = bsec_read_otp(ret_otp_value, x2);
|
||||
if (result != BSEC_OK) {
|
||||
break;
|
||||
}
|
||||
|
||||
result = bsec_write_otp(tmp_data, x2);
|
||||
break;
|
||||
|
||||
default:
|
||||
return STM32_SMC_INVALID_PARAMS;
|
||||
}
|
||||
|
||||
return (result == BSEC_OK) ? STM32_SMC_OK : STM32_SMC_FAILED;
|
||||
}
|
||||
Reference in New Issue
Block a user