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 20static u64 g_secos_ex_addr; 21static u64 g_secos_ex_size; 22static 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} 32RESERVEDMEM_OF_DECLARE(secos_ex, "mediatek,tee_os_reserved_memory", 33 secos_reserve_tee_mem); 34 35void 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}