xref: /rk3399_rockchip-uboot/include/cavium/thunderx_svc.h (revision 900f88f3b08b71becd5cecba0687e8eb24fc342b)
1*900f88f3SSergey Temerkhanov /**
2*900f88f3SSergey Temerkhanov  * (C) Copyright 2014, Cavium Inc.
3*900f88f3SSergey Temerkhanov  *
4*900f88f3SSergey Temerkhanov  * SPDX-License-Identifier:	GPL-2.0+
5*900f88f3SSergey Temerkhanov **/
6*900f88f3SSergey Temerkhanov 
7*900f88f3SSergey Temerkhanov #ifndef __THUNDERX_SVC_H__
8*900f88f3SSergey Temerkhanov #define __THUNDERX_SVC_H__
9*900f88f3SSergey Temerkhanov 
10*900f88f3SSergey Temerkhanov /* SMC function IDs for general purpose queries */
11*900f88f3SSergey Temerkhanov 
12*900f88f3SSergey Temerkhanov #define THUNDERX_SVC_CALL_COUNT		0x4300ff00
13*900f88f3SSergey Temerkhanov #define THUNDERX_SVC_UID		0x4300ff01
14*900f88f3SSergey Temerkhanov 
15*900f88f3SSergey Temerkhanov #define THUNDERX_SVC_VERSION		0x4300ff03
16*900f88f3SSergey Temerkhanov 
17*900f88f3SSergey Temerkhanov #define ARM_STD_SVC_VERSION		0x8400ff03
18*900f88f3SSergey Temerkhanov 
19*900f88f3SSergey Temerkhanov /* ThunderX Service Calls version numbers */
20*900f88f3SSergey Temerkhanov #define THUNDERX_VERSION_MAJOR	0x0
21*900f88f3SSergey Temerkhanov #define THUNDERX_VERSION_MINOR	0x1
22*900f88f3SSergey Temerkhanov 
23*900f88f3SSergey Temerkhanov #define THUNDERX_MMC_READ		0x43000101
24*900f88f3SSergey Temerkhanov /* x1 - block address
25*900f88f3SSergey Temerkhanov  * x2 - size
26*900f88f3SSergey Temerkhanov  * x3 - buffer address
27*900f88f3SSergey Temerkhanov  */
28*900f88f3SSergey Temerkhanov #define THUNDERX_MMC_WRITE		0x43000102
29*900f88f3SSergey Temerkhanov /* x1 - block address
30*900f88f3SSergey Temerkhanov  * x2 - size
31*900f88f3SSergey Temerkhanov  * x3 - buffer address
32*900f88f3SSergey Temerkhanov  */
33*900f88f3SSergey Temerkhanov 
34*900f88f3SSergey Temerkhanov #define THUNDERX_NOR_READ		0x43000111
35*900f88f3SSergey Temerkhanov /* x1 - block address
36*900f88f3SSergey Temerkhanov  * x2 - size
37*900f88f3SSergey Temerkhanov  * x3 - buffer address
38*900f88f3SSergey Temerkhanov  */
39*900f88f3SSergey Temerkhanov #define THUNDERX_NOR_WRITE		0x43000112
40*900f88f3SSergey Temerkhanov /* x1 - block address
41*900f88f3SSergey Temerkhanov  * x2 - size
42*900f88f3SSergey Temerkhanov  * x3 - buffer address
43*900f88f3SSergey Temerkhanov  */
44*900f88f3SSergey Temerkhanov #define THUNDERX_NOR_ERASE		0x43000113
45*900f88f3SSergey Temerkhanov /* x1 - block address
46*900f88f3SSergey Temerkhanov  */
47*900f88f3SSergey Temerkhanov 
48*900f88f3SSergey Temerkhanov #define THUNDERX_PART_COUNT		0x43000201
49*900f88f3SSergey Temerkhanov #define THUNDERX_GET_PART		0x43000202
50*900f88f3SSergey Temerkhanov /* x1 - pointer to the buffer
51*900f88f3SSergey Temerkhanov  * x2 - index
52*900f88f3SSergey Temerkhanov  */
53*900f88f3SSergey Temerkhanov 
54*900f88f3SSergey Temerkhanov #define THUNDERX_DRAM_SIZE		0x43000301
55*900f88f3SSergey Temerkhanov /* x1 - node number
56*900f88f3SSergey Temerkhanov  */
57*900f88f3SSergey Temerkhanov 
58*900f88f3SSergey Temerkhanov #define THUNDERX_GTI_SYNC		0x43000401
59*900f88f3SSergey Temerkhanov 
60*900f88f3SSergey Temerkhanov #define THUNDERX_ENV_COUNT		0x43000501
61*900f88f3SSergey Temerkhanov #define THUNDERX_ENV_STRING		0x43000502
62*900f88f3SSergey Temerkhanov /* x1 - index
63*900f88f3SSergey Temerkhanov  */
64*900f88f3SSergey Temerkhanov 
65*900f88f3SSergey Temerkhanov #define THUNDERX_NODE_COUNT		0x43000601
66*900f88f3SSergey Temerkhanov 
67*900f88f3SSergey Temerkhanov #endif /* __THUNDERX_SVC_H__ */
68