Skip to content

Latest commit

 

History

History
54 lines (49 loc) · 4.11 KB

README.md

File metadata and controls

54 lines (49 loc) · 4.11 KB

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®