Skip to content

worproject/Rockchip-Windows-Drivers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windows on Arm device drivers for Rockchip

This repository contains drivers for RK35xx-based platforms, with a focus on RK3588(S).

Hardware support status

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

Building

  1. Install a recent version of Visual Studio, Windows SDK and WDK.
  2. Clone this repo.
  3. Open the Rockchip-Windows-Drivers\build\RockchipDrivers.sln solution in Visual Studio.
  4. Set the desired build configuraton (Release or Debug).
  5. 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.

Firmware

The UEFI + ACPI implementation needed to run Windows and these drivers is available at https://github.com/edk2-porting/edk2-rk35xx.

Credits

Driver signing provided by Theo @ CHASE®