SPDX: Convert all of our single license tags to Linux Kernel style
[oweals/u-boot.git] / arch / arm / include / asm / arch-zynqmp / sys_proto.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2014 - 2015 Xilinx, Inc.
4  * Michal Simek <michal.simek@xilinx.com>
5  */
6
7 #ifndef _ASM_ARCH_SYS_PROTO_H
8 #define _ASM_ARCH_SYS_PROTO_H
9
10 #define PAYLOAD_ARG_CNT         5
11
12 #define ZYNQMP_CSU_SILICON_VER_MASK     0xF
13 #define ZYNQMP_SIP_SVC_PM_SECURE_IMG_LOAD       0xC200002D
14 #define KEY_PTR_LEN     32
15
16 #define ZYNQMP_FPGA_BIT_NS              5
17
18 enum {
19         IDCODE,
20         VERSION,
21         IDCODE2,
22 };
23
24 enum {
25         ZYNQMP_SILICON_V1,
26         ZYNQMP_SILICON_V2,
27         ZYNQMP_SILICON_V3,
28         ZYNQMP_SILICON_V4,
29 };
30
31 enum {
32         TCM_LOCK,
33         TCM_SPLIT,
34 };
35
36 int zynq_board_read_rom_ethaddr(unsigned char *ethaddr);
37 unsigned int zynqmp_get_silicon_version(void);
38
39 void handoff_setup(void);
40
41 void zynqmp_pmufw_version(void);
42 int zynqmp_mmio_write(const u32 address, const u32 mask, const u32 value);
43 int zynqmp_mmio_read(const u32 address, u32 *value);
44 int invoke_smc(u32 pm_api_id, u32 arg0, u32 arg1, u32 arg2, u32 arg3,
45                u32 *ret_payload);
46
47 void initialize_tcm(bool mode);
48
49 int chip_id(unsigned char id);
50
51 #endif /* _ASM_ARCH_SYS_PROTO_H */