Windows 10 drivers?

A recurring topic is Windows drivers for the Raspberry Pi 3 and 4 series.

MCCI DesignWare USB2 driver

This is for the front USB ports on Pi 3 and only the Type-C port on the Pi 4.

MCCI Corporation has made their TrueTask USB host stack available to the Raspberry Pi WoA community for non-commercial, evaluation purposes. MCCI did the original work for the 32-bit Windows IoT Core. It is available courtesy of Terrill Moore, CEO of MCCI, who graciously spent time in early 2019 to get it building and validated with the 64-bit Pi 3 UEFI.

If you like the drivers, I hope you’ll support The Things Network New York. MCCI does some pretty amazing things with LoRaWAN.

Driver is here. Launch announcement is here.

Note that the driver will not correctly work on Pi 4 boards with more than 1GB of RAM, unless you limit the RAM seen by Windows. See this guide.

OSS DesignWare USB2 driver

Before the MCCI driver was released, this was the only option. Originally based on an earlier version the UEFI USB driver and the UCX framework, it’s not particularly stable or recommended. It was originally developed by @NTAuthority, who was the first person ever to show Windows running on Pi 3 (rumor goes, with an early variant of the Pi 3 UEFI ;-)). And he thankfully left enough crumbs for the rest of us to pick up and carry the torch.

Driver repo is here.

Other BSP drivers

These were originally put up by Microsoft as part of the 32-bit Windows IoT Core BSP for the Pi 2/3. After a bit of cleaning, they build and run fine on 64-bit Windows.

Driver repo is here.

Guide – Windows 10 ARM64 on Pi 4B

So you want to install Windows 10 on this ‘Berry. You better follow this guide closely.

Because the front (USB3) ports are still unsupported, this guide will use the MCCI drivers for the “legacy” DWC2 USB controller, available via the Type-C plug. Because of the limitations of the DWC2 driver, Windows 10 will only work with 1GB of RAM usable.

Hardware needed

  • A PC with recent Windows 10 build installed.
  • Micro SD card reader.
  • Powered type-c usb hub or just a Type-C OTG cable if you can power the Pi through GPIO pins or even micro-USB hub with a type c to micro usb adapter.
  • USB mouse and keyboard.
  • A fast micro SD card – 16GB or higher – Class A1 or A2
  • Raspberry Pi 4B,
  • Micro HDMI cable.
  • Power supply (5V 3A+).

Downloads

Download Windows 10 installation files for arm64 from https://uup.rg-adguard.net/.

  • Download ISO compiler in OneClick!
  • Run downloaded CMD-file (run creatingISO.cmd file).

Or, download via https://uupdump.ml/, using aria2 and convert, running aria2_download_windows.cmd after extracting it.

Either of those services will help you to generate a ISO file but we only need install.wim file from sources folder on the ISO. Any build that passes OOBE without issues will be fine.

WoR (windows on raspberry) -Download 2.0.0-alpha.3 from https://worproject.ml/downloads

Guide

Once you download all of the things above you can proceed.

Open WoR. Select Disk from the list which will be your microsd card reader and select Raspberry pi 4 as a device that you will use. Then select build of windows WoR should use by pointing to a correct install.wim file. Use the latest drivers that WoR server provides. Select the latest UEFI for Raspberry pi 4 in WoR. Make sure MBR is selected as a partition scheme. WoR will automatically limit memory to 1024MB as it is still required to enable USB type-c drivers. Do edit boot options in WoR if you need to(I always overclock as my Pi has a fan attached).

WoR will deploy windows to the selected micro sd card which will take from 16 minutes to 3 hours depending on speed of your micro SD card.

Safely remove micro SD card and move it into the Raspberry Pi

Notes

This guide will be most likely updated if anything changes. First boot will take between 12 minutes to 2 hours depending on speed of your micro SD card. If there are issues during OOBE setup pressing shift + F10 then typing

%windir%\System32\Sysprep\sysprep.exe /oobe /reboot 

might help. If it doesn’t, you will need to test a different build of Windows 10 arm64. Remember that only Type-C port works correctly at the moment, so you will have to connect other devices to it somehow. Good luck!