coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ddr.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <soc/ddr.h>
4 
6 {
7  /* SPD Byte 11: Module Nominal Voltage, currently DDR4 only supports 1.2V.
8  Either Bit 0 or Bit 1 is set, return 1.2V */
9  if (DdrVoltage & 0x3)
10  return 1200;
11  return 0;
12 }
13 
15 {
16  if (commonTck <= DDR_8400_TCK_MIN)
17  return 8400;
18  else if (commonTck <= DDR_6400_TCK_MIN)
19  return 6400;
20  else if (commonTck <= DDR_6000_TCK_MIN)
21  return 6000;
22  else if (commonTck <= DDR_5600_TCK_MIN)
23  return 5600;
24  else if (commonTck <= DDR_5200_TCK_MIN)
25  return 5200;
26  else if (commonTck <= DDR_4800_TCK_MIN)
27  return 4800;
28  else if (commonTck <= DDR_4400_TCK_MIN)
29  return 4400;
30  else if (commonTck <= DDR_4266_TCK_MIN)
31  return 4266;
32  else if (commonTck <= DDR_4200_TCK_MIN)
33  return 4200;
34  else if (commonTck <= DDR_4000_TCK_MIN)
35  return 4000;
36  else if (commonTck <= DDR_3800_TCK_MIN)
37  return 3800;
38  else if (commonTck <= DDR_3733_TCK_MIN)
39  return 3733;
40  else if (commonTck <= DDR_3600_TCK_MIN)
41  return 3600;
42  else if (commonTck <= DDR_3466_TCK_MIN)
43  return 3466;
44  else if (commonTck <= DDR_3400_TCK_MIN)
45  return 3400;
46  else if (commonTck <= DDR_3200_TCK_MIN)
47  return 3200;
48  else if (commonTck <= DDR_3000_TCK_MIN)
49  return 3000;
50  else if (commonTck <= DDR_2933_TCK_MIN)
51  return 2933;
52  else if (commonTck <= DDR_2800_TCK_MIN)
53  return 2800;
54  else if (commonTck <= DDR_2666_TCK_MIN)
55  return 2666;
56  else if (commonTck <= DDR_2600_TCK_MIN)
57  return 2600;
58  else if (commonTck <= DDR_2400_TCK_MIN)
59  return 2400;
60  else if (commonTck <= DDR_2200_TCK_MIN)
61  return 2200;
62  else if (commonTck <= DDR_2133_TCK_MIN)
63  return 2133;
64  else if (commonTck <= DDR_2000_TCK_MIN)
65  return 2000;
66  else if (commonTck <= DDR_1866_TCK_MIN)
67  return 1866;
68  else if (commonTck <= DDR_1800_TCK_MIN)
69  return 1800;
70  else if (commonTck <= DDR_1600_TCK_MIN)
71  return 1600;
72  else if (commonTck <= DDR_1400_TCK_MIN)
73  return 1400;
74  else if (commonTck <= DDR_1333_TCK_MIN)
75  return 1333;
76  else if (commonTck <= DDR_1200_TCK_MIN)
77  return 1200;
78  else if (commonTck <= DDR_1066_TCK_MIN)
79  return 1066;
80  else if (commonTck <= DDR_1000_TCK_MIN)
81  return 1000;
82  else
83  return 800;
84 }
uint32_t get_ddr_voltage(uint8_t DdrVoltage)
Definition: ddr.c:5
uint16_t get_max_memory_speed(uint32_t commonTck)
Definition: ddr.c:14
#define DDR_3600_TCK_MIN
Definition: ddr.h:30
#define DDR_6000_TCK_MIN
Definition: ddr.h:40
#define DDR_4200_TCK_MIN
Definition: ddr.h:34
#define DDR_4266_TCK_MIN
Definition: ddr.h:35
#define DDR_4400_TCK_MIN
Definition: ddr.h:36
#define DDR_2666_TCK_MIN
Definition: ddr.h:23
#define DDR_2400_TCK_MIN
Definition: ddr.h:21
#define DDR_5200_TCK_MIN
Definition: ddr.h:38
#define DDR_4800_TCK_MIN
Definition: ddr.h:37
#define DDR_6400_TCK_MIN
Definition: ddr.h:41
#define DDR_1400_TCK_MIN
Definition: ddr.h:14
#define DDR_1866_TCK_MIN
Definition: ddr.h:17
#define DDR_1800_TCK_MIN
Definition: ddr.h:16
#define DDR_2200_TCK_MIN
Definition: ddr.h:20
#define DDR_2600_TCK_MIN
Definition: ddr.h:22
#define DDR_4000_TCK_MIN
Definition: ddr.h:33
#define DDR_2133_TCK_MIN
Definition: ddr.h:19
#define DDR_1333_TCK_MIN
Definition: ddr.h:13
#define DDR_3466_TCK_MIN
Definition: ddr.h:29
#define DDR_3400_TCK_MIN
Definition: ddr.h:28
#define DDR_1600_TCK_MIN
Definition: ddr.h:15
#define DDR_2000_TCK_MIN
Definition: ddr.h:18
#define DDR_1000_TCK_MIN
Definition: ddr.h:10
#define DDR_3200_TCK_MIN
Definition: ddr.h:27
#define DDR_1200_TCK_MIN
Definition: ddr.h:12
#define DDR_3800_TCK_MIN
Definition: ddr.h:32
#define DDR_3733_TCK_MIN
Definition: ddr.h:31
#define DDR_1066_TCK_MIN
Definition: ddr.h:11
#define DDR_2933_TCK_MIN
Definition: ddr.h:25
#define DDR_5600_TCK_MIN
Definition: ddr.h:39
#define DDR_3000_TCK_MIN
Definition: ddr.h:26
#define DDR_8400_TCK_MIN
Definition: ddr.h:46
#define DDR_2800_TCK_MIN
Definition: ddr.h:24
unsigned short uint16_t
Definition: stdint.h:11
unsigned int uint32_t
Definition: stdint.h:14
unsigned char uint8_t
Definition: stdint.h:8