-
Notifications
You must be signed in to change notification settings - Fork 58
Add USB and Ethernet drivers to support the Raspberry Pi 4 #64
base: master
Are you sure you want to change the base?
Conversation
Genet works wonderfully. Thanks for the great work! We've also tested the USB filter driver and it sets the 32-bit accesses flag correctly, but removing the 3 GB limit leads to non-working USB ports on Windows 10 ARM64. Any clues on that? |
Try disabling fast startup:
|
Seems that if you have patched USBXHCI.SYS it'll break USB (no matter how much RAM) - After installing the driver I needed to revert back to the original USBXHCI.SYS. |
Yes, that's intentional. The patch values I provided for So, if you do apply the In other words, you should not use both a patched |
That was it. 😄 @alotipac, you are awesome. I don't think we can ever thank you enough for your contributions!! |
Works even without it. Just need to revert USBXHCI.SYS and remove the 3GB restriction in the BIOS. |
Didn't work for me when I tested it. But I did boot Windows with 3 GB first and then removed the limit, so fast startup was active, as opposed to disabling on first install. I'm just going to add that this will probably be how most people do it, as the UEFI firmware has to have the 3 GB limit on by default for most OSes. But it shouldn't be too difficult to have the image application utility, or even the driver itself, take care of that registry key... |
So did I... |
Mind if I post binaries? |
I already posted some in the windows-on-arm discord channel. These are drivers that I signed using my Authenticode credentials (so that, even if this isn't enough to get the driver accepted without disabling test signing, we get better accountability and provenance than a self-signed cert) and that also adds the following to the
You can find a built of these drivers in my cloned version of rpi-iotcore, that has the above patches applied along with the additional changes I applied to produce the binaries. The binary downloads can be obtained here or through the links below: |
What is the first driver linked used for? |
Allows you to use more than 3GB of RAM without breaking USB. |
Hey guys, is there any GPU Drivers for RPI 4 |
@alotipac have you tried booting from USB with the Use32BitAccesses registry flag set? This doesn't seem to work on all boards. @QuimoDrivers wrong place, but the answer is no. |
Is there any audio drivers for rpi4 in the works. If so can i have a download link to develop on it |
This is not a place to ask questions. This is for discussing the specific PR. |
Genet driver is amazing however usb filter causes a lot of issues with stability and smoothness of the operating system. Many people reported that their usb audio devices no longer work and only 2 out of 700 people managed to boot from usb stick with filter driver enabled. |
One thing I'd like to know is how many of these 700 managed to boot with winpatch, because recent updates of Windows seems to have broken both. At least none of winpatch or the filter driver work for me when booting In other words, if Again, as far as my testing shows, .330 boots fine from USB, be it with the filter driver or winpatch. But .450 doesn't boot at all from USB, be it with the filter driver or winpatch, which hints at all those boot breakage reports not having anything to do with the filter driver. |
Works for me on a 4GB model with this driver and latest updates. |
Does it mean when creating a USB media from an Because if, on the other hand, you mean that you managed to update an existing working installation and it didn't break anything, then I got that too (i.e. I can get a working
Yes. That is why the filter driver approach is better. And I did test that using the It may also very well be that the UUP scripts are broken... Once you get it running, |
Just recreated a Just download that if you are having issues, and then use Windows Update to bring it up to date. Microsoft broke something between |
The DMA adapter filter limited the USB host controller to a single simultaneous bounce buffer, which prevented more than one device using bulk transfers (such as storage devices or Bluetooth adapters) from operating at the same time. This change allows for multiple buffers. Only one buffer per concurrently active bulk transfer endpoint should be needed. Also switch asserts to be present in release builds.
Updated the drivers from my fork with the latest patch and I also took this opportunity to add driver version + date (which should help making sure people can find out what drivers they actually installed). |
@alotipac
SOLVED! |
These commits to support the Raspberry Pi 4 add a filter driver that enables the USB 3 controller with RAM above 3 GB and a driver for the Ethernet controller, which partially resolves #55.