Browse Source
N1SDP platform supports RDIMMs with ECC capability. To use the ECC capability, the entire DDR memory space has to be zeroed out before enabling the ECC bits in DMC620. Zeroing out several gigabytes of memory from SCP is quite time consuming so functions are added that zeros out the DDR memory from application processor which is much faster compared to SCP. BL33 binary cannot be copied to DDR memory before enabling ECC so this is also done by TF-A from IOFPGA-DDR3 memory to main DDR4 memory after ECC is enabled. Original PLAT_PHY_ADDR_SPACE_SIZE was limited to 36-bits with which the entire DDR space cannot be accessed as DRAM2 starts in base 0x8080000000. So these macros are redefined for all ARM platforms. Change-Id: If09524fb65b421b7a368b1b9fc52c49f2ddb7846 Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>pull/1931/head
Manoj Kumar
5 years ago
13 changed files with 266 additions and 19 deletions
@ -0,0 +1,38 @@ |
|||||
|
/*
|
||||
|
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved. |
||||
|
* |
||||
|
* SPDX-License-Identifier: BSD-3-Clause |
||||
|
*/ |
||||
|
|
||||
|
#ifndef N1SDP_DEF_H |
||||
|
#define N1SDP_DEF_H |
||||
|
|
||||
|
/* Non-secure SRAM MMU mapping */ |
||||
|
#define N1SDP_NS_SRAM_BASE (0x06000000) |
||||
|
#define N1SDP_NS_SRAM_SIZE (0x00010000) |
||||
|
#define N1SDP_MAP_NS_SRAM MAP_REGION_FLAT( \ |
||||
|
N1SDP_NS_SRAM_BASE, \ |
||||
|
N1SDP_NS_SRAM_SIZE, \ |
||||
|
MT_DEVICE | MT_RW | MT_SECURE) |
||||
|
|
||||
|
/* SDS memory information defines */ |
||||
|
#define N1SDP_SDS_MEM_INFO_STRUCT_ID 8 |
||||
|
#define N1SDP_SDS_MEM_INFO_OFFSET 0 |
||||
|
#define N1SDP_SDS_MEM_INFO_SIZE 4 |
||||
|
|
||||
|
/* SDS BL33 image information defines */ |
||||
|
#define N1SDP_SDS_BL33_INFO_STRUCT_ID 9 |
||||
|
#define N1SDP_SDS_BL33_INFO_OFFSET 0 |
||||
|
#define N1SDP_SDS_BL33_INFO_SIZE 12 |
||||
|
|
||||
|
/* DMC ERR0CTLR0 registers */ |
||||
|
#define N1SDP_DMC0_ERR0CTLR0_REG 0x4E000708 |
||||
|
#define N1SDP_DMC1_ERR0CTLR0_REG 0x4E100708 |
||||
|
|
||||
|
/* DMC ECC enable bit in ERR0CTLR0 register */ |
||||
|
#define N1SDP_DMC_ERR0CTLR0_ECC_EN 0x1 |
||||
|
|
||||
|
/* Base address of non-secure SRAM where DDR memory size will be filled */ |
||||
|
#define N1SDP_DDR_MEM_INFO_BASE 0x06008000 |
||||
|
|
||||
|
#endif /* N1SDP_DEF_H */ |
Loading…
Reference in new issue