coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
romstage.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
option.h
>
4
#include <
stdint.h
>
5
#include <
string.h
>
6
#include <
assert.h
>
7
#include <
spd_bin.h
>
8
#include <soc/romstage.h>
9
#include <fsp/soc_binding.h>
10
#include <
pc80/mc146818rtc.h
>
11
#include <variant.h>
12
13
/* Rcomp resistor */
14
static
const
u16
rcomp_resistors
[3] = { 121, 75, 100 };
15
16
/* Rcomp target */
17
static
const
u16
rcomp_targets
[5] = { 50, 26, 20, 20, 26 };
18
19
void
mainboard_memory_init_params
(FSPM_UPD *mupd)
20
{
21
FSP_M_CONFIG
*
const
memory_params
= &mupd->FspmConfig;
22
struct
spd_block
blk = {
23
.
addr_map
= { 0x50, 0x52 },
24
};
25
26
assert
(
sizeof
(
memory_params
->RcompResistor) ==
sizeof
(
rcomp_resistors
));
27
assert
(
sizeof
(
memory_params
->RcompTarget) ==
sizeof
(
rcomp_targets
));
28
29
memory_params
->MemorySpdDataLen = CONFIG_DIMM_SPD_SIZE;
30
get_spd_smbus
(&blk);
31
memory_params
->MemorySpdPtr00 = (
u32
)blk.
spd_array
[0];
32
memory_params
->MemorySpdPtr10 = (
u32
)blk.
spd_array
[1];
33
34
memcpy
(
memory_params
->RcompResistor,
rcomp_resistors
,
35
sizeof
(
memory_params
->RcompResistor));
36
memcpy
(
memory_params
->RcompTarget,
rcomp_targets
,
37
sizeof
(
memory_params
->RcompTarget));
38
39
memory_params
->DqPinsInterleaved =
true
;
40
memory_params
->CaVrefConfig = 2;
41
42
const
uint8_t
ht =
get_uint_option
(
"hyper_threading"
,
memory_params
->HyperThreading);
43
memory_params
->HyperThreading = ht;
44
45
variant_memory_init_params
(mupd);
46
}
memcpy
void * memcpy(void *dest, const void *src, size_t n)
Definition:
memcpy.c:7
assert.h
assert
#define assert(statement)
Definition:
assert.h:74
FSP_M_CONFIG
#define FSP_M_CONFIG
Definition:
fsp_upd.h:8
mainboard_memory_init_params
void mainboard_memory_init_params(FSPM_UPD *mupd)
Definition:
romstage.c:22
variant_memory_init_params
__weak void variant_memory_init_params(MEMORY_INIT_UPD *memory_params)
Definition:
romstage.c:18
rcomp_targets
static const u16 rcomp_targets[5]
Definition:
romstage.c:17
rcomp_resistors
static const u16 rcomp_resistors[3]
Definition:
romstage.c:14
mc146818rtc.h
get_uint_option
unsigned int get_uint_option(const char *name, const unsigned int fallback)
Definition:
option.c:116
option.h
spd_bin.h
get_spd_smbus
void get_spd_smbus(struct spd_block *blk)
Definition:
smbuslib.c:72
stdint.h
u32
uint32_t u32
Definition:
stdint.h:51
u16
uint16_t u16
Definition:
stdint.h:48
uint8_t
unsigned char uint8_t
Definition:
stdint.h:8
string.h
memory_params
Definition:
variants.h:31
spd_block
Definition:
ddr4.c:86
spd_block::addr_map
u8 addr_map[CONFIG_DIMM_MAX]
Definition:
spd_bin.h:39
spd_block::spd_array
u8 * spd_array[CONFIG_DIMM_MAX]
Definition:
spd_bin.h:40
src
mainboard
kontron
bsl6
romstage.c
Generated by
1.9.1