coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
romstage_fsp_params.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
#include <
assert.h
>
3
#include <
console/console.h
>
4
#include <fsp/api.h>
5
#include <soc/romstage.h>
6
#include <
spd_bin.h
>
7
#include <soc/meminit.h>
8
#include <baseboard/variants.h>
9
#include "
board_id.h
"
10
#include "spd/spd.h"
11
12
static
uintptr_t
mainboard_get_spd_index
(
void
)
13
{
14
uint8_t
board_id
= (
get_board_id
() & 0xFF);
15
int
spd_index
;
16
17
printk
(
BIOS_INFO
,
"board id is 0x%x\n"
,
board_id
);
18
19
switch
(
board_id
) {
20
case
TGL_UP3_LP4_MICRON
:
21
case
TGL_UP4_LP4_MICRON
:
22
spd_index
=
SPD_ID_MICRON
;
23
break
;
24
case
TGL_UP3_LP4_SAMSUNG
:
25
case
TGL_UP4_LP4_SAMSUNG
:
26
spd_index
=
SPD_ID_SAMSUNG
;
27
break
;
28
case
TGL_UP3_LP4_HYNIX
:
29
case
TGL_UP4_LP4_HYNIX
:
30
spd_index
=
SPD_ID_HYNIX
;
31
break
;
32
default
:
33
spd_index
=
SPD_ID_MICRON
;
34
printk
(
BIOS_WARNING
,
"Invalid board_id 0x%x\n"
,
board_id
);
35
}
36
37
printk
(
BIOS_INFO
,
"SPD index is 0x%x\n"
,
spd_index
);
38
return
spd_index
;
39
}
40
41
void
mainboard_memory_init_params
(FSPM_UPD *mupd)
42
{
43
const
struct
mb_cfg
*
mem_config
=
variant_memory_params
();
44
const
struct
mem_spd
spd_info
= {
45
.topo =
MEM_TOPO_MEMORY_DOWN
,
46
.cbfs_index =
mainboard_get_spd_index
(),
47
};
48
bool
half_populated =
false
;
49
50
memcfg_init
(mupd,
mem_config
, &
spd_info
, half_populated);
51
52
}
memcfg_init
void memcfg_init(FSPM_UPD *memupd, const struct mb_cfg *mb_cfg, const struct mem_spd *spd_info, bool half_populated)
Definition:
meminit.c:238
assert.h
MEM_TOPO_MEMORY_DOWN
@ MEM_TOPO_MEMORY_DOWN
Definition:
meminit.h:25
printk
#define printk(level,...)
Definition:
stdlib.h:16
console.h
board_id
uint32_t board_id(void)
board_id() - Get the board version
Definition:
ec_boardid.c:6
mainboard_memory_init_params
void mainboard_memory_init_params(FSPM_UPD *memupd)
Definition:
romstage_fsp_params.c:45
mainboard_get_spd_index
static uintptr_t mainboard_get_spd_index(void)
Definition:
romstage_fsp_params.c:12
BIOS_INFO
#define BIOS_INFO
BIOS_INFO - Expected events.
Definition:
loglevel.h:113
BIOS_WARNING
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.
Definition:
loglevel.h:86
variant_memory_params
const struct mb_cfg *__weak variant_memory_params(void)
Definition:
memory.c:67
spd_index
static const int spd_index[32]
Definition:
memory.c:10
get_board_id
static uint8_t get_board_id(void)
Definition:
boardid.c:14
SPD_ID_HYNIX
#define SPD_ID_HYNIX
Definition:
spd.h:9
SPD_ID_MICRON
#define SPD_ID_MICRON
Definition:
spd.h:7
SPD_ID_SAMSUNG
#define SPD_ID_SAMSUNG
Definition:
spd.h:8
mem_config
static const struct mb_cfg mem_config
Definition:
memory.c:11
spd_bin.h
uintptr_t
unsigned long uintptr_t
Definition:
stdint.h:21
uint8_t
unsigned char uint8_t
Definition:
stdint.h:8
mb_cfg
Definition:
meminit.h:71
mem_spd
Definition:
meminit.h:37
spd_info
Definition:
spd.h:11
board_id.h
TGL_UP3_LP4_HYNIX
#define TGL_UP3_LP4_HYNIX
Definition:
board_id.h:11
TGL_UP4_LP4_HYNIX
#define TGL_UP4_LP4_HYNIX
Definition:
board_id.h:16
TGL_UP3_LP4_MICRON
#define TGL_UP3_LP4_MICRON
Definition:
board_id.h:12
TGL_UP3_LP4_SAMSUNG
#define TGL_UP3_LP4_SAMSUNG
Definition:
board_id.h:10
TGL_UP4_LP4_SAMSUNG
#define TGL_UP4_LP4_SAMSUNG
Definition:
board_id.h:15
TGL_UP4_LP4_MICRON
#define TGL_UP4_LP4_MICRON
Definition:
board_id.h:17
src
mainboard
intel
tglrvp
romstage_fsp_params.c
Generated by
1.9.1