coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <assert.h>
#include <cbfs.h>
#include <cbmem.h>
#include <commonlib/bsd/mem_chip_info.h>
#include <console/console.h>
#include <soc/dramc_common.h>
#include <ip_checksum.h>
#include <mrc_cache.h>
#include <soc/dramc_param.h>
#include <soc/emi.h>
#include <soc/mmu_operations.h>
#include <symbols.h>
#include <timer.h>
Go to the source code of this file.
Macros | |
#define | CALIBRATION_REGION "RW_MRC_CACHE" |
#define | CALIBRATION_REGION_SIZE 0x2000 |
Functions | |
_Static_assert (sizeof(struct dramc_param)<=CALIBRATION_REGION_SIZE, "sizeof(struct dramc_param) exceeds " CALIBRATION_REGION) | |
const char * | get_dram_geometry_str (u32 ddr_geometry) |
const char * | get_dram_type_str (u32 ddr_type) |
static int | mt_mem_test (const struct dramc_data *dparam) |
size_t | mtk_dram_size (void) |
static void | fill_dram_info (struct mem_chip_info *mc, const struct ddr_base_info *ddr) |
static void | add_mem_chip_info (int unused) |
ROMSTAGE_CBMEM_INIT_HOOK (add_mem_chip_info) | |
static int | run_dram_blob (struct dramc_param *dparam) |
static int | dram_run_fast_calibration (struct dramc_param *dparam) |
static int | dram_run_full_calibration (struct dramc_param *dparam) |
static void | mem_init_set_default_config (struct dramc_param *dparam, const struct sdram_info *dram_info) |
static void | mt_mem_init_run (struct dramc_param *dparam, const struct sdram_info *dram_info) |
void | mt_mem_init (struct dramc_param *dparam) |
void | mtk_dram_init (void) |
Variables | |
static const struct ddr_base_info * | curr_ddr_info |
_Static_assert | ( | sizeof(struct dramc_param)<= | CALIBRATION_REGION_SIZE, |
"sizeof(struct dramc_param) exceeds " | CALIBRATION_REGION | ||
) |
|
static |
Definition at line 132 of file memory.c.
References assert, BIOS_DEBUG, cbmem_add(), CBMEM_ID_MEM_CHIP_INFO, CHANNEL_MAX, CONFIG, curr_ddr_info, fill_dram_info(), and printk.
|
static |
Definition at line 184 of file memory.c.
References BIOS_INFO, BIOS_WARNING, config, dramc_param_header::config, CONFIG, ddr_base_info::config_dvfs, dramc_data::ddr_info, DRAMC_CONFIG_FAST_K, dramc_param::dramc_datas, DRAMC_DISABLE_DVFS, DRAMC_ENABLE_DVFS, dramc_param::header, init_dram_by_params(), mt_mem_test(), printk, and run_dram_blob().
Referenced by mt_mem_init_run().
|
static |
Definition at line 220 of file memory.c.
References initialize_dramc_param(), and run_dram_blob().
Referenced by mt_mem_init_run().
|
static |
Definition at line 113 of file memory.c.
References assert, mem_chip_info::channel, CHANNEL_MAX, mem_chip_info::mem_chip_channel::density, DQ_DATA_WIDTH_LP4, mem_chip_info::mem_chip_channel::io_width, mem_chip_info::mem_chip_channel::manufacturer_id, MEM_CHIP_LPDDR4X, mtk_dram_size(), mem_chip_info::num_channels, mem_chip_info::mem_chip_channel::revision_id, and mem_chip_info::type.
Referenced by add_mem_chip_info().
const char * get_dram_geometry_str | ( | u32 | ddr_geometry | ) |
Definition at line 52 of file memory.c.
References DDR_TYPE_2CH_1RK_4GB_4_0, DDR_TYPE_2CH_2RK_4GB_2_2, DDR_TYPE_2CH_2RK_6GB_2_4, DDR_TYPE_2CH_2RK_6GB_3_3, DDR_TYPE_2CH_2RK_8GB_4_4, DDR_TYPE_2CH_2RK_8GB_4_4_BYTE, and s.
Referenced by mem_init_set_default_config().
const char * get_dram_type_str | ( | u32 | ddr_type | ) |
Definition at line 83 of file memory.c.
References DDR_TYPE_DISCRETE, DDR_TYPE_EMCP, and s.
Referenced by mem_init_set_default_config().
|
static |
Definition at line 227 of file memory.c.
References BIOS_INFO, CONFIG, ddr_base_info::config_dvfs, sdram_info::ddr_geometry, dramc_data::ddr_info, sdram_info::ddr_type, dramc_param::dramc_datas, DRAMC_ENABLE_DVFS, get_dram_geometry_str(), get_dram_type_str(), memset(), printk, ddr_base_info::sdram, and type.
Referenced by mt_mem_init_run().
void mt_mem_init | ( | struct dramc_param * | dparam | ) |
Definition at line 304 of file memory.c.
References get_sdram_config(), and mt_mem_init_run().
Referenced by mtk_dram_init(), and platform_romstage_main().
|
static |
Definition at line 249 of file memory.c.
References BIOS_ERR, BIOS_INFO, BIOS_WARNING, dram_run_fast_calibration(), dram_run_full_calibration(), DRAMC_PARAM_HEADER_VERSION, mem_init_set_default_config(), memset(), mrc_cache_load_current(), mrc_cache_stash_data(), MRC_TRAINING_DATA, printk, stopwatch_duration_msecs(), and stopwatch_init().
Referenced by mt_mem_init().
|
static |
Definition at line 29 of file memory.c.
References _dram, addr, BIOS_DEBUG, BIOS_ERR, complex_mem_test(), CONFIG, dramc_data::ddr_info, printk, RANK_0, ddr_base_info::rank_size, and ddr_base_info::support_ranks.
Referenced by dram_run_fast_calibration().
Definition at line 311 of file memory.c.
References curr_ddr_info, dramc_data::ddr_info, dramc_param::dramc_datas, dramc_parameter, mt_mem_init(), and mtk_mmu_after_dram().
Referenced by platform_romstage_main().
Definition at line 102 of file memory.c.
References curr_ddr_info, ddr_mrr_info::mr8_density, ddr_base_info::mrr_info, and RANK_MAX.
Referenced by fill_dram_info(), and sdram_size().
ROMSTAGE_CBMEM_INIT_HOOK | ( | add_mem_chip_info | ) |
|
static |
Definition at line 151 of file memory.c.
References BIOS_ERR, cbfs_prog_stage_load(), dramc_param_header::config, dramc_param::do_putc, do_putchar(), DRAMC_CONFIG_FAST_K, DRAMC_FLAG_HAS_SAVED_DATA, DRAMC_SUCCESS, dump_param_header(), dramc_param_header::flags, dramc_param::header, printk, prog_entry(), PROG_INIT, PROG_REFCODE, prog_run(), prog_set_entry(), and dramc_param_header::status.
Referenced by dram_run_fast_calibration(), and dram_run_full_calibration().
|
static |
Definition at line 27 of file memory.c.
Referenced by add_mem_chip_info(), mtk_dram_init(), and mtk_dram_size().