diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2019-11-07 14:26:42 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-11-07 14:26:42 +0100 |
commit | cd8a909bb3e7af6d905e4b554b10a3bf9718f5c5 (patch) | |
tree | 9cc4ccf3fcd9c54d6290f56deeeb32ecf4841641 /arch/arm/mach-stm32mp/include/mach/bsec.h | |
parent | 701a6ae36b6c818ff936952576d5e33ed710ddb5 (diff) | |
parent | 52cc061f50aa12adcef0a00c9a56eb7c60865a1c (diff) | |
download | barebox-cd8a909bb3e7af6d905e4b554b10a3bf9718f5c5.tar.gz barebox-cd8a909bb3e7af6d905e4b554b10a3bf9718f5c5.tar.xz |
Merge branch 'for-next/stm32'
Diffstat (limited to 'arch/arm/mach-stm32mp/include/mach/bsec.h')
-rw-r--r-- | arch/arm/mach-stm32mp/include/mach/bsec.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/arch/arm/mach-stm32mp/include/mach/bsec.h b/arch/arm/mach-stm32mp/include/mach/bsec.h new file mode 100644 index 0000000000..559faaa2ba --- /dev/null +++ b/arch/arm/mach-stm32mp/include/mach/bsec.h @@ -0,0 +1,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 |