summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorHeiko Stübner <heiko@sntech.de>2017-03-20 11:40:30 (GMT)
committerSimon Glass <sjg@chromium.org>2017-04-05 02:01:57 (GMT)
commit78959d4cbf429ac41f2903c87cbdf00852abb877 (patch)
treeb56c40cd3e6363af180caefe8d4cdb9d965f2e9e /arch/arm
parent3408509f6f71cf5c46c64a34059bf88fdb83e670 (diff)
downloadu-boot-fsl-qoriq-78959d4cbf429ac41f2903c87cbdf00852abb877.tar.xz
rockchip: rk3188: Decode the actual amount of ram
There was still a static ram value set in the rk3188-board from the time where we didn't have actual sdram init code. Now the sdram init leaves the ram information in SYS_REG2 and we can decode it similarly to the rk3288. Right now we have two duplicates of that code, which is still ok and doesn't really count as common code yet, but if we get a third copy at some point from a newer soc, we should think about moving that to a more general position. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-rockchip/rk3188-board.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-rockchip/rk3188-board.c b/arch/arm/mach-rockchip/rk3188-board.c
index 16f3855..c370156 100644
--- a/arch/arm/mach-rockchip/rk3188-board.c
+++ b/arch/arm/mach-rockchip/rk3188-board.c
@@ -56,8 +56,22 @@ err:
int dram_init(void)
{
- /* FIXME: read back ram size from sys_reg2 */
- gd->ram_size = 0x40000000;
+ struct ram_info ram;
+ struct udevice *dev;
+ int ret;
+
+ ret = uclass_get_device(UCLASS_RAM, 0, &dev);
+ if (ret) {
+ debug("DRAM init failed: %d\n", ret);
+ return ret;
+ }
+ ret = ram_get_info(dev, &ram);
+ if (ret) {
+ debug("Cannot get DRAM size: %d\n", ret);
+ return ret;
+ }
+ debug("SDRAM base=%lx, size=%x\n", ram.base, ram.size);
+ gd->ram_size = ram.size;
return 0;
}