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_MT8186_DRAMC_PARAM_H__
4 #define __SOC_MEDIATEK_MT8186_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 1
17 
18 struct sdram_params {
19  /* Sometimes, we may need to compare params member
20  * between coreboot and blob for analysis. Here,
21  * add member size using xxxB.
22  */
23  /* 4 + 4 = 8B */
24  u32 rank_num;
27 
28  /* duty 16B */
33 
34  /* CBT 48B */
40 
41  /* write leveling 8B */
43 
44  /* Gating 32B */
49 
50  /* TX perbit 164B */
55 
56  /* rx datlat 4B */
58 
59  /* RX perbit 88B */
64 
65  /* TX OE 16B */
68 };
69 
70 struct dramc_data {
71  struct ddr_base_info ddr_info;
73 };
74 
75 struct dramc_param {
77  void (*do_putc)(unsigned char c);
78  struct dramc_data dramc_datas;
79 };
80 
81 const struct sdram_info *get_sdram_config(void);
82 struct dramc_param *get_dramc_param_from_blob(void *blob);
83 void dump_param_header(const void *blob);
84 int initialize_dramc_param(void *blob);
85 
86 #endif /* __SOC_MEDIATEK_MT8186_DRAMC_PARAM_H__ */
@ RANK_MAX
@ CHANNEL_MAX
int initialize_dramc_param(void *blob, u16 config)
Definition: dramc_param.c:33
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
u8 rx_datlat[CHANNEL_MAX][RANK_MAX]
Definition: emi.h:48
u8 cbt_clk_dly[CHANNEL_MAX][RANK_MAX]
Definition: emi.h:28
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)