]> git.sur5r.net Git - u-boot/commitdiff
rockchip: rk3188: Decode the actual amount of ram
authorHeiko Stübner <heiko@sntech.de>
Mon, 20 Mar 2017 11:40:30 +0000 (12:40 +0100)
committerSimon Glass <sjg@chromium.org>
Wed, 5 Apr 2017 02:01:57 +0000 (20:01 -0600)
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>
arch/arm/mach-rockchip/rk3188-board.c

index 16f38559afff430d6135419890d1c09b20d0e176..c370156e4c04b9315ff745b4c193b3e82f197659 100644 (file)
@@ -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;
 }