diff options
author | Julius Werner <jwerner@chromium.org> | 2016-08-19 16:35:22 -0700 |
---|---|---|
committer | Julius Werner <jwerner@chromium.org> | 2016-08-27 01:16:47 +0200 |
commit | 329031fdedb332f75b2d3ce6c165bb62d9631600 (patch) | |
tree | 5fde66e307d9f66e2fe949f09741863aa71b2faa /src/mainboard/google/gru/sdram_configs.c | |
parent | 3c814b2e2b8e053da352f4746a4914fb43af09d7 (diff) |
gru: Make SDRAM parameters individual struct files in CBFS
This patch changes Gru SDRAM parameters from structures that just get
compiled into the romstage to individual CBFS files. This allows us to
only load the parameter set we need for the board we're booting from
flash, which reduces our boot time and the SRAM memory footprint
required to hold the romstage.
TEST=Booted Kevin.
Change-Id: Ie88a515cbdb19a794ca0a230a56bcc82bed1e550
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/16274
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/mainboard/google/gru/sdram_configs.c')
-rw-r--r-- | src/mainboard/google/gru/sdram_configs.c | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/src/mainboard/google/gru/sdram_configs.c b/src/mainboard/google/gru/sdram_configs.c index f34ebf182c..2ececdfd03 100644 --- a/src/mainboard/google/gru/sdram_configs.c +++ b/src/mainboard/google/gru/sdram_configs.c @@ -15,31 +15,24 @@ #include <arch/io.h> #include <boardid.h> +#include <cbfs.h> #include <console/console.h> #include <gpio.h> #include <soc/sdram.h> #include <string.h> #include <types.h> -static struct rk3399_sdram_params sdram_configs[] = { -#include "sdram_inf/sdram-lpddr3-hynix-4GB-200.inc" - -/* 666MHz, enable odt 120o */ -#include "sdram_inf/sdram-lpddr3-hynix-4GB-666.inc" - -/* 800MHz, enable odt 120o */ -#include "sdram_inf/sdram-lpddr3-hynix-4GB-800.inc" - -/* 666MHz, disable odt */ -#include "sdram_inf/sdram-lpddr3-hynix-4GB-666-no-odt.inc" - -/* 800MHz, disable odt */ -#include "sdram_inf/sdram-lpddr3-hynix-4GB-800-no-odt.inc" - -/* 933MHz, enable odt 120o */ -#include "sdram_inf/sdram-lpddr3-hynix-4GB-933.inc" +static const char *sdram_configs[] = { + "sdram-lpddr3-hynix-4GB-200", + "sdram-lpddr3-hynix-4GB-666", + "sdram-lpddr3-hynix-4GB-800", + "sdram-lpddr3-hynix-4GB-666-no-odt", + "sdram-lpddr3-hynix-4GB-800-no-odt", + "sdram-lpddr3-hynix-4GB-933", }; +static struct rk3399_sdram_params params; + enum dram_speeds { dram_200MHz = 0, dram_666MHz = 1, @@ -80,11 +73,8 @@ static enum dram_speeds get_sdram_index(void) const struct rk3399_sdram_params *get_sdram_config() { - - enum dram_speeds speed = get_sdram_index(); - - printk(BIOS_INFO, "Using SDRAM configuration for %d MHz\n", - sdram_configs[speed].ddr_freq / (1000 * 1000)); - - return &sdram_configs[speed]; + if (cbfs_boot_load_struct(sdram_configs[get_sdram_index()], + ¶ms, sizeof(params)) != sizeof(params)) + die("Cannot load SDRAM parameter file!"); + return ¶ms; } |