diff options
Diffstat (limited to 'src/mainboard/google/gru/sdram_configs.c')
-rw-r--r-- | src/mainboard/google/gru/sdram_configs.c | 64 |
1 files changed, 10 insertions, 54 deletions
diff --git a/src/mainboard/google/gru/sdram_configs.c b/src/mainboard/google/gru/sdram_configs.c index 1cfef06189..b9f77d0f1f 100644 --- a/src/mainboard/google/gru/sdram_configs.c +++ b/src/mainboard/google/gru/sdram_configs.c @@ -23,67 +23,23 @@ #include <types.h> static const char *sdram_configs[] = { -#if IS_ENABLED(CONFIG_BOARD_GOOGLE_BOB) - "sdram-lpddr3-samsung-2GB-24EB", - "sdram-lpddr3-micron-2GB", - "sdram-lpddr3-samsung-4GB-04EB", - "sdram-lpddr3-micron-4GB", -#else - "sdram-lpddr3-hynix-4GB-666", - "sdram-lpddr3-hynix-4GB-800", - "sdram-lpddr3-hynix-4GB-933", -#endif + [0] = "sdram-lpddr3-hynix-4GB", + [3] = "sdram-lpddr3-samsung-2GB-24EB", + [4] = "sdram-lpddr3-micron-2GB", + [5] = "sdram-lpddr3-samsung-4GB-04EB", + [6] = "sdram-lpddr3-micron-4GB", }; static struct rk3399_sdram_params params; -#if IS_ENABLED(CONFIG_BOARD_GOOGLE_GRU) || \ - IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) -enum dram_speeds { - dram_666MHz = 0, - dram_800MHz = 1, - dram_933MHz = 2, -}; - -static enum dram_speeds get_sdram_index(void) -{ - uint32_t id; - - id = board_id(); - - if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN)) - switch (id) { - case 4: - return dram_800MHz; - default: - return dram_933MHz; - } - - if (IS_ENABLED(CONFIG_BOARD_GOOGLE_GRU)) - return dram_800MHz; -} -#endif - const struct rk3399_sdram_params *get_sdram_config() { -#if IS_ENABLED(CONFIG_BOARD_GOOGLE_BOB) - u32 ramcode = ram_code(); - - /* - * through schematic, ramid arrange like following: - * 0: sdram-lpddr3-samsung-2GB-24EB - * 2: sdram-lpddr3-micron-2GB - * 4: sdram-lpddr3-samsung-4GB-04EB - * 6: sdram-lpddr3-micron-4GB - */ - ramcode = ramcode / 2; + uint32_t ramcode; - if (cbfs_boot_load_struct(sdram_configs[ramcode], - ¶ms, sizeof(params)) != sizeof(params)) -#else - if (cbfs_boot_load_struct(sdram_configs[get_sdram_index()], - ¶ms, sizeof(params)) != sizeof(params)) -#endif + ramcode = ram_code(); + if (ramcode >= ARRAY_SIZE(sdram_configs) || !sdram_configs[ramcode] || + (cbfs_boot_load_struct(sdram_configs[ramcode], + ¶ms, sizeof(params)) != sizeof(params))) die("Cannot load SDRAM parameter file!"); return ¶ms; } |