• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2012-2022 Huawei Technologies Co., Ltd.
3  * Description: get and set static mem info.
4  *
5  * This software is licensed under the terms of the GNU General Public
6  * License version 2, as published by the Free Software Foundation, and
7  * may be copied, distributed, and modified under those terms.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  */
14 
15 #include "declare_static_ion.h"
16 #include <linux/of_reserved_mem.h>
17 #include <linux/of.h>
18 #include "tc_ns_log.h"
19 
20 static u64 g_secos_ex_addr;
21 static u64 g_secos_ex_size;
secos_reserve_tee_mem(const struct reserved_mem * rmem)22 static int secos_reserve_tee_mem(const struct reserved_mem *rmem)
23 {
24 	if (rmem) {
25 		g_secos_ex_addr = rmem->base;
26 		g_secos_ex_size = rmem->size;
27 	} else {
28 		tloge("secos reserve tee mem is NULL\n");
29 	}
30 	return 0;
31 }
32 RESERVEDMEM_OF_DECLARE(secos_ex, "mediatek,tee_os_reserved_memory",
33 	secos_reserve_tee_mem);
34 
set_ion_mem_info(struct register_ion_mem_tag * memtag)35 void set_ion_mem_info(struct register_ion_mem_tag *memtag)
36 {
37 	uint32_t pos = 0;
38 	if(!memtag) {
39 		tloge("invalid memtag\n");
40 		return;
41 	}
42 
43 	tlogi("ion mem static reserved for tee secos=0x%x\n", (uint32_t)g_secos_ex_size);
44 
45 	if (g_secos_ex_addr != (u64)0 && g_secos_ex_size != (u64)0) {
46 		memtag->memaddr[pos] = g_secos_ex_addr;
47 		memtag->memsize[pos] = g_secos_ex_size;
48 		memtag->memtag[pos] = PP_MEM_TAG;
49 		pos++;
50 	}
51 	memtag->size = pos;
52 	return;
53 }