Skip to content

Commit f337ea3

Browse files
XutaxKamayfilipleple
authored andcommitted
Added support to disable DGPU in EDK2
1 parent c79a1d9 commit f337ea3

File tree

7 files changed

+109
-2
lines changed

7 files changed

+109
-2
lines changed
+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
CONFIG_LOCALVERSION="v2.0.0-rc3"
2+
CONFIG_OPTION_BACKEND_NONE=y
3+
CONFIG_VENDOR_NOVACUSTOM=y
4+
CONFIG_FMDFILE="src/mainboard/clevo/tgl-u/vboot-rwa.fmd"
5+
# CONFIG_CONSOLE_SERIAL is not set
6+
CONFIG_VBOOT=y
7+
CONFIG_IFD_BIN_PATH="3rdparty/dasharo-blobs/novacustom/nv4x_tgl/descriptor.bin"
8+
CONFIG_ME_BIN_PATH="3rdparty/dasharo-blobs/novacustom/nv4x_tgl/me.bin"
9+
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x100000
10+
CONFIG_HAVE_IFD_BIN=y
11+
CONFIG_BOARD_NOVACUSTOM_NV4X_TGLU=y
12+
CONFIG_EDK2_BOOTSPLASH_FILE="3rdparty/dasharo-blobs/novacustom/bootsplash.bmp"
13+
CONFIG_TPM_MEASURED_BOOT=y
14+
CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y
15+
CONFIG_INTEL_TME=y
16+
CONFIG_ENABLE_EARLY_DMA_PROTECTION=y
17+
CONFIG_EC_SYSTEM76_EC_UPDATE=y
18+
CONFIG_HAVE_ME_BIN=y
19+
CONFIG_NO_GFX_INIT=y
20+
CONFIG_PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G=y
21+
CONFIG_PCIEXP_HOTPLUG_IO=0x2000
22+
CONFIG_DRIVERS_EFI_VARIABLE_STORE=y
23+
CONFIG_DRIVERS_GENERIC_CBFS_SERIAL=y
24+
CONFIG_DRIVERS_GENERIC_CBFS_UUID=y
25+
CONFIG_BOOTMEDIA_LOCK_CONTROLLER=y
26+
CONFIG_BOOTMEDIA_LOCK_WPRO_VBOOT_RO=y
27+
CONFIG_BOOTMEDIA_LOCK_IN_VERSTAGE=y
28+
CONFIG_BOOTMEDIA_SMM_BWP=y
29+
# CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX is not set
30+
# CONFIG_CONSOLE_USE_ANSI_ESCAPES is not set
31+
CONFIG_PAYLOAD_EDK2=y
32+
CONFIG_EDK2_REPOSITORY="https://github.com/Dasharo/edk2"
33+
CONFIG_EDK2_TAG_OR_REV="cd38081e8b3ea43f52c0d25daae90c3eb3b8074d"
34+
CONFIG_EDK2_USE_EDK2_PLATFORMS=y
35+
CONFIG_EDK2_PLATFORMS_REPOSITORY="https://github.com/Dasharo/edk2-platforms"
36+
CONFIG_EDK2_PLATFORMS_TAG_OR_REV="3323ed481d35096fb6a7eae7b49f35eff00f86cf"
37+
CONFIG_EDK2_CBMEM_LOGGING=y
38+
CONFIG_EDK2_FOLLOW_BGRT_SPEC=y
39+
CONFIG_EDK2_SERIAL_SUPPORT=y
40+
CONFIG_EDK2_GOP_FILE="3rdparty/dasharo-blobs/novacustom/nv4x_tgl/IntelGopDriver.efi"
41+
CONFIG_EDK2_USE_LAPTOP_LID_LIB=y
42+
CONFIG_EDK2_CUSTOM_BUILD_PARAMS="-D VARIABLE_SUPPORT=SMMSTORE --pcd gDasharoSystemFeaturesTokenSpaceGuid.PcdS3SupportExperimental=TRUE"
43+
CONFIG_BUILD_IPXE=y
44+
CONFIG_IPXE_NO_PROMPT=y
45+
CONFIG_IPXE_ADD_SCRIPT=y
46+
CONFIG_IPXE_SCRIPT="3rdparty/dasharo-blobs/dasharo/dasharo.ipxe"
47+
CONFIG_IPXE_CUSTOM_BUILD_ID="0123456789"
48+
CONFIG_EDK2_SYSTEM76_EC_LOGGING=y
49+
CONFIG_EDK2_SKIP_PS2_DETECT=y
50+
CONFIG_EDK2_ENABLE_IPXE=y
51+
# CONFIG_EDK2_SECURE_BOOT_DEFAULT_ENABLE is not set
52+
CONFIG_EDK2_SETUP_PASSWORD=y
53+
CONFIG_EDK2_PERFORMANCE_MEASUREMENT_ENABLE=y
54+
CONFIG_EDK2_DASHARO_SYSTEM_FEATURES=y
55+
CONFIG_EDK2_DASHARO_SECURITY_OPTIONS=y
56+
CONFIG_EDK2_SHOW_CAMERA_OPTION=y
57+
CONFIG_EDK2_SHOW_WIFI_BT_OPTION=y
58+
CONFIG_EDK2_DASHARO_INTEL_ME_OPTIONS=y
59+
CONFIG_EDK2_DASHARO_USB_CONFIG=y
60+
CONFIG_EDK2_DASHARO_NETWORK_CONFIG=y
61+
CONFIG_EDK2_DASHARO_POWER_CONFIG=y
62+
CONFIG_EDK2_SLEEP_TYPE_OPTION=y
63+
CONFIG_EDK2_FAN_CURVE_OPTION=y
64+
CONFIG_EDK2_BATTERY_CONFIG_OPTION=y
65+
CONFIG_EDK2_CPU_THROTTLING_THRESHOLD_OPTION=y
66+
CONFIG_EDK2_USB_PORT_POWER_OPTION=y
67+
CONFIG_EDK2_DGPU_POWER_OPTION=y
68+
CONFIG_EDK2_BOOT_MENU_KEY=0x0011
69+
CONFIG_EDK2_SETUP_MENU_KEY=0x000C
70+
CONFIG_EDK2_ENABLE_BATTERY_CHECK=y
71+
CONFIG_EDK2_PRINT_SOL_STRINGS=y
72+
CONFIG_EDK2_CREATE_PREINSTALLED_BOOT_OPTIONS=y

payloads/external/Makefile.mk

+2-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,8 @@ $(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG) $(IPXE_EFI)
281281
CONFIG_DRIVERS_EFI_MAIN_FW_GUID=$(CONFIG_DRIVERS_EFI_MAIN_FW_GUID) \
282282
CONFIG_EDK2_ENABLE_FAST_BOOT_FEATURE=$(CONFIG_EDK2_ENABLE_FAST_BOOT_FEATURE) \
283283
CONFIG_EDK2_ENABLE_QUIET_BOOT_FEATURE=$(CONFIG_EDK2_ENABLE_QUIET_BOOT_FEATURE) \
284-
CONFIG_EDK2_USB_PORT_POWER_OPTION=$(CONFIG_EDK2_USB_PORT_POWER_OPTION)
284+
CONFIG_EDK2_USB_PORT_POWER_OPTION=$(CONFIG_EDK2_USB_PORT_POWER_OPTION) \
285+
CONFIG_EDK2_DGPU_POWER_OPTION=$(CONFIG_EDK2_DGPU_POWER_OPTION)
285286

286287

287288
$(obj)/ShimmedUniversalPayload.elf: $(DOTCONFIG)

payloads/external/edk2/Kconfig.dasharo

+8
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,14 @@ config EDK2_USB_PORT_POWER_OPTION
193193
Shows the USB Port Power option in EDK2 power configuration submenu in
194194
Dasharo System Features menu.
195195

196+
config EDK2_DGPU_POWER_OPTION
197+
bool "Show DGPU power option in Dasharo Power Configuration Menu"
198+
default n
199+
depends on EDK2_DASHARO_POWER_CONFIG
200+
help
201+
Shows the DGPU power option in EDK2 power configuration submenu in
202+
Dasharo System Features menu.
203+
196204
config EDK2_DASHARO_PCI_CONFIG
197205
bool "Enable EDK2 Dasharo PCI/PCIe Configuration Menu"
198206
default n

payloads/external/edk2/Makefile

+4
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,10 @@ ifeq ($(CONFIG_EDK2_USB_PORT_POWER_OPTION),y)
279279
BUILD_STR += --pcd gDasharoSystemFeaturesTokenSpaceGuid.PcdPowerMenuShowUsbPowerOption=TRUE
280280
endif
281281

282+
ifeq ($(CONFIG_EDK2_DGPU_POWER_OPTION),y)
283+
BUILD_STR += --pcd gDasharoSystemFeaturesTokenSpaceGuid.PcdPowerMenuShowDGPUPowerOption=TRUE
284+
endif
285+
282286
endif # CONFIG_EDK2_DASHARO_POWER_CONFIG
283287
# DASHARO_PCI_CONFIG = FALSE
284288
ifeq ($(CONFIG_EDK2_DASHARO_PCI_CONFIG),y)

src/mainboard/clevo/tgl-u/variants/nv40mz/ramstage.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ static void dgpu_power_enable(int onoff) {
4242
}
4343

4444
static void mainboard_pre_device(void *unused) {
45-
dgpu_power_enable(1);
45+
dgpu_power_enable(dasharo_is_dgpu_enabled());
4646
}
4747

4848
BOOT_STATE_INIT_ENTRY(BS_PRE_DEVICE, BS_ON_ENTRY, mainboard_pre_device, NULL);

src/vendorcode/dasharo/include/dasharo/options.h

+10
Original file line numberDiff line numberDiff line change
@@ -300,4 +300,14 @@ bool get_hyper_threading_option(void);
300300
*/
301301
uint8_t get_cpu_throttling_offset(uint8_t tcc_offset);
302302

303+
/*
304+
* Disable DGPU for power savings.
305+
*
306+
*
307+
* Result:
308+
* - true - DGPU enabled
309+
* - false - DGPU disabled
310+
*/
311+
bool dasharo_is_dgpu_enabled(void);
312+
303313
#endif /* DASHARO_OPTIONS_H */

src/vendorcode/dasharo/options.c

+12
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,18 @@ uint8_t cse_get_me_disable_mode(void)
281281

282282
return var;
283283
}
284+
285+
bool dasharo_is_dgpu_enabled(void)
286+
{
287+
bool var = true;
288+
289+
if (CONFIG(DRIVERS_EFI_VARIABLE_STORE)) {
290+
read_bool_var("DGPUEnabled", &var);
291+
}
292+
293+
return var;
294+
}
295+
284296
#else
285297
uint8_t cse_get_me_disable_mode(void)
286298
{

0 commit comments

Comments
 (0)