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 <
console/console.h
>
4
#include <
southbridge/intel/common/gpio.h
>
5
#include <
northbridge/intel/gm45/gm45.h
>
6
#include <
drivers/lenovo/hybrid_graphics/hybrid_graphics.h
>
7
8
static
void
hybrid_graphics_init
(
sysinfo_t
*
sysinfo
)
9
{
10
bool
peg, igd;
11
12
early_hybrid_graphics
(&igd, &peg);
13
14
sysinfo
->
enable_igd
= igd;
15
sysinfo
->
enable_peg
= peg;
16
}
17
18
void
get_mb_spd_addrmap
(
u8
spd_addrmap[4])
19
{
20
spd_addrmap[0] = 0x50;
21
spd_addrmap[2] = 0x51;
22
}
23
24
void
mb_pre_raminit_setup
(
sysinfo_t
*
sysinfo
)
25
{
26
if
(
CONFIG
(BOARD_LENOVO_R500)) {
27
int
use_integrated =
get_gpio
(21);
28
printk
(
BIOS_DEBUG
,
"R500 variant found with an %s GPU\n"
,
29
use_integrated ?
"integrated"
:
"discrete"
);
30
if
(use_integrated) {
31
sysinfo
->
enable_igd
= 1;
32
sysinfo
->
enable_peg
= 0;
33
}
else
{
34
sysinfo
->
enable_igd
= 0;
35
sysinfo
->
enable_peg
= 1;
36
}
37
}
else
{
38
hybrid_graphics_init
(
sysinfo
);
39
}
40
41
}
42
43
void
mb_post_raminit_setup
(
void
)
44
{
45
/* FIXME: make a proper SMBUS mux support. */
46
/* Set the SMBUS mux to the eeprom */
47
set_gpio
(42,
GPIO_LEVEL_LOW
);
48
}
printk
#define printk(level,...)
Definition:
stdlib.h:16
console.h
early_hybrid_graphics
void early_hybrid_graphics(bool *enable_igd, bool *enable_peg)
Definition:
romstage.c:17
CONFIG
@ CONFIG
Definition:
dsi_common.h:201
gm45.h
get_gpio
int get_gpio(int community_base, int pad0_offset)
Definition:
gpio_support.c:148
hybrid_graphics.h
BIOS_DEBUG
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition:
loglevel.h:128
mb_pre_raminit_setup
void mb_pre_raminit_setup(sysinfo_t *sysinfo)
Definition:
romstage.c:24
hybrid_graphics_init
static void hybrid_graphics_init(sysinfo_t *sysinfo)
Definition:
romstage.c:8
get_mb_spd_addrmap
void get_mb_spd_addrmap(u8 spd_addrmap[4])
Definition:
romstage.c:18
mb_post_raminit_setup
void mb_post_raminit_setup(void)
Definition:
romstage.c:43
GPIO_LEVEL_LOW
#define GPIO_LEVEL_LOW
Definition:
gpio.h:53
set_gpio
void set_gpio(int gpio_num, int value)
Definition:
gpio.c:125
gpio.h
u8
uint8_t u8
Definition:
stdint.h:45
sysinfo_t
Definition:
gm45.h:109
sysinfo
Definition:
state_machine.h:28
sysinfo::enable_peg
int enable_peg
Definition:
raminit.h:106
sysinfo::enable_igd
int enable_igd
Definition:
raminit.h:105
src
mainboard
lenovo
t400
romstage.c
Generated by
1.9.1