blob: 084d55a2b01f5ae5f64bf54cd5f60052ff2432af [file] [log] [blame]
Michal Simek04b7e622015-01-15 10:01:51 +01001/*
2 * (C) Copyright 2014 - 2015 Xilinx, Inc.
3 * Michal Simek <michal.simek@xilinx.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8#ifndef _ASM_ARCH_SYS_PROTO_H
9#define _ASM_ARCH_SYS_PROTO_H
10
Siva Durga Prasad Paladugu0e39bd72017-02-02 01:10:46 +053011#define PAYLOAD_ARG_CNT 5
12
Siva Durga Prasad Paladugu9f0a8e92017-07-25 11:51:36 +053013#define ZYNQMP_CSU_SILICON_VER_MASK 0xF
14
15enum {
16 IDCODE,
17 VERSION,
Michal Simek50d8cef2017-08-22 14:58:53 +020018 IDCODE2,
Siva Durga Prasad Paladugu9f0a8e92017-07-25 11:51:36 +053019};
20
21enum {
22 ZYNQMP_SILICON_V1,
23 ZYNQMP_SILICON_V2,
24 ZYNQMP_SILICON_V3,
25 ZYNQMP_SILICON_V4,
26};
27
Siva Durga Prasad Paladugu5e2a9072017-07-13 19:01:09 +053028enum {
29 TCM_LOCK,
30 TCM_SPLIT,
31};
32
Michal Simek44dd5202017-07-31 10:37:09 +020033int zynq_board_read_rom_ethaddr(unsigned char *ethaddr);
Michal Simek04b7e622015-01-15 10:01:51 +010034unsigned int zynqmp_get_silicon_version(void);
35
Michal Simek456e4542017-01-09 10:05:16 +010036void handoff_setup(void);
37
Michal Simek8b353302017-02-07 14:32:26 +010038void zynqmp_pmufw_version(void);
Siva Durga Prasad Paladugu0e39bd72017-02-02 01:10:46 +053039int zynqmp_mmio_write(const u32 address, const u32 mask, const u32 value);
40int zynqmp_mmio_read(const u32 address, u32 *value);
41int invoke_smc(u32 pm_api_id, u32 arg0, u32 arg1, u32 arg2, u32 arg3,
42 u32 *ret_payload);
43
Siva Durga Prasad Paladugu5e2a9072017-07-13 19:01:09 +053044void initialize_tcm(bool mode);
45
Siva Durga Prasad Paladugucd35d522017-07-25 11:51:38 +053046int chip_id(unsigned char id);
47
Michal Simek04b7e622015-01-15 10:01:51 +010048#endif /* _ASM_ARCH_SYS_PROTO_H */