mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

Rename driver file to BSEC2. Split header file in IP and feature parts. Add functions to access BSEC scratch register. Several corrections and improvements. Probe the driver earlier, especially to check debug features. Change-Id: I1981536398d598d67a19d2d7766dacc18de72ec1 Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com> Signed-off-by: Yann Gautier <yann.gautier@st.com>
60 lines
1.1 KiB
C
60 lines
1.1 KiB
C
/*
|
|
* 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;
|
|
}
|