Toggle navigation
Home
CycloneTCP
CycloneSSL
CycloneSSH
CycloneIPSEC
CycloneSTP
CycloneACME
CycloneCRYPTO
Download
Main Page
Data Structures
Files
File List
Globals
cyclone_crypto
hardware
f2838x
f2838x_crypto.c
Go to the documentation of this file.
1
/**
2
* @file f2838x_crypto.c
3
* @brief TMS320F2838xD hardware cryptographic accelerator
4
*
5
* @section License
6
*
7
* SPDX-License-Identifier: GPL-2.0-or-later
8
*
9
* Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
10
*
11
* This file is part of CycloneCRYPTO Open.
12
*
13
* This program is free software; you can redistribute it and/or
14
* modify it under the terms of the GNU General Public License
15
* as published by the Free Software Foundation; either version 2
16
* of the License, or (at your option) any later version.
17
*
18
* This program is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
22
*
23
* You should have received a copy of the GNU General Public License
24
* along with this program; if not, write to the Free Software Foundation,
25
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26
*
27
* @author Oryx Embedded SARL (www.oryx-embedded.com)
28
* @version 2.4.4
29
**/
30
31
//Switch to the appropriate trace level
32
#define TRACE_LEVEL CRYPTO_TRACE_LEVEL
33
34
//Dependencies
35
#include <stdint.h>
36
#include <stdbool.h>
37
#include "driverlib_cm/sysctl.h"
38
#include "
core/crypto.h
"
39
#include "
hardware/f2838x/f2838x_crypto.h
"
40
#include "
debug.h
"
41
42
//Global variables
43
OsMutex
f2838xCryptoMutex
;
44
45
46
/**
47
* @brief Initialize hardware cryptographic accelerator
48
* @return Error code
49
**/
50
51
error_t
f2838xCryptoInit
(
void
)
52
{
53
error_t
error;
54
55
//Initialize status code
56
error =
NO_ERROR
;
57
58
//Enable AES peripheral clock
59
SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_AESIP);
60
//Reset AES peripheral
61
SysCtl_resetPeripheral(SYSCTL_PERIPH_RES_AESIP);
62
63
//Create a mutex to prevent simultaneous access to the hardware
64
//cryptographic accelerator
65
if
(!
osCreateMutex
(&
f2838xCryptoMutex
))
66
{
67
//Failed to create mutex
68
error =
ERROR_OUT_OF_RESOURCES
;
69
}
70
71
//Return status code
72
return
error;
73
}
f2838x_crypto.h
TMS320F2838xD hardware cryptographic accelerator.
f2838xCryptoInit
error_t f2838xCryptoInit(void)
Initialize hardware cryptographic accelerator.
Definition:
f2838x_crypto.c:51
osCreateMutex
bool_t osCreateMutex(OsMutex *mutex)
Create a mutex object.
Definition:
os_port_chibios.c:370
ERROR_OUT_OF_RESOURCES
@ ERROR_OUT_OF_RESOURCES
Definition:
error.h:64
error_t
error_t
Error codes.
Definition:
error.h:43
crypto.h
General definitions for cryptographic algorithms.
OsMutex
Mutex object.
Definition:
os_port_cmsis_rtos.h:136
NO_ERROR
@ NO_ERROR
Success.
Definition:
error.h:44
debug.h
Debugging facilities.
f2838xCryptoMutex
OsMutex f2838xCryptoMutex
Definition:
f2838x_crypto.c:43