Skip to content

Items requiring solving for Windows 10 support #80

@pbatard

Description

@pbatard

Here are all the items that require solving, for the Windows option to become somewhat usable on the Pi 4:

Major showstoppers

  • usbxhci.sys needs to use double DWORD access to read/write 64-bit xHCI registers, instead of QWORD. → Without this, the VL805 xHCI controller doesn't work and none of the rear-panel USB-A ports can be used. → We have a known workaround, but it would be a lot nicer if we could avoid patching system files....
    EDIT: Looks like creating an HKLM\System\CurrentControlSet\Control\Compatibility\Device\USBXHCI:ACPI!VEN_PNP&DEV_0D10 key and creating a USBXHCI REG_QWORD with value 0x70000000003 can be used to enforce 32-bit access.
  • UEFI boot should not freeze when no SD card is present. → Classified as major showstopper as it is a lot more convenient to create and boot a single Windows USB boot media, than have to require a separate SD. Tracked in Improve Arasan driver to fail gracefully when no card is present #37.
  • Windows 10 ARM64 Genet driver → Any OS is next to useless without native Ethernet connectivity, and requiring an external USB Ethernet adapter (for which few manufacturers seem to have Windows 10 ARM64 drivers) is less than convenient. Considering how unlikely it is that Broadcom will be investing resources for that effort, the Genet driver will have to come from a third party...

Partial showstoppers

  • 3 GB RAM limit → When booting from rear USB, we can use up to 3 GB RAM (as opposed to 1 GB when booting from USB-C), but it'd be a lot nicer to have the full 4 or 8 GB RAM available, for those who have these models. With Windows being a lot more RAM-hungry than Linux, we qualify this as a possible show stopper.
  • Wifi driver → Same story as Genet. However, if we can solve wired connectivity, this isn't as critical.

Minor inconveniences

  • Audio (from jack) is broken. → Most likely because the Pi 3 driver being reused does not apply to Pi 4...
  • PL011/miniUART serial may need updating to be usable → We might be able to "patch" the existing Pi 3 drivers to fix that...
  • SPCR ACPI table is harcoded for PL011 on the Pi 4 → SPCR should be dynamically updated if miniUART is used. Tracked in Hardcoded UARTs in ACPI #118.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions