aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/prodrive/hermes/bootblock.c
blob: 1426a552d465be1fbff5661ab4184e8e97674123 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* SPDX-License-Identifier: GPL-2.0-only */

#include <bootblock_common.h>
#include <console/console.h>
#include <soc/gpio.h>
#include <variant/gpio.h>
#include "gpio.h"

static void early_config_gpio(void)
{
	/* This is a hack for FSP because it does things in MemoryInit()
	 * which it shouldn't do. We have to prepare certain gpios here
	 * because of the brokenness in FSP. */
	size_t num = 0;
	const struct pad_config *early_gpio_table = get_early_gpio_table(&num);

	gpio_configure_pads(early_gpio_table, num);
}

void bootblock_mainboard_early_init(void)
{
	early_config_gpio();
}

void bootblock_mainboard_init(void)
{
	u8 bmc_hsi = (gpio_get(GPP_K13) << 3) |
		(gpio_get(GPP_K12) << 2) |
		(gpio_get(GPP_K14) << 1) |
		(gpio_get(GPP_K16) << 0);

	printk(BIOS_INFO, "BMC HSI 0x%x\n", bmc_hsi);
}