This repository contains drivers for RK35xx-based platforms, with a focus on RK3588(S).
Device | Driver | Status | Additional information |
---|---|---|---|
USB 3 ports 0/1 Host | usbxhci (Inbox) | 🟢 Working | The "full" USB3 port(s) work correctly, except USB3 only works in one orientation when used with a Type-C connector. Note that RK3588s devices (e.g. Opi5, Opi5B) have only 1 "full" USB3 port -- only RK3588 devices (e.g. Opi5+) have 2 "full" USB3 ports. |
USB 3 ports 0/1 Dual Role | usbxhci (Inbox) | 🔴 Not working | Host mode only, no dual role capability. Depends on USB/DP Alt Mode switching. |
USB 3 port 2 Host | usbxhci (Inbox) | 🟡 Partially working | Won't support USB1 devices without a hub. USB3 port 2 works by combining a USB3-only xHCI port with a USB2 EHCI+OHCI port. Since OHCI isn't working (issue #5), this port will not work for USB1 devices. |
USB 2.0 & 1.1 | usbehci (Inbox) | 🟡 Partially working | USBOHCI driver for USB 1.1 is missing in ARM64 builds (issue #5). |
PCIe 3.0 & 2.1 | pci (Inbox) | 🟡 Partially working | Devices may work if drivers are available for them. Known issues include: - NVMe SSDs do not work with in-box storport.sys (issue #6, workaround available). - Devices that require cache-coherent bus or MSI do not work (e.g. Qualcomm Wi-Fi cards). - Devices that require a root PCIe port do not work (e.g. XHCI). |
SATA | storahci (Inbox) | 🔴 Not working | SATA SSDs do not work with in-box storport.sys (issue #6, workaround available). |
eMMC | dwcsdhc | 🟢 Working | |
SD/SDIO | dwcmshc | 🟢 Working | |
CPU frequency scaling | 🔴 Not working | Clocks limited at values set by UEFI. | |
HDMI output | MSBDD (Inbox) | 🟡 Partially working | Single display with mode limited at 1080p 60 Hz, provided by UEFI GOP. |
HDMI input | 🔴 Not working | ||
DisplayPort output | MSBDD (Inbox) | 🟡 Partially working | Single display with mode limited at 1080p 60 Hz, provided by UEFI GOP. Only works in one orientation of the Type-C connector. |
HDMI audio | 🔴 WIP | I2S audio driver enumerates, but requires VOP driver | |
DisplayPort audio | 🔴 Not working | ||
Analog audio | es8323 | 🟢 Working (Orange Pi 5) | |
Digital audio | 🔴 Not working | ||
USB/DP Alt Mode | 🔴 Not working | ||
GPU | 🔴 Not working | Software-rendered | |
NPU | 🔴 Not working | ||
Multimedia codecs | 🔴 Not working | ||
DSI | 🔴 Not working | ||
CSI | 🔴 Not working | ||
GMAC Ethernet | dwc_eqos | 🟢 Working | Requires latest UEFI (edk2-rk3588 master 2024/01/03 or later). |
RTL8111/RTL8168/RTL8125 Ethernet | if_re | 🟢 Working | |
UART | 🔴 Not working | No OS driver but debugging does work on UART2, being configured by UEFI. | |
GPIO | rk3xgpio | 🟢 Working | |
I2C | rk3xi2c | 🟢 Working | |
I2S | csaudiork3x | 🟢 Working | |
SPI | 🔴 Not working | ||
CAN bus | 🔴 Not working | ||
SPDIF | 🔴 Not working | ||
SARADC | 🔴 Not working | ||
PWM | 🔴 Not working |
- Install a recent version of Visual Studio, Windows SDK and WDK.
- Clone this repo.
- Open the
Rockchip-Windows-Drivers\build\RockchipDrivers.sln
solution in Visual Studio. - Set the desired build configuraton (Release or Debug).
- Build -> Build Solution (or Ctrl+Shift+B).
The resulting driver binaries will be located in the Rockchip-Windows-Drivers\build\ARM64\Debug\Output
(or Release) directory.
The UEFI + ACPI implementation needed to run Windows and these drivers is available at https://github.com/edk2-porting/edk2-rk35xx.