From: Przemyslaw Marczak Date: Mon, 28 Jul 2014 15:43:23 +0000 (+0200) Subject: samsung:board: init dram info based on memory node in fdt X-Git-Tag: submit/tizen/20201110.005738~368 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1b97369b34b3f18694f29a632f54211521fcd34b;p=platform%2Fkernel%2Fu-boot.git samsung:board: init dram info based on memory node in fdt Change-Id: I3677f0ab0b4aed264de8af37e87b081f66a36b97 Signed-off-by: Przemyslaw Marczak --- diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index 752d84ec05..c5aa0844f1 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -99,7 +99,7 @@ static void boot_temp_check(void) int board_init(void) { - gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL); + gd->bd->bi_boot_params = (CONFIG_SYS_SDRAM_BASE + 0x100UL); #if defined CONFIG_EXYNOS_TMU if (tmu_init(gd->fdt_blob) != TMU_STATUS_NORMAL) { debug("%s: Failed to init TMU\n", __func__); @@ -120,18 +120,44 @@ int board_init(void) int dram_init(void) { unsigned int i; +#ifdef CONFIG_FDTDEC_MEMORY + int dram_banks; + + uint64_t mem_size[CONFIG_NR_DRAM_BANKS]; + + dram_banks = fdtdec_decode_memory(gd->fdt_blob, NULL, mem_size, + CONFIG_NR_DRAM_BANKS); + + for (i = 0; i < dram_banks; i++) + gd->ram_size += (uint32_t)mem_size[i]; +#else unsigned long addr; for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE); gd->ram_size += get_ram_size((long *)addr, SDRAM_BANK_SIZE); } +#endif return 0; } int dram_init_banksize(void) { unsigned int i; +#ifdef CONFIG_FDTDEC_MEMORY + int dram_banks; + + uint64_t mem_addr[CONFIG_NR_DRAM_BANKS]; + uint64_t mem_size[CONFIG_NR_DRAM_BANKS]; + + dram_banks = fdtdec_decode_memory(gd->fdt_blob, mem_addr, mem_size, + CONFIG_NR_DRAM_BANKS); + + for (i = 0; i < dram_banks; i++) { + gd->bd->bi_dram[i].start = (uint32_t)mem_addr[i]; + gd->bd->bi_dram[i].size = (uint32_t)mem_size[i]; + } +#else unsigned long addr, size; for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { @@ -141,7 +167,7 @@ int dram_init_banksize(void) gd->bd->bi_dram[i].start = addr; gd->bd->bi_dram[i].size = size; } - +#endif return 0; } diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h index d4a4e2215d..7b7c063d9e 100644 --- a/include/asm-generic/global_data.h +++ b/include/asm-generic/global_data.h @@ -137,6 +137,9 @@ typedef struct global_data { #if CONFIG_IS_ENABLED(WDT) struct udevice *watchdog_dev; #endif +#ifdef CONFIG_OF_MULTI + void *priv; +#endif } gd_t; #endif