coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
dramc_param.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __SOC_MEDIATEK_MT8192_DRAMC_PARAM_H__
4 #define __SOC_MEDIATEK_MT8192_DRAMC_PARAM_H__
5 
6 /*
7  * NOTE: This file is shared between coreboot and dram blob. Any change in this
8  * file should be synced to the other repository.
9  */
10 
11 #include <stdint.h>
12 #include <sys/types.h>
13 #include <soc/dramc_param_common.h>
14 #include <soc/dramc_soc.h>
15 
16 #define DRAMC_PARAM_HEADER_VERSION 8
17 
18 struct sdram_params {
19  u32 rank_num;
22 
23  /* duty */
29 
30  /* CBT */
35 
36  /* write leveling */
38 
39  /* Gating */
44 
45  /* TX perbit */
50 
51  /* rx datlat */
53 
54  /* RX perbit */
59 
60  /* TX OE */
63 };
64 
65 struct dramc_data {
66  struct ddr_base_info ddr_info;
68 };
69 
70 struct dramc_param {
72  void (*do_putc)(unsigned char c);
73  struct dramc_data dramc_datas;
74 };
75 
76 const struct sdram_info *get_sdram_config(void);
77 struct dramc_param *get_dramc_param_from_blob(void *blob);
78 void dump_param_header(const void *blob);
79 int validate_dramc_param(const void *blob);
80 int is_valid_dramc_param(const void *blob);
81 int initialize_dramc_param(void *blob);
82 #endif /* __SOC_MEDIATEK_MT8192_DRAMC_PARAM_H__ */
@ RANK_MAX
@ CHANNEL_MAX
int initialize_dramc_param(void *blob, u16 config)
Definition: dramc_param.c:33
int is_valid_dramc_param(const void *blob)
Definition: dramc_param.c:28
int validate_dramc_param(const void *blob)
Definition: dramc_param.c:11
struct dramc_param * get_dramc_param_from_blob(void *blob)
Definition: dramc_param.c:9
const struct sdram_info * get_sdram_config(void)
Definition: sdram_configs.c:85
void dump_param_header(const void *blob)
Definition: dramc_param.c:14
#define DQS_NUMBER_LP4
Definition: dramc_soc.h:52
#define DQS_BIT_NUMBER
Definition: dramc_soc.h:53
#define DQ_DATA_WIDTH_LP4
Definition: dramc_soc.h:54
#define DRAM_DFS_SHU_MAX
Definition: dramc_soc.h:50
uint32_t u32
Definition: stdint.h:51
uint16_t u16
Definition: stdint.h:48
int8_t s8
Definition: stdint.h:44
uint8_t u8
Definition: stdint.h:45
struct ddr_base_info ddr_info
Definition: dramc_param.h:71
struct sdram_params freq_params[DRAM_DFS_SHU_MAX]
Definition: dramc_param.h:72
struct dramc_param_header header
Definition: dramc_param.h:61
struct dramc_data dramc_datas
Definition: dramc_param.h:78
void(* do_putc)(unsigned char c)
Definition: dramc_param.h:62
Defines the SDRAM parameter structure.
Definition: emi.h:15
u16 tx_center_max[CHANNEL_MAX][RANK_MAX][DQS_NUMBER]
Definition: emi.h:42
u16 tx_win_center[CHANNEL_MAX][RANK_MAX][DQ_DATA_WIDTH]
Definition: emi.h:43
u8 cbt_cs_dly[CHANNEL_MAX][RANK_MAX]
Definition: emi.h:30
u8 rx_perbit_dqm[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:62
u8 gating_MCK[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:45
s8 duty_dq_delay[CHANNEL_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:31
u32 rank_num
Definition: emi.h:18
u16 tx_center_min[CHANNEL_MAX][RANK_MAX][DQS_NUMBER]
Definition: emi.h:41
u8 rx_perbit_dqs[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:61
u8 cbt_final_vref[CHANNEL_MAX][RANK_MAX]
Definition: emi.h:27
u8 cbt_ca_prebit_dly[CHANNEL_MAX][RANK_MAX][DQS_BIT_NUMBER]
Definition: dramc_param.h:39
u8 tx_oe_dq_mck[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:66
u8 gating_pass_count[CHANNEL_MAX][RANK_MAX][DQS_NUMBER]
Definition: emi.h:37
u8 gating_UI[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:46
u8 rx_perbit_dq[CHANNEL_MAX][RANK_MAX][DQ_DATA_WIDTH_LP4]
Definition: dramc_param.h:63
u16 delay_cell_timex100
Definition: dramc_param.h:26
s8 duty_clk_delay[CHANNEL_MAX]
Definition: emi.h:23
s8 duty_dqm_delay[CHANNEL_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:32
s8 duty_wck_delay[CHANNEL_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:26
u8 rx_datlat[CHANNEL_MAX][RANK_MAX]
Definition: emi.h:48
u8 gating_PI[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:47
u8 tx_oe_dq_ui[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:67
u8 rx_best_vref[CHANNEL_MAX][RANK_MAX][DQS_NUMBER_LP4]
Definition: dramc_param.h:60
u8 tx_window_vref[CHANNEL_MAX][RANK_MAX]
Definition: dramc_param.h:51
s8 duty_dqs_delay[CHANNEL_MAX][DQS_NUMBER]
Definition: emi.h:24
u16 num_dlycell_perT
Definition: dramc_param.h:25
u8 wr_level[CHANNEL_MAX][RANK_MAX][DQS_NUMBER]
Definition: emi.h:20
u8 cbt_cmd_dly[CHANNEL_MAX][RANK_MAX]
Definition: emi.h:29
#define c(value, pmcreg, dst_bits)
typedef void(X86APIP X86EMU_intrFuncs)(int num)