summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/southbridge/nvidia/ck804/Kconfig4
-rw-r--r--src/southbridge/nvidia/ck804/early_setup.c6
-rw-r--r--src/southbridge/nvidia/ck804/early_setup_car.c6
3 files changed, 16 insertions, 0 deletions
diff --git a/src/southbridge/nvidia/ck804/Kconfig b/src/southbridge/nvidia/ck804/Kconfig
index 83c427c3df..4126355c5e 100644
--- a/src/southbridge/nvidia/ck804/Kconfig
+++ b/src/southbridge/nvidia/ck804/Kconfig
@@ -30,6 +30,10 @@ config CK804B_PCI_E_X
int
default 4
+config CK804_PCIE_PME_WAKE
+ bool "Enable system wake on PCIe PME# signal"
+ default n
+
config CK804_NUM
int
default 1
diff --git a/src/southbridge/nvidia/ck804/early_setup.c b/src/southbridge/nvidia/ck804/early_setup.c
index 84b6bfb520..ecbf219597 100644
--- a/src/southbridge/nvidia/ck804/early_setup.c
+++ b/src/southbridge/nvidia/ck804/early_setup.c
@@ -288,6 +288,12 @@ static void ck804_early_setup(void)
#endif
#endif
+#if IS_ENABLED(CONFIG_CK804_PCIE_PME_WAKE)
+ RES_PCI_IO, PCI_ADDR(0, 1, 0, 0xe4), 0xffffffff, 0x00400000,
+#else
+ RES_PCI_IO, PCI_ADDR(0, 1, 0, 0xe4), 0xffbfffff, 0x00000000,
+#endif
+
#ifdef CK804_MB_SETUP
CK804_MB_SETUP
#endif
diff --git a/src/southbridge/nvidia/ck804/early_setup_car.c b/src/southbridge/nvidia/ck804/early_setup_car.c
index 53f2c5ef1b..d5a9956d78 100644
--- a/src/southbridge/nvidia/ck804/early_setup_car.c
+++ b/src/southbridge/nvidia/ck804/early_setup_car.c
@@ -211,6 +211,12 @@ static void ck804_early_setup(unsigned ck804_num, unsigned *busn,
RES_PORT_IO_8, SYSCTRL_IO_BASE + 0xc0 + 0x0d, ~(0xff), ((0 << 4) | (2 << 2) | (0 << 0)),
RES_PORT_IO_8, SYSCTRL_IO_BASE + 0xc0 + 0x1a, ~(0xff), ((0 << 4) | (2 << 2) | (0 << 0)),
#endif
+
+#if IS_ENABLED(CONFIG_CK804_PCIE_PME_WAKE)
+ RES_PCI_IO, PCI_ADDR(0, 1, 0, 0xe4), 0xffffffff, 0x00400000,
+#else
+ RES_PCI_IO, PCI_ADDR(0, 1, 0, 0xe4), 0xffbfffff, 0x00000000,
+#endif
};
static const unsigned int ctrl_conf_multiple[] = {