1/*
2 * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <arch.h>
8#include <asm_macros.S>
9
10	.globl	nvg_set_request_data
11	.globl	nvg_set_request
12	.globl	nvg_get_result
13	.globl	nvg_cache_clean
14	.globl	nvg_cache_clean_inval
15	.globl	nvg_cache_inval_all
16
17/* void nvg_set_request_data(uint64_t req, uint64_t data) */
18func nvg_set_request_data
19	msr	s3_0_c15_c1_2, x0
20	msr	s3_0_c15_c1_3, x1
21	ret
22endfunc nvg_set_request_data
23
24/* void nvg_set_request(uint64_t req) */
25func nvg_set_request
26	msr	s3_0_c15_c1_2, x0
27	ret
28endfunc nvg_set_request
29
30/* uint64_t nvg_get_result(void) */
31func nvg_get_result
32	mrs	x0, s3_0_c15_c1_3
33	ret
34endfunc nvg_get_result
35
36/* uint64_t nvg_cache_clean(void) */
37func nvg_cache_clean
38	mrs	x0, s3_0_c15_c3_5
39	ret
40endfunc nvg_cache_clean
41
42/* uint64_t nvg_cache_clean_inval(void) */
43func nvg_cache_clean_inval
44	mrs	x0, s3_0_c15_c3_6
45	ret
46endfunc nvg_cache_clean_inval
47
48/* uint64_t nvg_cache_inval_all(void) */
49func nvg_cache_inval_all
50	mrs	x0, s3_0_c15_c3_7
51	ret
52endfunc nvg_cache_inval_all