xref: /rk3399_ARM-atf/plat/arm/board/fvp/fvp_drtm_addr.c (revision 7042fa6d39e3a8341f9318d0b57b83bd51dd8124)
1*d5f225d9SManish V Badarkhe /*
2*d5f225d9SManish V Badarkhe  * Copyright (c) 2022 Arm Limited. All rights reserved.
3*d5f225d9SManish V Badarkhe  *
4*d5f225d9SManish V Badarkhe  * SPDX-License-Identifier:    BSD-3-Clause
5*d5f225d9SManish V Badarkhe  *
6*d5f225d9SManish V Badarkhe  */
7*d5f225d9SManish V Badarkhe 
8*d5f225d9SManish V Badarkhe #include <stdint.h>
9*d5f225d9SManish V Badarkhe 
10*d5f225d9SManish V Badarkhe #include <plat/common/platform.h>
11*d5f225d9SManish V Badarkhe #include <platform_def.h>
12*d5f225d9SManish V Badarkhe 
13*d5f225d9SManish V Badarkhe /*******************************************************************************
14*d5f225d9SManish V Badarkhe  * Check passed region is within Non-Secure region of DRAM
15*d5f225d9SManish V Badarkhe  ******************************************************************************/
plat_drtm_validate_ns_region(uintptr_t region_start,size_t region_size)16*d5f225d9SManish V Badarkhe int plat_drtm_validate_ns_region(uintptr_t region_start,
17*d5f225d9SManish V Badarkhe 				 size_t region_size)
18*d5f225d9SManish V Badarkhe {
19*d5f225d9SManish V Badarkhe 	uintptr_t region_end = region_start + region_size - 1;
20*d5f225d9SManish V Badarkhe 
21*d5f225d9SManish V Badarkhe 	if (region_start >= region_end) {
22*d5f225d9SManish V Badarkhe 		return -1;
23*d5f225d9SManish V Badarkhe 	} else if ((region_start >= ARM_NS_DRAM1_BASE) &&
24*d5f225d9SManish V Badarkhe 		   (region_start < (ARM_NS_DRAM1_BASE + ARM_NS_DRAM1_SIZE)) &&
25*d5f225d9SManish V Badarkhe 		   (region_end >= ARM_NS_DRAM1_BASE) &&
26*d5f225d9SManish V Badarkhe 		   (region_end < (ARM_NS_DRAM1_BASE + ARM_NS_DRAM1_SIZE))) {
27*d5f225d9SManish V Badarkhe 		return 0;
28*d5f225d9SManish V Badarkhe 	} else if ((region_start >= ARM_DRAM2_BASE) &&
29*d5f225d9SManish V Badarkhe 		   (region_start < (ARM_DRAM2_BASE + ARM_DRAM2_SIZE)) &&
30*d5f225d9SManish V Badarkhe 		   (region_end >= ARM_DRAM2_BASE) &&
31*d5f225d9SManish V Badarkhe 		   (region_end < (ARM_DRAM2_BASE + ARM_DRAM2_SIZE))) {
32*d5f225d9SManish V Badarkhe 		return 0;
33*d5f225d9SManish V Badarkhe 	}
34*d5f225d9SManish V Badarkhe 
35*d5f225d9SManish V Badarkhe 	return -1;
36*d5f225d9SManish V Badarkhe }
37