coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
verstage.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <amdblocks/gpio.h>
4 #include <baseboard/variants.h>
5 #include <psp_verstage.h>
7 
8 static void setup_gpio(void)
9 {
10  const struct soc_amd_gpio *gpios;
11  size_t num_gpios;
12 
13  printk(BIOS_DEBUG, "Setting GPIOs\n");
14  gpios = variant_early_gpio_table(&num_gpios);
15  gpio_configure_pads(gpios, num_gpios);
16  printk(BIOS_DEBUG, "GPIOs setup\n");
17 }
18 
20 {
21  setup_gpio();
22 }
23 
25 {
26  const struct soc_amd_gpio *gpios;
27  size_t num_gpios;
28 
29  if (!CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK))
30  return;
31 
32  gpios = variant_espi_gpio_table(&num_gpios);
33  gpio_configure_pads(gpios, num_gpios);
34 }
35 
37 {
38  const struct soc_amd_gpio *gpios;
39  size_t num_gpios;
40 
41  if (!CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK))
42  return;
43 
44  gpios = variant_tpm_gpio_table(&num_gpios);
45  gpio_configure_pads(gpios, num_gpios);
46 }
#define printk(level,...)
Definition: stdlib.h:16
@ CONFIG
Definition: dsi_common.h:201
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
const struct pad_config * variant_early_gpio_table(size_t *num)
Definition: gpio.c:204
const __weak struct soc_amd_gpio * variant_espi_gpio_table(size_t *size)
Definition: gpio.c:348
const __weak struct soc_amd_gpio * variant_tpm_gpio_table(size_t *size)
Definition: gpio.c:354
void verstage_mainboard_tpm_init(void)
Definition: verstage.c:44
void verstage_mainboard_early_init(void)
Definition: verstage.c:11
void verstage_mainboard_espi_init(void)
Definition: verstage.c:21
static void setup_gpio(void)
Definition: verstage.c:8
void gpio_configure_pads(const struct soc_amd_gpio *gpio_list_ptr, size_t size)
program a particular set of GPIO
Definition: gpio.c:307