mb/system76/*: Enable dGPUs
Change-Id: Ib5bab02801407c8bf05e6028bf8f9fa7ccc5ecd0 Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
committed by
Jeremy Soller
parent
fa92d159d4
commit
2fae43f36a
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_ADDW1 || BOARD_SYSTEM76_ADDW2
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select DRIVERS_I2C_TAS5825M
|
select DRIVERS_I2C_TAS5825M
|
||||||
select EC_SYSTEM76_EC
|
select EC_SYSTEM76_EC
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <variant/gpio.h>
|
||||||
|
#include <drivers/gfx/nvidia/acpi/gpu.asl>
|
||||||
|
|
||||||
#define EC_GPE_SCI 0x03 /* GPP_K3 */
|
#define EC_GPE_SCI 0x03 /* GPP_K3 */
|
||||||
#define EC_GPE_SWI 0x06 /* GPP_K6 */
|
#define EC_GPE_SWI 0x06 /* GPP_K6 */
|
||||||
#include <ec/system76/ec/acpi/ec.asl>
|
#include <ec/system76/ec/acpi/ec.asl>
|
||||||
|
@@ -58,6 +58,13 @@ chip soc/intel/cannonlake
|
|||||||
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
||||||
register "PcieClkSrcUsage[8]" = "0x40"
|
register "PcieClkSrcUsage[8]" = "0x40"
|
||||||
register "PcieClkSrcClkReq[8]" = "8"
|
register "PcieClkSrcClkReq[8]" = "8"
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device pci 02.0 on end # Integrated Graphics Device
|
device pci 02.0 on end # Integrated Graphics Device
|
||||||
device pci 04.0 on # SA Thermal device
|
device pci 04.0 on # SA Thermal device
|
||||||
|
@@ -3,7 +3,15 @@
|
|||||||
#ifndef VARIANT_GPIO_H
|
#ifndef VARIANT_GPIO_H
|
||||||
#define VARIANT_GPIO_H
|
#define VARIANT_GPIO_H
|
||||||
|
|
||||||
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_F22
|
||||||
|
#define DGPU_PWR_EN GPP_F23
|
||||||
|
#define DGPU_GC6 GPP_C12
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
void variant_configure_early_gpios(void);
|
void variant_configure_early_gpios(void);
|
||||||
void variant_configure_gpios(void);
|
void variant_configure_gpios(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <drivers/gfx/nvidia/gpu.h>
|
||||||
#include <soc/cnl_memcfg_init.h>
|
#include <soc/cnl_memcfg_init.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
|
#include <variant/gpio.h>
|
||||||
|
|
||||||
static const struct cnl_mb_cfg memcfg = {
|
static const struct cnl_mb_cfg memcfg = {
|
||||||
.spd[0] = {
|
.spd[0] = {
|
||||||
@@ -20,6 +22,18 @@ static const struct cnl_mb_cfg memcfg = {
|
|||||||
|
|
||||||
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
{
|
{
|
||||||
|
const struct nvidia_gpu_config config = {
|
||||||
|
.power_gpio = DGPU_PWR_EN,
|
||||||
|
.reset_gpio = DGPU_RST_N,
|
||||||
|
.enable = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Enable dGPU power
|
||||||
|
nvidia_set_power(&config);
|
||||||
|
|
||||||
|
// Set primary display to internal graphics
|
||||||
|
memupd->FspmConfig.PrimaryDisplay = 0;
|
||||||
|
|
||||||
// Allow higher memory speeds
|
// Allow higher memory speeds
|
||||||
memupd->FspmConfig.SaOcSupport = 1;
|
memupd->FspmConfig.SaOcSupport = 1;
|
||||||
|
|
||||||
|
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_BONW14
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select EC_SYSTEM76_EC
|
select EC_SYSTEM76_EC
|
||||||
select EC_SYSTEM76_EC_BAT_THRESHOLDS
|
select EC_SYSTEM76_EC_BAT_THRESHOLDS
|
||||||
|
@@ -62,11 +62,13 @@ chip soc/intel/cannonlake
|
|||||||
register "PcieClkSrcUsage[7]" = "0x40"
|
register "PcieClkSrcUsage[7]" = "0x40"
|
||||||
register "PcieClkSrcClkReq[7]" = "7"
|
register "PcieClkSrcClkReq[7]" = "7"
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
device pci 00.0 on end # VGA controller
|
device pci 00.0 on end # VGA controller
|
||||||
device pci 00.1 on end # Audio device
|
device pci 00.1 on end # Audio device
|
||||||
device pci 00.2 on end # USB xHCI Host controller
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
device pci 00.3 on end # USB Type-C UCSI controller
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
end
|
end
|
||||||
|
end
|
||||||
# TODO: is this enough to disable iGPU?
|
# TODO: is this enough to disable iGPU?
|
||||||
device pci 02.0 off end # Integrated Graphics Device
|
device pci 02.0 off end # Integrated Graphics Device
|
||||||
device pci 04.0 on end # SA Thermal device
|
device pci 04.0 on end # SA Thermal device
|
||||||
|
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_GALP5
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select DRIVERS_INTEL_PMC
|
select DRIVERS_INTEL_PMC
|
||||||
select DRIVERS_INTEL_USB4_RETIMER
|
select DRIVERS_INTEL_USB4_RETIMER
|
||||||
@@ -56,4 +57,7 @@ config UART_FOR_CONSOLE
|
|||||||
config USE_PM_ACPI_TIMER
|
config USE_PM_ACPI_TIMER
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config DRIVERS_GFX_NVIDIA_BRIDGE
|
||||||
|
default 0x1c
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
40
src/mainboard/system76/galp5/acpi/dgpu.asl
Normal file
40
src/mainboard/system76/galp5/acpi/dgpu.asl
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0.RP05)
|
||||||
|
{
|
||||||
|
Device (DEV0)
|
||||||
|
{
|
||||||
|
Name(_ADR, 0x00000000)
|
||||||
|
|
||||||
|
// Fix SSID being lost across sleep by saving it
|
||||||
|
Name(NVSS, 0x00000000)
|
||||||
|
|
||||||
|
OperationRegion (PCIC, PCI_Config, 0x00, 0x50)
|
||||||
|
Field (PCIC, DwordAcc, NoLock, Preserve)
|
||||||
|
{
|
||||||
|
Offset (0x40),
|
||||||
|
SSID, 32,
|
||||||
|
}
|
||||||
|
|
||||||
|
Name (_PR0, Package () { PWRR })
|
||||||
|
Name (_PR3, Package () { PWRR })
|
||||||
|
PowerResource (PWRR, 0, 0)
|
||||||
|
{
|
||||||
|
Name (_STA, 1)
|
||||||
|
|
||||||
|
Method (_ON)
|
||||||
|
{
|
||||||
|
^^SSID = ^^NVSS
|
||||||
|
Printf("GPU _ON %o", ToHexString(^^SSID))
|
||||||
|
_STA = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_OFF)
|
||||||
|
{
|
||||||
|
^^NVSS = ^^SSID
|
||||||
|
Printf("GPU _OFF %o", ToHexString(^^SSID))
|
||||||
|
_STA = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include "dgpu.asl"
|
||||||
|
|
||||||
#define EC_GPE_SCI 0x6E
|
#define EC_GPE_SCI 0x6E
|
||||||
#define EC_GPE_SWI 0x6B
|
#define EC_GPE_SWI 0x6B
|
||||||
#include <ec/system76/ec/acpi/ec.asl>
|
#include <ec/system76/ec/acpi/ec.asl>
|
||||||
|
@@ -273,6 +273,13 @@ chip soc/intel/tigerlake
|
|||||||
register "srcclk_pin" = "2" # PEG_CLKREQ#
|
register "srcclk_pin" = "2" # PEG_CLKREQ#
|
||||||
device generic 0 on end
|
device generic 0 on end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device ref pcie_rp9 on
|
device ref pcie_rp9 on
|
||||||
# PCIe root port #9 x1, Clock 3 (CARD)
|
# PCIe root port #9 x1, Clock 3 (CARD)
|
||||||
|
@@ -5,6 +5,12 @@
|
|||||||
|
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_U4
|
||||||
|
#define DGPU_PWR_EN GPP_U5
|
||||||
|
#define DGPU_GC6 GPP_D2
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
|
|
||||||
static const struct pad_config early_gpio_table[] = {
|
static const struct pad_config early_gpio_table[] = {
|
||||||
PAD_CFG_NF(GPP_C20, UP_20K, DEEP, NF1), // UART2_RXD
|
PAD_CFG_NF(GPP_C20, UP_20K, DEEP, NF1), // UART2_RXD
|
||||||
PAD_CFG_NF(GPP_C21, UP_20K, DEEP, NF1), // UART2_TXD
|
PAD_CFG_NF(GPP_C21, UP_20K, DEEP, NF1), // UART2_TXD
|
||||||
@@ -222,4 +228,6 @@ static const struct pad_config gpio_table[] = {
|
|||||||
//PAD_CFG_GPO(GPP_U5, 0, DEEP), // DGPU_PWR_EN
|
//PAD_CFG_GPO(GPP_U5, 0, DEEP), // DGPU_PWR_EN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif /* __ACPI__ */
|
||||||
|
|
||||||
#endif /* MAINBOARD_GPIO_H */
|
#endif /* MAINBOARD_GPIO_H */
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include "gpio.h"
|
||||||
|
#include <drivers/gfx/nvidia/gpu.h>
|
||||||
#include <fsp/util.h>
|
#include <fsp/util.h>
|
||||||
#include <soc/meminit.h>
|
#include <soc/meminit.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
@@ -18,5 +20,20 @@ void mainboard_memory_init_params(FSPM_UPD *mupd)
|
|||||||
};
|
};
|
||||||
const bool half_populated = false;
|
const bool half_populated = false;
|
||||||
|
|
||||||
|
const struct nvidia_gpu_config config = {
|
||||||
|
.power_gpio = DGPU_PWR_EN,
|
||||||
|
.reset_gpio = DGPU_RST_N,
|
||||||
|
.enable = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Enable dGPU power
|
||||||
|
nvidia_set_power(&config);
|
||||||
|
|
||||||
|
// Set primary display to internal graphics
|
||||||
|
mupd->FspmConfig.PrimaryDisplay = 0;
|
||||||
|
|
||||||
|
// Allow memory clocks higher than 2933 MHz
|
||||||
|
mupd->FspmConfig.SaOcSupport = 1;
|
||||||
|
|
||||||
memcfg_init(mupd, &board_cfg, &spd_info, half_populated);
|
memcfg_init(mupd, &board_cfg, &spd_info, half_populated);
|
||||||
}
|
}
|
||||||
|
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_GAZE14 || BOARD_SYSTEM76_GAZE15
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select EC_SYSTEM76_EC
|
select EC_SYSTEM76_EC
|
||||||
select EC_SYSTEM76_EC_BAT_THRESHOLDS
|
select EC_SYSTEM76_EC_BAT_THRESHOLDS
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <variant/gpio.h>
|
||||||
|
#include <drivers/gfx/nvidia/acpi/gpu.asl>
|
||||||
|
|
||||||
#define EC_GPE_SCI 0x03 /* GPP_K3 */
|
#define EC_GPE_SCI 0x03 /* GPP_K3 */
|
||||||
#define EC_GPE_SWI 0x06 /* GPP_K6 */
|
#define EC_GPE_SWI 0x06 /* GPP_K6 */
|
||||||
#include <ec/system76/ec/acpi/ec.asl>
|
#include <ec/system76/ec/acpi/ec.asl>
|
||||||
|
@@ -57,6 +57,13 @@ chip soc/intel/cannonlake
|
|||||||
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
||||||
register "PcieClkSrcUsage[8]" = "0x40"
|
register "PcieClkSrcUsage[8]" = "0x40"
|
||||||
register "PcieClkSrcClkReq[8]" = "8"
|
register "PcieClkSrcClkReq[8]" = "8"
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device pci 02.0 on # Integrated Graphics Device
|
device pci 02.0 on # Integrated Graphics Device
|
||||||
register "gfx" = "GMA_DEFAULT_PANEL(0)"
|
register "gfx" = "GMA_DEFAULT_PANEL(0)"
|
||||||
|
@@ -3,7 +3,15 @@
|
|||||||
#ifndef VARIANT_GPIO_H
|
#ifndef VARIANT_GPIO_H
|
||||||
#define VARIANT_GPIO_H
|
#define VARIANT_GPIO_H
|
||||||
|
|
||||||
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_F22
|
||||||
|
#define DGPU_PWR_EN GPP_F23
|
||||||
|
#define DGPU_GC6 GPP_K21
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
void variant_configure_early_gpios(void);
|
void variant_configure_early_gpios(void);
|
||||||
void variant_configure_gpios(void);
|
void variant_configure_gpios(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <drivers/gfx/nvidia/gpu.h>
|
||||||
#include <soc/cnl_memcfg_init.h>
|
#include <soc/cnl_memcfg_init.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
|
#include <variant/gpio.h>
|
||||||
|
|
||||||
static const struct cnl_mb_cfg memcfg = {
|
static const struct cnl_mb_cfg memcfg = {
|
||||||
.spd[0] = {
|
.spd[0] = {
|
||||||
@@ -20,5 +22,17 @@ static const struct cnl_mb_cfg memcfg = {
|
|||||||
|
|
||||||
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
{
|
{
|
||||||
|
const struct nvidia_gpu_config config = {
|
||||||
|
.power_gpio = DGPU_PWR_EN,
|
||||||
|
.reset_gpio = DGPU_RST_N,
|
||||||
|
.enable = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Enable dGPU power
|
||||||
|
nvidia_set_power(&config);
|
||||||
|
|
||||||
|
// Set primary display to internal graphics
|
||||||
|
memupd->FspmConfig.PrimaryDisplay = 0;
|
||||||
|
|
||||||
cannonlake_memcfg_init(&memupd->FspmConfig, &memcfg);
|
cannonlake_memcfg_init(&memupd->FspmConfig, &memcfg);
|
||||||
}
|
}
|
||||||
|
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_GAZE16_3050 || BOARD_SYSTEM76_GAZE16_3060 || BOARD_SYSTEM76_GA
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select EC_SYSTEM76_EC
|
select EC_SYSTEM76_EC
|
||||||
select EC_SYSTEM76_EC_BAT_THRESHOLDS
|
select EC_SYSTEM76_EC_BAT_THRESHOLDS
|
||||||
|
40
src/mainboard/system76/gaze16/acpi/dgpu.asl
Normal file
40
src/mainboard/system76/gaze16/acpi/dgpu.asl
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0.PEG1)
|
||||||
|
{
|
||||||
|
Device (DEV0)
|
||||||
|
{
|
||||||
|
Name(_ADR, 0x00000000)
|
||||||
|
|
||||||
|
// Fix SSID being lost across sleep by saving it
|
||||||
|
Name(NVSS, 0x00000000)
|
||||||
|
|
||||||
|
OperationRegion (PCIC, PCI_Config, 0x00, 0x50)
|
||||||
|
Field (PCIC, DwordAcc, NoLock, Preserve)
|
||||||
|
{
|
||||||
|
Offset (0x40),
|
||||||
|
SSID, 32,
|
||||||
|
}
|
||||||
|
|
||||||
|
Name (_PR0, Package () { PWRR })
|
||||||
|
Name (_PR3, Package () { PWRR })
|
||||||
|
PowerResource (PWRR, 0, 0)
|
||||||
|
{
|
||||||
|
Name (_STA, 1)
|
||||||
|
|
||||||
|
Method (_ON)
|
||||||
|
{
|
||||||
|
^^SSID = ^^NVSS
|
||||||
|
Printf("GPU _ON %o", ToHexString(^^SSID))
|
||||||
|
_STA = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_OFF)
|
||||||
|
{
|
||||||
|
^^NVSS = ^^SSID
|
||||||
|
Printf("GPU _OFF %o", ToHexString(^^SSID))
|
||||||
|
_STA = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include "dgpu.asl"
|
||||||
|
|
||||||
#define EC_GPE_SCI 0x6E
|
#define EC_GPE_SCI 0x6E
|
||||||
#define EC_GPE_SWI 0x6B
|
#define EC_GPE_SWI 0x6B
|
||||||
#include <ec/system76/ec/acpi/ec.asl>
|
#include <ec/system76/ec/acpi/ec.asl>
|
||||||
|
@@ -1,8 +1,10 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <drivers/gfx/nvidia/gpu.h>
|
||||||
#include <fsp/util.h>
|
#include <fsp/util.h>
|
||||||
#include <soc/meminit.h>
|
#include <soc/meminit.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
|
#include <variant/gpio.h>
|
||||||
#include "variant.h"
|
#include "variant.h"
|
||||||
|
|
||||||
static const struct mb_cfg board_cfg = {
|
static const struct mb_cfg board_cfg = {
|
||||||
@@ -22,9 +24,21 @@ static const struct mem_spd spd_info = {
|
|||||||
|
|
||||||
void mainboard_memory_init_params(FSPM_UPD *mupd)
|
void mainboard_memory_init_params(FSPM_UPD *mupd)
|
||||||
{
|
{
|
||||||
|
const bool half_populated = false;
|
||||||
|
|
||||||
|
const struct nvidia_gpu_config config = {
|
||||||
|
.power_gpio = DGPU_PWR_EN,
|
||||||
|
.reset_gpio = DGPU_RST_N,
|
||||||
|
.enable = true,
|
||||||
|
};
|
||||||
|
|
||||||
variant_memory_init_params(mupd);
|
variant_memory_init_params(mupd);
|
||||||
|
|
||||||
const bool half_populated = false;
|
// Enable dGPU power
|
||||||
|
nvidia_set_power(&config);
|
||||||
|
|
||||||
|
// Set primary display to internal graphics
|
||||||
|
mupd->FspmConfig.PrimaryDisplay = 0;
|
||||||
|
|
||||||
memcfg_init(mupd, &board_cfg, &spd_info, half_populated);
|
memcfg_init(mupd, &board_cfg, &spd_info, half_populated);
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,12 @@
|
|||||||
|
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_F8
|
||||||
|
#define DGPU_PWR_EN GPP_F9
|
||||||
|
#define DGPU_GC6 GPP_K11
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
|
|
||||||
static const struct pad_config early_gpio_table[] = {
|
static const struct pad_config early_gpio_table[] = {
|
||||||
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), // UART2_RXD
|
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), // UART2_RXD
|
||||||
PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD
|
PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD
|
||||||
@@ -285,4 +291,6 @@ static const struct pad_config gpio_table[] = {
|
|||||||
PAD_CFG_GPI(GPP_S7, NONE, DEEP), // DMIC_DAT_PCH
|
PAD_CFG_GPI(GPP_S7, NONE, DEEP), // DMIC_DAT_PCH
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif /* __ACPI__ */
|
||||||
|
|
||||||
#endif /* VARIANT_GPIO_H */
|
#endif /* VARIANT_GPIO_H */
|
||||||
|
@@ -16,6 +16,13 @@ chip soc/intel/tigerlake
|
|||||||
register "srcclk_pin" = "0" # GFX_CLKREQ0#
|
register "srcclk_pin" = "0" # GFX_CLKREQ0#
|
||||||
device generic 0 on end
|
device generic 0 on end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device ref peg0 on
|
device ref peg0 on
|
||||||
# PCIe PEG0 x4, Clock 4 (SSD2)
|
# PCIe PEG0 x4, Clock 4 (SSD2)
|
||||||
|
@@ -5,6 +5,12 @@
|
|||||||
|
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_F8
|
||||||
|
#define DGPU_PWR_EN GPP_F9
|
||||||
|
#define DGPU_GC6 GPP_K11
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
|
|
||||||
static const struct pad_config early_gpio_table[] = {
|
static const struct pad_config early_gpio_table[] = {
|
||||||
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), // UART2_RXD
|
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), // UART2_RXD
|
||||||
PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD
|
PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), // UART2_TXD
|
||||||
@@ -285,4 +291,6 @@ static const struct pad_config gpio_table[] = {
|
|||||||
PAD_CFG_GPI(GPP_S7, NONE, DEEP), // MIC_DATA_PCH
|
PAD_CFG_GPI(GPP_S7, NONE, DEEP), // MIC_DATA_PCH
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif /* __ACPI__ */
|
||||||
|
|
||||||
#endif /* VARIANT_GPIO_H */
|
#endif /* VARIANT_GPIO_H */
|
||||||
|
@@ -16,6 +16,13 @@ chip soc/intel/tigerlake
|
|||||||
register "srcclk_pin" = "9" # PEG_CLKREQ#
|
register "srcclk_pin" = "9" # PEG_CLKREQ#
|
||||||
device generic 0 on end
|
device generic 0 on end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device ref peg0 on
|
device ref peg0 on
|
||||||
# PCIe PEG0 x4, Clock 7 (SSD1)
|
# PCIe PEG0 x4, Clock 7 (SSD1)
|
||||||
|
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_ORYP5
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select DRIVERS_I2C_TAS5825M
|
select DRIVERS_I2C_TAS5825M
|
||||||
select EC_SYSTEM76_EC
|
select EC_SYSTEM76_EC
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <mainboard/gpio.h>
|
||||||
|
#include <drivers/gfx/nvidia/acpi/gpu.asl>
|
||||||
|
|
||||||
#define EC_GPE_SCI 0x17 /* GPP_B23 */
|
#define EC_GPE_SCI 0x17 /* GPP_B23 */
|
||||||
#define EC_GPE_SWI 0x26 /* GPP_G6 */
|
#define EC_GPE_SWI 0x26 /* GPP_G6 */
|
||||||
#include <ec/system76/ec/acpi/ec.asl>
|
#include <ec/system76/ec/acpi/ec.asl>
|
||||||
|
@@ -65,6 +65,13 @@ chip soc/intel/cannonlake
|
|||||||
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
||||||
register "PcieClkSrcUsage[8]" = "0x40"
|
register "PcieClkSrcUsage[8]" = "0x40"
|
||||||
register "PcieClkSrcClkReq[8]" = "8"
|
register "PcieClkSrcClkReq[8]" = "8"
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device pci 02.0 on # Integrated Graphics Device
|
device pci 02.0 on # Integrated Graphics Device
|
||||||
register "gfx" = "GMA_DEFAULT_PANEL(0)"
|
register "gfx" = "GMA_DEFAULT_PANEL(0)"
|
||||||
|
@@ -3,7 +3,15 @@
|
|||||||
#ifndef MAINBOARD_GPIO_H
|
#ifndef MAINBOARD_GPIO_H
|
||||||
#define MAINBOARD_GPIO_H
|
#define MAINBOARD_GPIO_H
|
||||||
|
|
||||||
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_F22
|
||||||
|
#define DGPU_PWR_EN GPP_F23
|
||||||
|
#define DGPU_GC6 GPP_C12
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
void mainboard_configure_early_gpios(void);
|
void mainboard_configure_early_gpios(void);
|
||||||
void mainboard_configure_gpios(void);
|
void mainboard_configure_gpios(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <drivers/gfx/nvidia/gpu.h>
|
||||||
|
#include <mainboard/gpio.h>
|
||||||
#include <soc/cnl_memcfg_init.h>
|
#include <soc/cnl_memcfg_init.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
|
|
||||||
@@ -20,6 +22,18 @@ static const struct cnl_mb_cfg memcfg = {
|
|||||||
|
|
||||||
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
{
|
{
|
||||||
|
const struct nvidia_gpu_config config = {
|
||||||
|
.power_gpio = DGPU_PWR_EN,
|
||||||
|
.reset_gpio = DGPU_RST_N,
|
||||||
|
.enable = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Enable dGPU power
|
||||||
|
nvidia_set_power(&config);
|
||||||
|
|
||||||
|
// Set primary display to internal graphics
|
||||||
|
memupd->FspmConfig.PrimaryDisplay = 0;
|
||||||
|
|
||||||
// Allow memory speeds higher than 2666 MT/s
|
// Allow memory speeds higher than 2666 MT/s
|
||||||
memupd->FspmConfig.SaOcSupport = 1;
|
memupd->FspmConfig.SaOcSupport = 1;
|
||||||
|
|
||||||
|
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_ORYP6 || BOARD_SYSTEM76_ORYP7
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select DRIVERS_I2C_TAS5825M
|
select DRIVERS_I2C_TAS5825M
|
||||||
select EC_SYSTEM76_EC
|
select EC_SYSTEM76_EC
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <variant/gpio.h>
|
||||||
|
#include <drivers/gfx/nvidia/acpi/gpu.asl>
|
||||||
|
|
||||||
#define EC_GPE_SCI 0x03 /* GPP_K3 */
|
#define EC_GPE_SCI 0x03 /* GPP_K3 */
|
||||||
#define EC_GPE_SWI 0x06 /* GPP_K6 */
|
#define EC_GPE_SWI 0x06 /* GPP_K6 */
|
||||||
#include <ec/system76/ec/acpi/ec.asl>
|
#include <ec/system76/ec/acpi/ec.asl>
|
||||||
|
@@ -62,6 +62,13 @@ chip soc/intel/cannonlake
|
|||||||
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
# PCI Express Graphics #0 x16, Clock 8 (NVIDIA GPU)
|
||||||
register "PcieClkSrcUsage[8]" = "0x40"
|
register "PcieClkSrcUsage[8]" = "0x40"
|
||||||
register "PcieClkSrcClkReq[8]" = "8"
|
register "PcieClkSrcClkReq[8]" = "8"
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device pci 02.0 on # Integrated Graphics Device
|
device pci 02.0 on # Integrated Graphics Device
|
||||||
register "gfx" = "GMA_DEFAULT_PANEL(0)"
|
register "gfx" = "GMA_DEFAULT_PANEL(0)"
|
||||||
|
@@ -3,7 +3,15 @@
|
|||||||
#ifndef VARIANT_GPIO_H
|
#ifndef VARIANT_GPIO_H
|
||||||
#define VARIANT_GPIO_H
|
#define VARIANT_GPIO_H
|
||||||
|
|
||||||
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_F22
|
||||||
|
#define DGPU_PWR_EN GPP_F23
|
||||||
|
#define DGPU_GC6 GPP_K21
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
void variant_configure_early_gpios(void);
|
void variant_configure_early_gpios(void);
|
||||||
void variant_configure_gpios(void);
|
void variant_configure_gpios(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <drivers/gfx/nvidia/gpu.h>
|
||||||
#include <soc/cnl_memcfg_init.h>
|
#include <soc/cnl_memcfg_init.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
|
#include <variant/gpio.h>
|
||||||
#include <variant/romstage.h>
|
#include <variant/romstage.h>
|
||||||
|
|
||||||
static const struct cnl_mb_cfg memcfg = {
|
static const struct cnl_mb_cfg memcfg = {
|
||||||
@@ -21,6 +23,18 @@ static const struct cnl_mb_cfg memcfg = {
|
|||||||
|
|
||||||
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
{
|
{
|
||||||
|
const struct nvidia_gpu_config config = {
|
||||||
|
.power_gpio = DGPU_PWR_EN,
|
||||||
|
.reset_gpio = DGPU_RST_N,
|
||||||
|
.enable = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Enable dGPU power
|
||||||
|
nvidia_set_power(&config);
|
||||||
|
|
||||||
|
// Set primary display to internal graphics
|
||||||
|
memupd->FspmConfig.PrimaryDisplay = 0;
|
||||||
|
|
||||||
variant_configure_fspm(memupd);
|
variant_configure_fspm(memupd);
|
||||||
|
|
||||||
cannonlake_memcfg_init(&memupd->FspmConfig, &memcfg);
|
cannonlake_memcfg_init(&memupd->FspmConfig, &memcfg);
|
||||||
|
@@ -3,6 +3,7 @@ if BOARD_SYSTEM76_ORYP8
|
|||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BOARD_ROMSIZE_KB_16384
|
select BOARD_ROMSIZE_KB_16384
|
||||||
|
select DRIVERS_GFX_NVIDIA
|
||||||
select DRIVERS_I2C_HID
|
select DRIVERS_I2C_HID
|
||||||
select DRIVERS_I2C_TAS5825M
|
select DRIVERS_I2C_TAS5825M
|
||||||
select EC_SYSTEM76_EC
|
select EC_SYSTEM76_EC
|
||||||
|
40
src/mainboard/system76/oryp8/acpi/dgpu.asl
Normal file
40
src/mainboard/system76/oryp8/acpi/dgpu.asl
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
Scope (\_SB.PCI0.PEG1)
|
||||||
|
{
|
||||||
|
Device (DEV0)
|
||||||
|
{
|
||||||
|
Name(_ADR, 0x00000000)
|
||||||
|
|
||||||
|
// Fix SSID being lost across sleep by saving it
|
||||||
|
Name(NVSS, 0x00000000)
|
||||||
|
|
||||||
|
OperationRegion (PCIC, PCI_Config, 0x00, 0x50)
|
||||||
|
Field (PCIC, DwordAcc, NoLock, Preserve)
|
||||||
|
{
|
||||||
|
Offset (0x40),
|
||||||
|
SSID, 32,
|
||||||
|
}
|
||||||
|
|
||||||
|
Name (_PR0, Package () { PWRR })
|
||||||
|
Name (_PR3, Package () { PWRR })
|
||||||
|
PowerResource (PWRR, 0, 0)
|
||||||
|
{
|
||||||
|
Name (_STA, 1)
|
||||||
|
|
||||||
|
Method (_ON)
|
||||||
|
{
|
||||||
|
^^SSID = ^^NVSS
|
||||||
|
Printf("GPU _ON %o", ToHexString(^^SSID))
|
||||||
|
_STA = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_OFF)
|
||||||
|
{
|
||||||
|
^^NVSS = ^^SSID
|
||||||
|
Printf("GPU _OFF %o", ToHexString(^^SSID))
|
||||||
|
_STA = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include "dgpu.asl"
|
||||||
|
|
||||||
#define EC_GPE_SCI 0x6E
|
#define EC_GPE_SCI 0x6E
|
||||||
#define EC_GPE_SWI 0x6B
|
#define EC_GPE_SWI 0x6B
|
||||||
#include <ec/system76/ec/acpi/ec.asl>
|
#include <ec/system76/ec/acpi/ec.asl>
|
||||||
|
@@ -102,6 +102,13 @@ chip soc/intel/tigerlake
|
|||||||
register "srcclk_pin" = "9" # PEG_CLKREQ#
|
register "srcclk_pin" = "9" # PEG_CLKREQ#
|
||||||
device generic 0 on end
|
device generic 0 on end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
chip drivers/gfx/nvidia
|
||||||
|
device pci 00.0 on end # VGA controller
|
||||||
|
device pci 00.1 on end # Audio device
|
||||||
|
device pci 00.2 on end # USB xHCI Host controller
|
||||||
|
device pci 00.3 on end # USB Type-C UCSI controller
|
||||||
|
end
|
||||||
end
|
end
|
||||||
device ref igpu on
|
device ref igpu on
|
||||||
# DDIA is eDP
|
# DDIA is eDP
|
||||||
|
@@ -3,7 +3,15 @@
|
|||||||
#ifndef MAINBOARD_GPIO_H
|
#ifndef MAINBOARD_GPIO_H
|
||||||
#define MAINBOARD_GPIO_H
|
#define MAINBOARD_GPIO_H
|
||||||
|
|
||||||
|
#include <soc/gpio.h>
|
||||||
|
|
||||||
|
#define DGPU_RST_N GPP_F8
|
||||||
|
#define DGPU_PWR_EN GPP_F9
|
||||||
|
#define DGPU_GC6 GPP_K11
|
||||||
|
|
||||||
|
#ifndef __ACPI__
|
||||||
void mainboard_configure_early_gpios(void);
|
void mainboard_configure_early_gpios(void);
|
||||||
void mainboard_configure_gpios(void);
|
void mainboard_configure_gpios(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <drivers/gfx/nvidia/gpu.h>
|
||||||
|
#include <mainboard/gpio.h>
|
||||||
#include <fsp/util.h>
|
#include <fsp/util.h>
|
||||||
#include <soc/meminit.h>
|
#include <soc/meminit.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
@@ -23,6 +25,18 @@ void mainboard_memory_init_params(FSPM_UPD *mupd)
|
|||||||
{
|
{
|
||||||
const bool half_populated = false;
|
const bool half_populated = false;
|
||||||
|
|
||||||
|
const struct nvidia_gpu_config config = {
|
||||||
|
.power_gpio = DGPU_PWR_EN,
|
||||||
|
.reset_gpio = DGPU_RST_N,
|
||||||
|
.enable = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Enable dGPU power
|
||||||
|
nvidia_set_power(&config);
|
||||||
|
|
||||||
|
// Set primary display to internal graphics
|
||||||
|
mupd->FspmConfig.PrimaryDisplay = 0;
|
||||||
|
|
||||||
// Enable M.2 PCIE 4.0 and PEG1
|
// Enable M.2 PCIE 4.0 and PEG1
|
||||||
mupd->FspmConfig.CpuPcieRpEnableMask = 0x3;
|
mupd->FspmConfig.CpuPcieRpEnableMask = 0x3;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user