blob: 01a13d4c7c060e5bd1e7eec6b5a4cad115514192 [file] [log] [blame]
Christian Taedckec4c41a12023-07-25 09:26:58 +02001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2023 Weidmueller Interface GmbH & Co. KG <oss@weidmueller.com>
4 * Christian Taedcke <christian.taedcke@weidmueller.com>
5 *
6 * Declaration of AES operation functionality for ZynqMP.
7 */
8
9#ifndef ZYNQMP_AES_H
10#define ZYNQMP_AES_H
11
Tom Rinidec7ea02024-05-20 13:35:03 -060012#include <linux/types.h>
13
Christian Taedckec4c41a12023-07-25 09:26:58 +020014struct zynqmp_aes {
15 u64 srcaddr;
16 u64 ivaddr;
17 u64 keyaddr;
18 u64 dstaddr;
19 u64 len;
20 u64 op;
21 u64 keysrc;
22};
23
24/**
25 * zynqmp_aes_operation() - Performs an aes operation using the pmu firmware
26 *
27 * @aes: The aes operation buffer that must have been allocated using
28 * ALLOC_CACHE_ALIGN_BUFFER(struct zynqmp_aes, aes, 1)
29 *
30 * Return: 0 in case of success, in case of an error any other value
31 */
32int zynqmp_aes_operation(struct zynqmp_aes *aes);
33
34#endif /* ZYNQMP_AES_H */