xref: /optee_os/core/arch/arm/plat-sam/sam_sfr.c (revision 2ac0535965c2b1d1765cfb533a23661a3b461f8c)
1 // SPDX-License-Identifier: BSD-2-Clause
2 /*
3  * Copyright (C) 2017 Timesys Corporation.
4  * Copyright (C) 2021 Microchip
5  * All rights reserved.
6  */
7 
8 #include <mm/core_memprot.h>
9 #include <mm/core_mmu.h>
10 #include <sam_sfr.h>
11 #include <sama5d2.h>
12 #include <types_ext.h>
13 
14 register_phys_mem_pgdir(MEM_AREA_IO_SEC, SFR_BASE, CORE_MMU_PGDIR_SIZE);
15 
16 vaddr_t sam_sfr_base(void)
17 {
18 	static void *va;
19 
20 	if (!cpu_mmu_enabled())
21 		return SFR_BASE;
22 
23 	if (!va)
24 		va = phys_to_virt(SFR_BASE, MEM_AREA_IO_SEC, 1);
25 
26 	return (vaddr_t)va;
27 }
28