1
2
3
4
5
6
7
8
9#include <common.h>
10#include <i2c.h>
11
12#include <asm/fsl_ddr_sdram.h>
13#include <asm/fsl_ddr_dimm_params.h>
14
15static void
16get_spd(ddr2_spd_eeprom_t *spd, unsigned char i2c_address)
17{
18 i2c_read(i2c_address, 0, 1, (uchar *)spd, sizeof(ddr2_spd_eeprom_t));
19}
20
21unsigned int fsl_ddr_get_mem_data_rate(void)
22{
23 return get_ddr_freq(0);
24}
25
26void fsl_ddr_get_spd(ddr2_spd_eeprom_t *ctrl_dimms_spd,
27 unsigned int ctrl_num)
28{
29 unsigned int i;
30
31 if (ctrl_num) {
32 printf("%s unexpected ctrl_num = %u\n", __FUNCTION__, ctrl_num);
33 return;
34 }
35
36 for (i = 0; i < CONFIG_DIMM_SLOTS_PER_CTLR; i++) {
37 get_spd(&(ctrl_dimms_spd[i]), SPD_EEPROM_ADDRESS);
38 }
39}
40
41void fsl_ddr_board_options(memctl_options_t *popts,
42 dimm_params_t *pdimm,
43 unsigned int ctrl_num)
44{
45
46
47
48
49
50
51
52
53
54
55
56 popts->clk_adjust = 7;
57
58
59
60
61
62
63 popts->cpo_override = 10;
64
65
66
67
68
69
70
71
72
73
74
75
76 popts->write_data_delay = 3;
77
78
79
80
81
82 popts->half_strength_driver_enable = 0;
83}
84