board_f: Factor out bdinfo bi_mem{start, size} to setup_bdinfo
Move all assignments to gd->bd->bi_mem{start,size} to generic code in setup_bdinfo. Xtensa architecture is special in this regard as it defines its own handling of gd->bd->bi_mem{start,size} fields. In order to avoid defining a weak SDRAM function, let arch_setup_bdinfo overwrite the generic flags. For ARC architecture, remove ARCH_EARLY_INIT_R from Kconfig since it is not needed anymore. Also, use gd->ram_base to populate bi_memstart to avoid an ifdef. Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> Acked-by: Alexey Brodkin <abrokdin@synopsys.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
81e7cb1e71
commit
a4aa188948
@ -10,7 +10,6 @@ choice
|
||||
|
||||
config ARC
|
||||
bool "ARC architecture"
|
||||
select ARCH_EARLY_INIT_R
|
||||
select ARC_TIMER
|
||||
select CLK
|
||||
select HAVE_PRIVATE_LIBGCC
|
||||
|
@ -25,13 +25,6 @@ int arch_cpu_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int arch_early_init_r(void)
|
||||
{
|
||||
gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;
|
||||
gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* This is a dummy function on arc */
|
||||
int dram_init(void)
|
||||
{
|
||||
|
@ -5,4 +5,4 @@
|
||||
|
||||
obj-$(CONFIG_CMD_BOOTM) += bootm.o
|
||||
|
||||
obj-y += cache.o misc.o relocate.o time.o
|
||||
obj-y += cache.o misc.o relocate.o time.o bdinfo.o
|
||||
|
22
arch/xtensa/lib/bdinfo.c
Normal file
22
arch/xtensa/lib/bdinfo.c
Normal file
@ -0,0 +1,22 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* XTENSA-specific information for the 'bd' command
|
||||
*
|
||||
* (C) Copyright 2003
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <init.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int arch_setup_bdinfo(void)
|
||||
{
|
||||
struct bd_info *bd = gd->bd;
|
||||
|
||||
bd->bi_memstart = PHYSADDR(CONFIG_SYS_SDRAM_BASE);
|
||||
bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
|
||||
|
||||
return 0;
|
||||
}
|
@ -51,9 +51,6 @@ int checkboard(void)
|
||||
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
gd->bd->bi_memstart = PHYSADDR(CONFIG_SYS_SDRAM_BASE);
|
||||
gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -605,6 +605,11 @@ __weak int arch_setup_bdinfo(void)
|
||||
|
||||
int setup_bdinfo(void)
|
||||
{
|
||||
struct bd_info *bd = gd->bd;
|
||||
|
||||
bd->bi_memstart = gd->ram_base; /* start of memory */
|
||||
bd->bi_memsize = gd->ram_size; /* size in bytes */
|
||||
|
||||
return arch_setup_bdinfo();
|
||||
}
|
||||
|
||||
@ -614,12 +619,6 @@ static int setup_board_part1(void)
|
||||
{
|
||||
struct bd_info *bd = gd->bd;
|
||||
|
||||
/*
|
||||
* Save local variables to board info struct
|
||||
*/
|
||||
bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
|
||||
bd->bi_memsize = gd->ram_size; /* size in bytes */
|
||||
|
||||
#ifdef CONFIG_SYS_SRAM_BASE
|
||||
bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
|
||||
bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
|
||||
|
Loading…
Reference in New Issue
Block a user