xref: /rk3399_ARM-atf/plat/rockchip/common/drivers/parameter/ddr_parameter.h (revision c3e70be1c1ad2a9d1d3aee187231f5088a880ae1)
10d5ec955Stony.xie /*
20d5ec955Stony.xie  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
30d5ec955Stony.xie  *
4*c3e70be1Sdp-arm  * SPDX-License-Identifier: BSD-3-Clause
50d5ec955Stony.xie  */
60d5ec955Stony.xie 
70d5ec955Stony.xie #ifndef __PARAMETER_H__
80d5ec955Stony.xie #define __PARAMETER_H__
90d5ec955Stony.xie 
100d5ec955Stony.xie #include <arch_helpers.h>
110d5ec955Stony.xie #include <console.h>
120d5ec955Stony.xie #include <debug.h>
130d5ec955Stony.xie #include <delay_timer.h>
140d5ec955Stony.xie #include <mmio.h>
150d5ec955Stony.xie #include <platform_def.h>
160d5ec955Stony.xie #include <plat_private.h>
170d5ec955Stony.xie #include <soc.h>
180d5ec955Stony.xie #include <string.h>
190d5ec955Stony.xie 
200d5ec955Stony.xie #define DDR_REGION_NR_MAX		10
210d5ec955Stony.xie #define REGION_NR_OFFSET		0
220d5ec955Stony.xie #define REGION_ADDR_OFFSET		8
230d5ec955Stony.xie #define REGION_DATA_PER_BYTES		8
240d5ec955Stony.xie #define RG_SIZE_MB(byte)		((byte) >> 20)
250d5ec955Stony.xie 
260d5ec955Stony.xie /* unit: MB */
270d5ec955Stony.xie struct param_ddr_usage {
280d5ec955Stony.xie 	uint64_t boundary;
290d5ec955Stony.xie 
300d5ec955Stony.xie 	uint32_t ns_nr;
310d5ec955Stony.xie 	uint64_t ns_base[DDR_REGION_NR_MAX];
320d5ec955Stony.xie 	uint64_t ns_top[DDR_REGION_NR_MAX];
330d5ec955Stony.xie 
340d5ec955Stony.xie 	uint32_t s_nr;
350d5ec955Stony.xie 	uint64_t s_base[DDR_REGION_NR_MAX];
360d5ec955Stony.xie 	uint64_t s_top[DDR_REGION_NR_MAX];
370d5ec955Stony.xie };
380d5ec955Stony.xie 
390d5ec955Stony.xie struct param_ddr_usage ddr_region_usage_parse(uint64_t addr, uint64_t max_mb);
400d5ec955Stony.xie 
410d5ec955Stony.xie #endif /* __PARAMETER_H__ */
42