10d5ec955Stony.xie /* 20d5ec955Stony.xie * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. 30d5ec955Stony.xie * 4c3e70be1Sdp-arm * SPDX-License-Identifier: BSD-3-Clause 50d5ec955Stony.xie */ 60d5ec955Stony.xie 7c3cf06f1SAntonio Nino Diaz #ifndef DDR_PARAMETER_H 8c3cf06f1SAntonio Nino Diaz #define DDR_PARAMETER_H 90d5ec955Stony.xie 100d5ec955Stony.xie #include <string.h> 110d5ec955Stony.xie 1209d40e0eSAntonio Nino Diaz #include <platform_def.h> 1309d40e0eSAntonio Nino Diaz 1409d40e0eSAntonio Nino Diaz #include <arch_helpers.h> 1509d40e0eSAntonio Nino Diaz #include <common/debug.h> 1609d40e0eSAntonio Nino Diaz #include <drivers/console.h> 1709d40e0eSAntonio Nino Diaz #include <drivers/delay_timer.h> 1809d40e0eSAntonio Nino Diaz #include <lib/mmio.h> 1909d40e0eSAntonio Nino Diaz 2009d40e0eSAntonio Nino Diaz #include <plat_private.h> 2109d40e0eSAntonio Nino Diaz #include <soc.h> 2209d40e0eSAntonio Nino Diaz 230d5ec955Stony.xie #define DDR_REGION_NR_MAX 10 240d5ec955Stony.xie #define REGION_NR_OFFSET 0 250d5ec955Stony.xie #define REGION_ADDR_OFFSET 8 260d5ec955Stony.xie #define REGION_DATA_PER_BYTES 8 270d5ec955Stony.xie #define RG_SIZE_MB(byte) ((byte) >> 20) 280d5ec955Stony.xie 290d5ec955Stony.xie /* unit: MB */ 300d5ec955Stony.xie struct param_ddr_usage { 310d5ec955Stony.xie uint64_t boundary; 320d5ec955Stony.xie 330d5ec955Stony.xie uint32_t ns_nr; 340d5ec955Stony.xie uint64_t ns_base[DDR_REGION_NR_MAX]; 350d5ec955Stony.xie uint64_t ns_top[DDR_REGION_NR_MAX]; 360d5ec955Stony.xie 370d5ec955Stony.xie uint32_t s_nr; 38*11a0a46aSXiaoDong Huang uint64_t s_base[DDR_REGION_NR_MAX + 1]; 39*11a0a46aSXiaoDong Huang uint64_t s_top[DDR_REGION_NR_MAX + 1]; 400d5ec955Stony.xie }; 410d5ec955Stony.xie 420d5ec955Stony.xie struct param_ddr_usage ddr_region_usage_parse(uint64_t addr, uint64_t max_mb); 430d5ec955Stony.xie 44c3cf06f1SAntonio Nino Diaz #endif /* DDR_PARAMETER_H */ 45