Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
sip_svc_agilex_smc.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022-2023, Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_SIP_SVC_AGILEX_SMC_H_
8#define ZEPHYR_INCLUDE_SIP_SVC_AGILEX_SMC_H_
9
16/* @brief SMC return status
17 */
18
19#define SMC_STATUS_INVALID 0xFFFFFFFF
20#define SMC_STATUS_OKAY 0
21#define SMC_STATUS_BUSY 1
22#define SMC_STATUS_REJECT 2
23#define SMC_STATUS_NO_RESPONSE 3
24#define SMC_STATUS_ERROR 4
25
26/* @brief SMC Intel Header at a1
27 *
28 * bit
29 * 7: 0 Transaction ID
30 * 59: 8 Reserved
31 * 63:60 Version
32 */
33#define SMC_PLAT_PROTO_VER 0x0
34
35#define SMC_PLAT_PROTO_HEADER_TRANS_ID_OFFSET 0
36#define SMC_PLAT_PROTO_HEADER_TRANS_ID_MASK 0xFF
37
38#define SMC_PLAT_PROTO_HEADER_VER_OFFSET 60
39#define SMC_PLAT_PROTO_HEADER_VER_MASK 0xF
40
41#define SMC_PLAT_PROTO_HEADER \
42 ((SMC_PLAT_PROTO_VER & SMC_PLAT_PROTO_HEADER_VER_MASK) << SMC_PLAT_PROTO_HEADER_VER_OFFSET)
43
44#define SMC_PLAT_PROTO_HEADER_SET_TRANS_ID(header, trans_id) \
45 (header) &= \
46 ~(SMC_PLAT_PROTO_HEADER_TRANS_ID_MASK << SMC_PLAT_PROTO_HEADER_TRANS_ID_OFFSET); \
47 (header) |= (((trans_id)&SMC_PLAT_PROTO_HEADER_TRANS_ID_MASK) \
48 << SMC_PLAT_PROTO_HEADER_TRANS_ID_OFFSET);
49
50/* @brief SYNC SMC Function IDs
51 */
52
53#define SMC_FUNC_ID_GET_SVC_VERSION 0xC2000400
54#define SMC_FUNC_ID_REG_READ 0xC2000401
55#define SMC_FUNC_ID_REG_WRITE 0xC2000402
56#define SMC_FUNC_ID_REG_UPDATE 0xC2000403
57#define SMC_FUNC_ID_SET_HPS_BRIDGES 0xC2000404
58#define SMC_FUNC_ID_RSU_UPDATE_ADDR 0xC2000405
59
60/* @brief ASYNC SMC Function IDs
61 */
62
63#define SMC_FUNC_ID_MAILBOX_SEND_COMMAND 0xC2000420
64#define SMC_FUNC_ID_MAILBOX_POLL_RESPONSE 0xC2000421
65
66/* @brief SDM mailbox CANCEL command
67 */
68#define MAILBOX_CANCEL_COMMAND 0x03
69
70#endif /* ZEPHYR_INCLUDE_SIP_SVC_AGILEX_SMC_H_ */