diff options
-rw-r--r-- | arch/arm/cpu/tegra-common/board.c | 12 | ||||
-rw-r--r-- | include/configs/jetson-tk1.h | 3 |
2 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/cpu/tegra-common/board.c b/arch/arm/cpu/tegra-common/board.c index 6a6faf4b27..20ecf65754 100644 --- a/arch/arm/cpu/tegra-common/board.c +++ b/arch/arm/cpu/tegra-common/board.c @@ -14,6 +14,7 @@ #include <asm/arch-tegra/pmc.h> #include <asm/arch-tegra/sys_proto.h> #include <asm/arch-tegra/warmboot.h> +#include <asm/arch-tegra/mc.h> DECLARE_GLOBAL_DATA_PTR; @@ -34,11 +35,20 @@ enum { unsigned int query_sdram_size(void) { - struct pmc_ctlr *const pmc = (struct pmc_ctlr *)NV_PA_PMC_BASE; u32 reg; +#if defined(CONFIG_TEGRA_USE_EMC_DRAM_SIZE) + struct mc_ctlr *const mc = (struct mc_ctlr *)NV_PA_MC_BASE; + + reg = readl(&mc->mc_emem_cfg); /* EMEM_SIZE_MB */ + debug("mc->mc_emem_cfg (MEM_SIZE_MB) = 0x%08x\n", reg); + reg <<= 20; /* get into ODMDATA position */ +#else + struct pmc_ctlr *const pmc = (struct pmc_ctlr *)NV_PA_PMC_BASE; + reg = readl(&pmc->pmc_scratch20); debug("pmc->pmc_scratch20 (ODMData) = 0x%08x\n", reg); +#endif #if defined(CONFIG_TEGRA20) /* bits 30:28 in OdmData are used for RAM size on T20 */ diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h index 6255750c3b..8e4807c573 100644 --- a/include/configs/jetson-tk1.h +++ b/include/configs/jetson-tk1.h @@ -12,6 +12,9 @@ #include "tegra124-common.h" +/* Use memory controller SDRAM size instead of ODMDATA */ +#define CONFIG_TEGRA_USE_EMC_DRAM_SIZE + /* Enable fdt support for Jetson TK1. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra124-jetson-tk1 #define CONFIG_OF_CONTROL |