1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2018 Marek Behún <kabel@kernel.org>
4  * Copyright (C) 2021 Pali Rohár <pali@kernel.org>
5  */
6 
7 #ifndef _MVEBU_MBOX_H
8 #define _MVEBU_MBOX_H
9 
10 enum mbox_cmd {
11 	MBOX_CMD_GET_RANDOM	= 1,
12 	MBOX_CMD_BOARD_INFO,
13 	MBOX_CMD_ECDSA_PUB_KEY,
14 	MBOX_CMD_HASH,
15 	MBOX_CMD_SIGN,
16 	MBOX_CMD_VERIFY,
17 
18 	MBOX_CMD_OTP_READ,
19 	MBOX_CMD_OTP_WRITE,
20 
21 	MBOX_CMD_REBOOT,
22 
23 	/* OTP read commands supported by Marvell fuse.bin firmware */
24 	MBOX_CMD_OTP_READ_1B	= 257,
25 	MBOX_CMD_OTP_READ_8B,
26 	MBOX_CMD_OTP_READ_32B,
27 	MBOX_CMD_OTP_READ_64B,
28 	MBOX_CMD_OTP_READ_256B,
29 
30 	/* OTP write commands supported by Marvell fuse.bin firmware */
31 	MBOX_CMD_OTP_WRITE_1B	= 513,
32 	MBOX_CMD_OTP_WRITE_8B,
33 	MBOX_CMD_OTP_WRITE_32B,
34 	MBOX_CMD_OTP_WRITE_64B,
35 	MBOX_CMD_OTP_WRITE_256B,
36 };
37 
38 int mbox_do_cmd(enum mbox_cmd cmd, u32 *in, int nin, u32 *out, int nout);
39 
40 #endif
41