vietnhatthai / Rockchip-Windows-Drivers

Windows on Arm drivers for RK35xx platforms.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 ๐Ÿ”ด Not 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ยฎ

About

Windows on Arm drivers for RK35xx platforms.


Languages

Language:C++ 59.9%Language:C 38.5%Language:Roff 1.6%