From: Michal Simek Date: Tue, 18 Jun 2013 07:07:02 +0000 (+0200) Subject: zynq: ddrc: Change memory size when 16bit mode is used X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=471ec625b2f7bebfd0ab92aaaf9d2a327382f628;p=thirdparty%2Fu-boot.git zynq: ddrc: Change memory size when 16bit mode is used When 16bit mode is enable u-boot should also report only half of memory. Signed-off-by: Michal Simek Acked-by: Jagannadha Sutradharudu Teki --- diff --git a/arch/arm/cpu/armv7/zynq/ddrc.c b/arch/arm/cpu/armv7/zynq/ddrc.c index 11c405bb26c..e8f8c19ed11 100644 --- a/arch/arm/cpu/armv7/zynq/ddrc.c +++ b/arch/arm/cpu/armv7/zynq/ddrc.c @@ -25,9 +25,12 @@ #include #include +DECLARE_GLOBAL_DATA_PTR; + /* Control regsiter bitfield definitions */ #define ZYNQ_DDRC_CTRLREG_BUSWIDTH_MASK 0xC #define ZYNQ_DDRC_CTRLREG_BUSWIDTH_SHIFT 2 +#define ZYNQ_DDRC_CTRLREG_BUSWIDTH_16BIT 1 /* ECC scrub regsiter definitions */ #define ZYNQ_DDRC_ECC_SCRUBREG_ECC_MODE_MASK 0x7 @@ -45,7 +48,7 @@ void zynq_ddrc_init(void) /* ECC is enabled when memory is in 16bit mode and it is enabled */ if ((ecctype == ZYNQ_DDRC_ECC_SCRUBREG_ECCMODE_SECDED) && - (width == 1)) { + (width == ZYNQ_DDRC_CTRLREG_BUSWIDTH_16BIT)) { puts("Memory: ECC enabled\n"); /* * Clear the first 1MB because it is not initialized from @@ -56,4 +59,7 @@ void zynq_ddrc_init(void) } else { puts("Memory: ECC disabled\n"); } + + if (width == ZYNQ_DDRC_CTRLREG_BUSWIDTH_16BIT) + gd->ram_size /= 2; }