blob: 390d62bc1d9de27f1774ba57c877816041b34132 [file] [log] [blame]
Soby Mathew1ae83bc2017-05-10 11:48:40 +01001/*
2 * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef _NVM_OTP_H
8#define _NVM_OTP_H
9
10#ifdef __cplusplus
11extern "C"
12{
13#endif
14
15#include "cc_crypto_boot_defs.h"
16#include "cc_pal_types.h"
17
18/*------------------------------------
19 DEFINES
20-------------------------------------*/
21
22
23
24/**
25 * @brief The NVM_GetSwVersion function is a NVM interface function -
26 * The function retrieves the SW version from the SRAM/NVM.
27 * In case of OTP, we support up to 16 anti-rollback counters (taken from the certificate)
28 *
29 * @param[in] hwBaseAddress - CryptoCell base address
30 *
31 * @param[in] counterId - relevant only for OTP (valid values: 1,2)
32 *
33 * @param[out] swVersion - the minimum SW version
34 *
35 * @return CCError_t - On success the value CC_OK is returned, and on failure -a value from NVM_error.h
36 */
37CCError_t NVM_GetSwVersion(unsigned long hwBaseAddress, CCSbSwVersionId_t counterId, uint32_t *swVersion);
38
39
40/**
41 * @brief The NVM_SetSwVersion function is a NVM interface function -
42 * The function writes the SW version into the SRAM/NVM.
43 * In case of OTP, we support up to 16 anti-rollback counters (taken from the certificate)
44 *
45 * @param[in] hwBaseAddress - CryptoCell base address
46 *
47 * @param[in] counterId - relevant only for OTP (valid values: 1,2)
48 *
49 * @param[in] swVersion - the minimum SW version
50 *
51 * @return CCError_t - On success the value CC_OK is returned, and on failure -a value from NVM_error.h
52 */
53CCError_t NVM_SetSwVersion(unsigned long hwBaseAddress, CCSbSwVersionId_t counterId, uint32_t swVersion);
54
55#ifdef __cplusplus
56}
57#endif
58
59#endif