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>
7 
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 
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 {
39  }
40 
41 }
42 
44 {
45  /* FIXME: make a proper SMBUS mux support. */
46  /* Set the SMBUS mux to the eeprom */
48 }
#define printk(level,...)
Definition: stdlib.h:16
void early_hybrid_graphics(bool *enable_igd, bool *enable_peg)
Definition: romstage.c:17
@ CONFIG
Definition: dsi_common.h:201
int get_gpio(int community_base, int pad0_offset)
Definition: gpio_support.c:148
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
void mb_pre_raminit_setup(sysinfo_t *sysinfo)
Definition: romstage.c:24
static void hybrid_graphics_init(sysinfo_t *sysinfo)
Definition: romstage.c:8
void get_mb_spd_addrmap(u8 spd_addrmap[4])
Definition: romstage.c:18
void mb_post_raminit_setup(void)
Definition: romstage.c:43
#define GPIO_LEVEL_LOW
Definition: gpio.h:53
void set_gpio(int gpio_num, int value)
Definition: gpio.c:125
uint8_t u8
Definition: stdint.h:45
int enable_peg
Definition: raminit.h:106
int enable_igd
Definition: raminit.h:105