From 20f9a33b64169aa706926ce4bdec0487eac971da Mon Sep 17 00:00:00 2001 From: Kinjal Pravinbhai Patel Date: Thu, 8 Oct 2015 17:19:44 +0530 Subject: [PATCH] bsp: r5: modified Init_MPU for the case when starting DDR>2GB This patch modifies mpu settings in Init_MPU to truncate the DDR size to 2Gb when DDR located at 0x0 is greater than 2GB in the hdf Signed-off-by: Kinjal Pravinbhai Patel Acked-by: Anirudha Sarangi --- lib/bsp/standalone/src/cortexr5/mpu.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/bsp/standalone/src/cortexr5/mpu.c b/lib/bsp/standalone/src/cortexr5/mpu.c index ee18b2da..6494a8b8 100644 --- a/lib/bsp/standalone/src/cortexr5/mpu.c +++ b/lib/bsp/standalone/src/cortexr5/mpu.c @@ -130,12 +130,17 @@ void Init_MPU(void) #ifdef XPAR_PSU_R5_DDR_0_S_AXI_BASEADDR /* If the DDR is present, configure region as per DDR size */ size = (XPAR_PSU_R5_DDR_0_S_AXI_HIGHADDR - XPAR_PSU_R5_DDR_0_S_AXI_BASEADDR) + 1; - /* Lookup the size. */ - for (i = 0; i < sizeof region_size / sizeof region_size[0]; i++) { - if (size <= region_size[i].size) { - RegSize = region_size[i].encoding; - break; + if (size < 0x80000000) { + /* Lookup the size. */ + for (i = 0; i < sizeof region_size / sizeof region_size[0]; i++) { + if (size <= region_size[i].size) { + RegSize = region_size[i].encoding; + break; + } } + } else { + /* if the DDR size is > 2GB, truncate it to 2GB */ + RegSize = REGION_2G; } #else /* For DDRless system, configure region for TCM */