coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
raminit.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3
#ifndef PINEVIEW_RAMINIT_H
4
#define PINEVIEW_RAMINIT_H
5
6
#define SYSINFO_DIMM_NOT_POPULATED 0x00
7
#define SYSINFO_DIMM_X16SS 0x01
8
#define SYSINFO_DIMM_X16DS 0x02
9
#define SYSINFO_DIMM_X8DS 0x05
10
#define SYSINFO_DIMM_X8DDS 0x06
11
12
enum
fsb_clk
{
13
FSB_CLOCK_667MHz
= 0,
14
FSB_CLOCK_800MHz
= 1,
15
};
16
17
enum
mem_clk
{
18
MEM_CLOCK_667MHz
= 0,
19
MEM_CLOCK_800MHz
= 1,
20
};
21
22
enum
ddr
{
23
DDR2
= 2,
24
DDR3
= 3,
25
};
26
27
enum
chip_width
{
/* as in DDR3 spd */
28
CHIP_WIDTH_x4
= 0,
29
CHIP_WIDTH_x8
= 1,
30
CHIP_WIDTH_x16
= 2,
31
CHIP_WIDTH_x32
= 3,
32
};
33
34
enum
chip_cap
{
/* as in DDR3 spd */
35
CHIP_CAP_256M
= 0,
36
CHIP_CAP_512M
= 1,
37
CHIP_CAP_1G
= 2,
38
CHIP_CAP_2G
= 3,
39
CHIP_CAP_4G
= 4,
40
CHIP_CAP_8G
= 5,
41
CHIP_CAP_16G
= 6,
42
};
43
44
struct
timings
{
45
unsigned
int
CAS
;
46
enum
fsb_clk
fsb_clock
;
47
enum
mem_clk
mem_clock
;
48
unsigned
int
tRAS
;
49
unsigned
int
tRP
;
50
unsigned
int
tRCD
;
51
unsigned
int
tWR
;
52
unsigned
int
tRFC
;
53
unsigned
int
tWTR
;
54
unsigned
int
tRRD
;
55
unsigned
int
tRTP
;
56
};
57
58
struct
dimminfo
{
59
unsigned
int
card_type
;
/* 0x0: unpopulated,
60
0xa - 0xf: raw card type A - F */
61
u8
type
;
62
enum
chip_width
width
;
63
enum
chip_cap
chip_capacity
;
64
unsigned
int
page_size
;
/* of whole DIMM in Bytes (4096 or 8192) */
65
unsigned
int
sides
;
66
unsigned
int
banks
;
67
unsigned
int
ranks
;
68
unsigned
int
rows
;
69
unsigned
int
cols
;
70
unsigned
int
cas_latencies
;
71
unsigned
int
tAAmin
;
72
unsigned
int
tCKmin
;
73
unsigned
int
tWR
;
74
unsigned
int
tRP
;
75
unsigned
int
tRCD
;
76
unsigned
int
tRAS
;
77
unsigned
int
rank_capacity_mb
;
/* per rank in Megabytes */
78
u8
spd_data
[256];
79
};
80
81
struct
pllparam
{
82
u8
kcoarse
[2][72];
83
u8
pi
[2][72];
84
u8
dben
[2][72];
85
u8
dbsel
[2][72];
86
u8
clkdelay
[2][72];
87
};
88
89
struct
sysinfo
{
90
u8
maxpi
;
91
u8
pioffset
;
92
u8
pi
[8];
93
u16
coarsectrl
;
94
u16
coarsedelay
;
95
u16
mediumphase
;
96
u16
readptrdelay
;
97
98
int
txt_enabled
;
99
int
cores
;
100
int
boot_path
;
101
int
max_ddr2_mhz
;
102
int
max_ddr3_mt
;
103
int
max_fsb_mhz
;
104
int
max_render_mhz
;
105
int
enable_igd
;
106
int
enable_peg
;
107
u16
ggc
;
108
109
int
dimm_config
[2];
110
int
dimms_per_ch
;
111
int
spd_type
;
112
int
channel_capacity
[2];
113
struct
timings
selected_timings
;
114
struct
dimminfo
dimms
[4];
115
u8
spd_map
[4];
116
117
u8
nodll
;
118
u8
async
;
119
u8
dt0mode
;
120
u8
mvco4x
;
/* 0 (8x) or 1 (4x) */
121
};
122
123
void
sdram_initialize
(
int
boot_path,
const
u8
*sdram_addresses);
124
125
#endif
/* PINEVIEW_RAMINIT_H */
sdram_initialize
void sdram_initialize(void)
Definition:
raminit.c:1692
fsb_clk
fsb_clk
Definition:
raminit.h:12
FSB_CLOCK_800MHz
@ FSB_CLOCK_800MHz
Definition:
raminit.h:14
FSB_CLOCK_667MHz
@ FSB_CLOCK_667MHz
Definition:
raminit.h:13
chip_cap
chip_cap
Definition:
raminit.h:34
CHIP_CAP_1G
@ CHIP_CAP_1G
Definition:
raminit.h:37
CHIP_CAP_4G
@ CHIP_CAP_4G
Definition:
raminit.h:39
CHIP_CAP_512M
@ CHIP_CAP_512M
Definition:
raminit.h:36
CHIP_CAP_8G
@ CHIP_CAP_8G
Definition:
raminit.h:40
CHIP_CAP_2G
@ CHIP_CAP_2G
Definition:
raminit.h:38
CHIP_CAP_256M
@ CHIP_CAP_256M
Definition:
raminit.h:35
CHIP_CAP_16G
@ CHIP_CAP_16G
Definition:
raminit.h:41
mem_clk
mem_clk
Definition:
raminit.h:17
MEM_CLOCK_667MHz
@ MEM_CLOCK_667MHz
Definition:
raminit.h:18
MEM_CLOCK_800MHz
@ MEM_CLOCK_800MHz
Definition:
raminit.h:19
ddr
ddr
Definition:
raminit.h:22
DDR3
@ DDR3
Definition:
raminit.h:24
DDR2
@ DDR2
Definition:
raminit.h:23
chip_width
chip_width
Definition:
raminit.h:27
CHIP_WIDTH_x32
@ CHIP_WIDTH_x32
Definition:
raminit.h:31
CHIP_WIDTH_x8
@ CHIP_WIDTH_x8
Definition:
raminit.h:29
CHIP_WIDTH_x4
@ CHIP_WIDTH_x4
Definition:
raminit.h:28
CHIP_WIDTH_x16
@ CHIP_WIDTH_x16
Definition:
raminit.h:30
u16
uint16_t u16
Definition:
stdint.h:48
u8
uint8_t u8
Definition:
stdint.h:45
dimminfo
Definition:
raminit.h:58
dimminfo::cols
unsigned int cols
Definition:
raminit.h:69
dimminfo::tWR
unsigned int tWR
Definition:
raminit.h:73
dimminfo::rows
unsigned int rows
Definition:
raminit.h:68
dimminfo::tAAmin
unsigned int tAAmin
Definition:
raminit.h:71
dimminfo::type
u8 type
Definition:
raminit.h:61
dimminfo::card_type
unsigned int card_type
Definition:
raminit.h:59
dimminfo::ranks
unsigned int ranks
Definition:
raminit.h:67
dimminfo::spd_data
u8 spd_data[256]
Definition:
raminit.h:78
dimminfo::tRAS
unsigned int tRAS
Definition:
raminit.h:76
dimminfo::rank_capacity_mb
unsigned int rank_capacity_mb
Definition:
raminit.h:77
dimminfo::page_size
unsigned int page_size
Definition:
raminit.h:64
dimminfo::tRP
unsigned int tRP
Definition:
raminit.h:74
dimminfo::width
enum chip_width width
Definition:
raminit.h:62
dimminfo::chip_capacity
enum chip_cap chip_capacity
Definition:
raminit.h:63
dimminfo::tCKmin
unsigned int tCKmin
Definition:
raminit.h:72
dimminfo::sides
unsigned int sides
Definition:
raminit.h:65
dimminfo::tRCD
unsigned int tRCD
Definition:
raminit.h:75
dimminfo::banks
unsigned int banks
Definition:
raminit.h:66
dimminfo::cas_latencies
unsigned int cas_latencies
Definition:
raminit.h:70
pllparam
Definition:
raminit.h:81
pllparam::clkdelay
u8 clkdelay[2][72]
Definition:
raminit.h:86
pllparam::dben
u8 dben[2][72]
Definition:
raminit.h:84
pllparam::kcoarse
u8 kcoarse[2][72]
Definition:
raminit.h:82
pllparam::pi
u8 pi[2][72]
Definition:
raminit.h:83
pllparam::dbsel
u8 dbsel[2][72]
Definition:
raminit.h:85
sysinfo
Definition:
state_machine.h:28
sysinfo::txt_enabled
int txt_enabled
Definition:
raminit.h:98
sysinfo::channel_capacity
int channel_capacity[2]
Definition:
raminit.h:112
sysinfo::mvco4x
u8 mvco4x
Definition:
raminit.h:120
sysinfo::dimms
struct dimminfo dimms[4]
Definition:
raminit.h:114
sysinfo::max_render_mhz
int max_render_mhz
Definition:
raminit.h:104
sysinfo::nodll
u8 nodll
Definition:
raminit.h:117
sysinfo::coarsedelay
u16 coarsedelay
Definition:
raminit.h:94
sysinfo::readptrdelay
u16 readptrdelay
Definition:
raminit.h:96
sysinfo::maxpi
u8 maxpi
Definition:
raminit.h:90
sysinfo::async
u8 async
Definition:
raminit.h:118
sysinfo::max_ddr2_mhz
int max_ddr2_mhz
Definition:
raminit.h:101
sysinfo::enable_peg
int enable_peg
Definition:
raminit.h:106
sysinfo::cores
int cores
Definition:
raminit.h:99
sysinfo::pioffset
u8 pioffset
Definition:
raminit.h:91
sysinfo::spd_type
int spd_type
Definition:
raminit.h:111
sysinfo::max_fsb_mhz
int max_fsb_mhz
Definition:
raminit.h:103
sysinfo::dimm_config
int dimm_config[2]
Definition:
raminit.h:109
sysinfo::spd_map
u8 spd_map[4]
Definition:
raminit.h:115
sysinfo::enable_igd
int enable_igd
Definition:
raminit.h:105
sysinfo::pi
u8 pi[8]
Definition:
raminit.h:92
sysinfo::dimms_per_ch
int dimms_per_ch
Definition:
raminit.h:110
sysinfo::dt0mode
u8 dt0mode
Definition:
raminit.h:119
sysinfo::max_ddr3_mt
int max_ddr3_mt
Definition:
raminit.h:102
sysinfo::ggc
u16 ggc
Definition:
raminit.h:107
sysinfo::coarsectrl
u16 coarsectrl
Definition:
raminit.h:93
sysinfo::mediumphase
u16 mediumphase
Definition:
raminit.h:95
sysinfo::selected_timings
struct timings selected_timings
Definition:
raminit.h:113
sysinfo::boot_path
int boot_path
Definition:
raminit.h:100
timings
Definition:
raminit.c:273
timings::fsb_clock
enum fsb_clk fsb_clock
Definition:
raminit.h:46
timings::mem_clock
enum mem_clk mem_clock
Definition:
raminit.h:47
timings::tRTP
unsigned int tRTP
Definition:
raminit.h:55
timings::tRP
unsigned int tRP
Definition:
raminit.h:49
timings::tRRD
unsigned int tRRD
Definition:
raminit.h:54
timings::tWR
unsigned int tWR
Definition:
raminit.h:51
timings::tWTR
unsigned int tWTR
Definition:
raminit.h:53
timings::tRCD
unsigned int tRCD
Definition:
raminit.h:50
timings::tRFC
unsigned int tRFC
Definition:
raminit.h:52
timings::CAS
unsigned int CAS
Definition:
raminit.h:45
timings::tRAS
unsigned int tRAS
Definition:
raminit.h:48
src
northbridge
intel
pineview
raminit.h
Generated by
1.9.1