diff options
author | Kever Yang <kever.yang@rock-chips.com> | 2017-04-19 16:01:14 +0800 |
---|---|---|
committer | Philipp Tomsich <philipp.tomsich@theobroma-systems.com> | 2017-05-09 12:41:44 +0200 |
commit | 617659123ce158da52cfe52e7916396f53d1c354 (patch) | |
tree | b1889f33ba08f3229186d03fc88e46e77dd6b10d | |
parent | b23b1e10341d0dcae898dbb4d0e140c5d82f0512 (diff) |
rockchip: rk3399: use actual dram size
Since our sdram driver is ready, we can use the actual size
instead of hard code.
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | arch/arm/mach-rockchip/rk3399/sdram_rk3399.c | 8 | ||||
-rw-r--r-- | board/rockchip/evb_rk3399/evb-rk3399.c | 19 |
2 files changed, 22 insertions, 5 deletions
diff --git a/arch/arm/mach-rockchip/rk3399/sdram_rk3399.c b/arch/arm/mach-rockchip/rk3399/sdram_rk3399.c index af51ebe806..009ae1b405 100644 --- a/arch/arm/mach-rockchip/rk3399/sdram_rk3399.c +++ b/arch/arm/mach-rockchip/rk3399/sdram_rk3399.c @@ -1298,6 +1298,8 @@ static int rk3399_dmc_probe(struct udevice *dev) priv->pmugrf = syscon_get_first_range(ROCKCHIP_SYSCON_PMUGRF); debug("%s: pmugrf=%p\n", __func__, priv->pmugrf); + priv->info.base = 0; + priv->info.size = sdram_size_mb(priv) << 20; #endif return 0; } @@ -1306,9 +1308,7 @@ static int rk3399_dmc_get_info(struct udevice *dev, struct ram_info *info) { struct dram_info *priv = dev_get_priv(dev); - info = &priv->info; - priv->info.base = 0; - priv->info.size = sdram_size_mb(priv) << 20; + *info = priv->info; return 0; } @@ -1332,8 +1332,8 @@ U_BOOT_DRIVER(dmc_rk3399) = { .ofdata_to_platdata = rk3399_dmc_ofdata_to_platdata, #endif .probe = rk3399_dmc_probe, -#ifdef CONFIG_SPL_BUILD .priv_auto_alloc_size = sizeof(struct dram_info), +#ifdef CONFIG_SPL_BUILD .platdata_auto_alloc_size = sizeof(struct rockchip_dmc_plat), #endif }; diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c index 4b0d83c184..cc2d9f2bfe 100644 --- a/board/rockchip/evb_rk3399/evb-rk3399.c +++ b/board/rockchip/evb_rk3399/evb-rk3399.c @@ -5,6 +5,7 @@ */ #include <common.h> #include <dm.h> +#include <ram.h> #include <dm/pinctrl.h> #include <dm/uclass-internal.h> #include <asm/arch/periph.h> @@ -65,7 +66,23 @@ out: int dram_init(void) { - gd->ram_size = 0x80000000; + 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=%llx, size=%x\n", ram.base, (unsigned int)ram.size); + gd->ram_size = ram.size; + return 0; } |