Dasharo / dasharo-issues

The Dasharo issue tracker
https://dasharo.com/
25 stars 0 forks source link

Docking station ethernet support in iPXE #599

Closed mkopec closed 4 months ago

mkopec commented 1 year ago

The problem you're addressing (if any)

Some Wavlink docks come with ASIX AX88179 Ethernet adapters. iPXE supports it with the axge driver, but we currently do not build with it enabled.

Describe the solution you'd like

Build iPXE with the axge driver

Where is the value to a user, and who might that user be?

Dasharo Tools Suite / PXE boot accessible via dock Ethernet, not just builtin ethernet.

Describe alternatives you've considered

n/a

Additional context

n/a

miczyg1 commented 1 year ago

@mkopec what makes you think that axge driver is not built into iPXE? As far as I can see all sources are included for EFI SB build: SRCDIRS += drivers/net AXGE is in src/drivers/net/axge.c SRCS += $(wildcard $(patsubst %,%/*.c,$(SRCDIRS))) except:

SRCDIRS_INSEC   += net/oncrpc
SRCDIRS_INSEC   += net/80211
SRCDIRS_INSEC   += drivers/net/rtl818x
SRCDIRS_INSEC   += drivers/net/ath
SRCDIRS_INSEC   += drivers/net/ath/ath5k
SRCDIRS_INSEC   += drivers/net/ath/ath9k
mkopec commented 1 year ago

hmm, it wasn't detected when I was testing it and I couldn't find anything in iPXE config. The USB PID/VID match so the driver should load if present

miczyg1 commented 1 year ago

Hmm, the src/config/defaults/efi.h contains all the things needed:

#define USB_HCD_XHCI        /* xHCI USB host controller */
#define USB_HCD_EHCI        /* EHCI USB host controller */
#define USB_HCD_UHCI        /* UHCI USB host controller */
#define USB_EFI         /* Provide EFI_USB_IO_PROTOCOL interface */
#define USB_BLOCK       /* USB block devices */

But what you may really be missing is the actual enumeration of the devices behind TBT port and that would probably require using FW CM (so sending connect topology command == setting FSPS UPD ITbtConnectTopologyTimeoutInMs to non-zero and causing quite big boot delay). Have you checked in the UEFI Shell that all devices of the dock are seen in the device list?

Or try the dumb USB-C 3.0 port just to have the normal USB enumeration of the hub (should work for the sake of USB devices like the ethernet) @mkopec

mkopec commented 1 year ago

@miczyg1 it's a DP Alt mode dock so video and USB work fine in firmware (keyboard and USB sticks are detected in UEFI). Tried in the "dumb" port but there's no difference

Also tried another dock with a Realtek NIC, no difference either. Still only net0 is enumerated in iPXE.

miczyg1 commented 1 year ago

@miczyg1 it's a DP Alt mode dock so video and USB work fine in firmware (keyboard and USB sticks are detected in UEFI). Tried in the "dumb" port but there's no difference

Also tried another dock with a Realtek NIC, no difference either. Still only net0 is enumerated in iPXE.

Okay... Then I have no idea and some iPXE debugging would be needed.

mkopec commented 11 months ago

according to https://forum.ipxe.org/showthread.php?tid=10777 the EFI target disables USB drivers by default, I built and chainloaded bin-x86_64-efi/realtek--axge--ncm--ecm.efi which works with USB dongles, but now I can't get back to the setup menu / boot menu when exiting iPXE. I don't know if it's a worthwile tradeoff to make

macpijan commented 5 months ago

@mkopec Should this issue be renamed? Is it related to ncm laptops - do we need some labels?

mkopec commented 5 months ago

It's related to USB-C docking stations with ASIX ethernet adapters. Adding some labels now, and changing the name to reflect on the goal and not implementation detail.

Another way we could go about this is to add a UEFI SNP driver from https://github.com/tianocore/edk2-platforms/tree/master/Drivers/ASIX , which should work with iPXE and not break going back to the setup menu

wessel-novacustom commented 4 months ago

Honestly, we don't expect iPXE to work with the Ethernet port of the docking station. I would close this issue and state that iPXE is only supported for the Ethernet port of the laptop itself, not of external devices.