-
Notifications
You must be signed in to change notification settings - Fork 93
EDK2: Add CONFIG_EDK2_RTKUNDI_DRIVER for RTL8168 PXE (Acer CXI4 / Kaisa) #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: MrChromebox-2512
Are you sure you want to change the base?
Changes from all commits
484b517
fe84942
fa11d6e
679d927
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -175,13 +175,15 @@ config EDK2_BOOTSPLASH_FILE | |
|
|
||
| config EDK2_BOOT_MANAGER_ESCAPE | ||
| bool "Use Escape key for Boot Manager" | ||
| default y if EDK2_NETWORK_PXE_SUPPORT | ||
| default n | ||
| help | ||
| Use Escape as the hot-key to access the Boot Manager. This replaces | ||
| the default key of F2. | ||
|
|
||
| config EDK2_BOOT_TIMEOUT | ||
| int "Set the timeout for boot menu prompt" | ||
| default 10 if EDK2_NETWORK_PXE_SUPPORT | ||
| default 2 | ||
| help | ||
| The length of time in seconds for which the boot splash/menu prompt will be displayed. | ||
|
|
@@ -243,6 +245,7 @@ config EDK2_PRIORITIZE_INTERNAL | |
| config EDK2_LOAD_OPTION_ROMS | ||
| bool "Load and Execute OpROMs on PCIe devices" | ||
| depends on !EDK2_REPO_OFFICIAL | ||
| default y if EDK2_NETWORK_PXE_SUPPORT | ||
| default n | ||
| help | ||
| Load and execute OpROMs on PCIe devices. | ||
|
|
@@ -309,6 +312,7 @@ config EDK2_USE_LAPIC_TIMER | |
|
|
||
| config EDK2_CUSTOM_BUILD_PARAMS | ||
| string "edk2 additional custom build parameters" | ||
| default "-D NETWORK_DRIVER_ENABLE=TRUE -D NETWORK_ENABLE=TRUE -D NETWORK_IP4_ENABLE=TRUE -D NETWORK_IP6_ENABLE=FALSE -D NETWORK_PXE_BOOT_ENABLE=TRUE -D NETWORK_HTTP_BOOT_ENABLE=FALSE -D NETWORK_SNP_ENABLE=TRUE -D NETWORK_TLS_ENABLE=FALSE -D NETWORK_ISCSI_ENABLE=FALSE" if EDK2_NETWORK_PXE_SUPPORT | ||
| default "" | ||
| help | ||
| edk2 has build options that are not modified by coreboot, and these can be | ||
|
|
@@ -317,6 +321,27 @@ config EDK2_CUSTOM_BUILD_PARAMS | |
|
|
||
| This option can support both macros `-D` and Pcds `--pcd`. | ||
|
|
||
| config EDK2_NETWORK_PXE_SUPPORT | ||
| bool "Enable EDK2 built-in PXE network boot support" | ||
| depends on !EDK2_REPO_OFFICIAL | ||
| default n | ||
| help | ||
| Enable EDK2's built-in PXE network boot support. This uses EDK2's native | ||
| Simple Network Protocol (SNP) implementation for network booting. | ||
|
|
||
| When enabled, EDK2_LOAD_OPTION_ROMS, EDK2_BOOT_TIMEOUT, EDK2_BOOT_MANAGER_ESCAPE | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what do these have do do with network support? |
||
| and EDK2_CUSTOM_BUILD_PARAMS (network params) are auto-configured. | ||
|
|
||
| config EDK2_RTKUNDI_DRIVER | ||
| bool "Include Realtek UNDI driver (RtkUndiDxe) for RTL8168 PXE" | ||
| depends on EDK2_NETWORK_PXE_SUPPORT | ||
| default y | ||
| help | ||
| When enabled, pass -D RTKUNDI_ENABLE=TRUE to EDK2 so that | ||
| UefiPayloadPkg.fdf includes RtkUndiDxe.efi for RTL8168/8111 PXE (e.g. Acer CXI4). | ||
| Requires EDK2 fork with RtkUndiDxe.efi in UefiPayloadPkg/NetworkDrivers/ | ||
| and FDF block wrapped in !if $(RTKUNDI_ENABLE) == TRUE. | ||
|
|
||
| config EDK2_ENABLE_IPXE | ||
| bool "Include iPXE in edk2 payload" | ||
| depends on !EDK2_REPO_OFFICIAL | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -256,6 +256,7 @@ static void program_mac_address(struct device *dev, u16 io_base) | |
| outl(0x8000f0f4, io_base + ERIAR); | ||
| break; | ||
| case 9: | ||
| case 21: | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what's this about? |
||
| outl(maclo, io_base + ERIDR); | ||
| inl(io_base + ERIDR); | ||
| outl(0x8000f0e0, io_base + ERIAR); | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -235,6 +235,20 @@ config EC_GOOGLE_CHROMEEC_READ_BATTERY_LONG_STRING | |
|
|
||
| If unsure, say N. | ||
|
|
||
| config EC_FOR_CHROMEBOX | ||
| depends on SYSTEM_TYPE_MINIPC | ||
| bool "Hide AC adapter, battery, Chromebook EC Bus and keyboard/vbtn ACPI devices on mini PC" | ||
| default y | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. default Y means selected unless specifically un-set - we definitely don't want this |
||
| help | ||
| On mini PC / Chromebox (no built-in battery, no laptop keyboard), hide | ||
| these ACPI devices so they do not appear in the OS device manager: | ||
| - Microsoft AC Adapter (ACPI0003) | ||
| - Microsoft ACPI Compatible Control Method Battery (PNP0C0A) | ||
| - Chromebook EC Bus (GOOG0004 / CREC) | ||
| - Chromebook Keyboard Settings & Buttons (GOOG000A / INT33D6 vbtn) | ||
|
|
||
| Say Y to hide them when SYSTEM_TYPE_MINIPC is set. | ||
|
|
||
| config EC_GOOGLE_CHROMEEC_LPC_GENERIC_MEMORY_RANGE | ||
| def_bool n | ||
| help | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,6 +14,10 @@ Device (AC) | |
|
|
||
| Method (_STA) | ||
| { | ||
| #if CONFIG(EC_FOR_CHROMEBOX) | ||
| Return (0) | ||
| #else | ||
| Return (0x0F) | ||
| #endif | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -32,6 +32,7 @@ config BOARD_GOOGLE_BASEBOARD_PUFF | |
| select RT8168_GEN_ACPI_POWER_RESOURCE | ||
| select RT8168_GET_MAC_FROM_VPD | ||
| select RT8168_SET_LED_MODE | ||
| select RT8168_PUT_MAC_TO_ERI | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why is this needed? |
||
| select SOC_INTEL_COMETLAKE_1 | ||
| select SOC_INTEL_CSE_LITE_SKU | ||
| select SPD_CACHE_IN_FMAP | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -301,6 +301,17 @@ config MB_HAS_ACTIVE_HIGH_SD_PWR_ENABLE | |
| This will enable a workaround in ASL _PS3 and _PS0 methods to force | ||
| SD_PWR_ENABLE to stay low in D3. | ||
|
|
||
| config SOC_INTEL_HIDE_EMMC | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this seems like a suboptimal way to hide unused devices. A better way is to detect presence at runtime and set the ACPI _STA accordingly. is the extra controller in Device Manager really problematic? Most Puff-based Chromeboxes have SKUs with eMMC or NVMe, so you'd have to build this per device. |
||
| depends on SYSTEM_TYPE_MINIPC | ||
| bool "Hide eMMC controller from OS (show only SD/TF slot as SD host)" | ||
| default n | ||
| help | ||
| On mini PC / Chromebox with only one physical SD/TF card slot, the PCH | ||
| still exposes both eMMC and SDXC in ACPI; Windows shows two "SD host | ||
| controller" devices. Select this to hide the eMMC device (_STA = 0) so | ||
| only the real SD/TF slot (SDXC) appears. eMMC will not be usable as | ||
| storage in the OS when enabled. | ||
|
|
||
| config FSP_HEADER_PATH | ||
| default "3rdparty/fsp/CoffeeLakeFspBinPkg/Include/" if SOC_INTEL_COFFEELAKE || SOC_INTEL_WHISKEYLAKE | ||
| default "3rdparty/fsp/CometLakeFspBinPkg/CometLake1/Include/" if SOC_INTEL_COMETLAKE_1 | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know why you'd set all these here rather than conditionally in the edk2 makefile.
this option is really for ad-hoc testing, not for selectable options