coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
bootblock.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <bootblock_common.h>
4 #include <device/pci_def.h>
5 #include <device/pci_ops.h>
6 #include <intelblocks/lpc_lib.h>
7 #include <intelblocks/pcr.h>
8 #include <soc/pci_devs.h>
9 #include <soc/pcr_ids.h>
12 #include "include/gpio.h"
13 
15 {
16  /* Configure Lewisburg PCH GPIOs */
18 
19  /* Enable COM1 only */
20  pcr_write32(PID_DMI, 0x2770, 0);
21  pcr_write32(PID_DMI, 0x2774, 1);
22 
23  /* Decode for SuperIO (0x2e) and COM1 (0x3f8) */
24  pci_s_write_config32(PCH_DEV_LPC, 0x80, (1 << 28) | (1 << 16));
25 
26  const pnp_devfn_t serial_dev = PNP_DEV(0x2e, AST2400_SUART1);
27  aspeed_enable_serial(serial_dev, CONFIG_TTYS0_BASE);
28 }
#define PID_DMI
Definition: pcr_ids.h:23
void aspeed_enable_serial(pnp_devfn_t dev, uint16_t iobase)
Definition: early_serial.c:45
#define AST2400_SUART1
Definition: ast2400.h:6
#define ARRAY_SIZE(a)
Definition: helpers.h:12
void pcr_write32(uint8_t pid, uint16_t offset, uint32_t indata)
Definition: pcr.c:124
__weak void bootblock_mainboard_early_init(void)
Definition: bootblock.c:16
static const struct pad_config gpio_table[]
Definition: bootblock.c:11
static __always_inline void pci_s_write_config32(pci_devfn_t dev, uint16_t reg, uint32_t value)
Definition: pci_io_cfg.h:110
#define PNP_DEV(PORT, FUNC)
Definition: pnp_type.h:10
u32 pnp_devfn_t
Definition: pnp_type.h: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
#define PCH_DEV_LPC
Definition: pci_devs.h:224