aboutsummaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block/lpc
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common/block/lpc')
-rw-r--r--src/soc/amd/common/block/lpc/Kconfig6
-rw-r--r--src/soc/amd/common/block/lpc/lpc_util.c14
2 files changed, 20 insertions, 0 deletions
diff --git a/src/soc/amd/common/block/lpc/Kconfig b/src/soc/amd/common/block/lpc/Kconfig
index b0d59a55f4..3cfbfe5dcd 100644
--- a/src/soc/amd/common/block/lpc/Kconfig
+++ b/src/soc/amd/common/block/lpc/Kconfig
@@ -3,3 +3,9 @@ config SOC_AMD_COMMON_BLOCK_LPC
default n
help
Select this option to use the traditional LPC-ISA bridge at D14F3.
+
+config PROVIDES_ROM_SHARING
+ bool
+ default n
+ help
+ Select this option if the LPC bridge supports ROM sharing.
diff --git a/src/soc/amd/common/block/lpc/lpc_util.c b/src/soc/amd/common/block/lpc/lpc_util.c
index 571c6fe8ed..45b252f99b 100644
--- a/src/soc/amd/common/block/lpc/lpc_util.c
+++ b/src/soc/amd/common/block/lpc/lpc_util.c
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* This file is part of the coreboot project. */
+#include <assert.h>
#include <stdint.h>
#include <device/device.h>
#include <device/pci_ops.h>
@@ -300,6 +301,19 @@ void lpc_enable_spi_prefetch(void)
pci_write_config32(_LPCB_DEV, LPC_ROM_DMA_EC_HOST_CONTROL, dword);
}
+void lpc_disable_spi_rom_sharing(void)
+{
+ u8 byte;
+
+ if (!CONFIG(PROVIDES_ROM_SHARING))
+ dead_code();
+
+ byte = pci_read_config8(_LPCB_DEV, LPC_PCI_CONTROL);
+ byte &= ~VW_ROM_SHARING_EN;
+ byte &= ~EXT_ROM_SHARING_EN;
+ pci_write_config8(_LPCB_DEV, LPC_PCI_CONTROL, byte);
+}
+
uintptr_t lpc_get_spibase(void)
{
u32 base;