[PCIe/USB3.0 Port] usb_pcie_switch_mode does not exist

Hi all,

I set up a Khadas VIM3 board with the newest kernel image (5.16.0-rc2).

The system has been installed (successfully) on the eMMC.

I want to use the PCIe port (instead of the USB 3.0). To do so, I am follow this guide:

But on my board, the /sys/class/mcu/usb_pcie_switch_mode file does not exist.

How can I switch from using the USB 3.0 to the PCIe port?

Thank you for your time and help in advance :slight_smile:

Hey there,
if you are having issues with switching the usb/PCIe mux, you can try switching the port using kbi
you can do so with the recovery system called krescue

hope it helps,


general question. Does this file not exist for all the mainline kernels and if it does not is Krescue the intended way to switch or are there other options?


Use the minicom terminal option on the host (ubuntu box), use a CP2102 USB adapter and set the dip switches for TTL. You need 3 dupont wires with females on both ends to connect to GPIO pins.

FYI, if you use a CP2102 on a windows box you MUST install the correct driver that comes directly from their website or it will not work properly. No special driver is needed on Ubuntu 20 & 21

Instructions in the VIM manual are correct for the minicom setup.

@brunovollmer You can use i2c command

Set to PCIe

$ i2cset -f -y 4 0x18 0x33 0x1


$ i2cget -f -y 4 0x18 0x33

0 is USB3.0, 1 is PCIe

1 Like