1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#ifndef __MACH_STM32_BSEC_H__
#define __MACH_STM32_BSEC_H__
#include <mach/smc.h>
/* Return status */
enum bsec_smc {
BSEC_SMC_OK = 0,
BSEC_SMC_ERROR = -1,
BSEC_SMC_DISTURBED = -2,
BSEC_SMC_INVALID_PARAM = -3,
BSEC_SMC_PROG_FAIL = -4,
BSEC_SMC_LOCK_FAIL = -5,
BSEC_SMC_WRITE_FAIL = -6,
BSEC_SMC_SHADOW_FAIL = -7,
BSEC_SMC_TIMEOUT = -8,
};
/* Service for BSEC */
enum bsec_field {
BSEC_SMC_READ_SHADOW = 1,
BSEC_SMC_PROG_OTP = 2,
BSEC_SMC_WRITE_SHADOW = 3,
BSEC_SMC_READ_OTP = 4,
BSEC_SMC_READ_ALL = 5,
BSEC_SMC_WRITE_ALL = 6,
};
static inline enum bsec_smc bsec_read_field(enum bsec_field field, unsigned *val)
{
return stm32mp_smc(STM32_SMC_BSEC, BSEC_SMC_READ_SHADOW,
field, 0, val);
}
static inline enum bsec_smc bsec_write_field(enum bsec_field field, unsigned val)
{
return stm32mp_smc(STM32_SMC_BSEC, BSEC_SMC_WRITE_SHADOW,
field, val, NULL);
}
#endif
|