The Windows 11 IoT version from the "i.MX Windows 10/11 IoT Enterprise Quick Start Guide" has working USB but is outdated.
I am trying to use a newer version of Windows 11 IoT Enterprise LTSC 2024.
Using the the Steps outlined in the Quick Start Guide, I
- first downloaded Windows W21H2-1-5-1 BSP prebuilt binaries
- then downloaded the newest Win 11 IoT LTSC 2024 arm64 .iso and extracted its install.wim
- after that I built an image using make-winpe-enterprise.cmd
- applied it to an sd-card and installed windows to a board
Now the moment I plug any USB device into one of the USB-Host ports windows bluescreens.
I am using the same board and uboot+uefi as with the older (working) version.
Analyzing the bluesceen dump shows that Windows crashes usbehci!InterlockedOr
0c ffff888a`9c04f630 fffff800`45c3b0cc nt!KeBugCheck2+0xaf0
0d ffff888a`9c04fc10 fffff800`45d1193c nt!HalBugCheckSystem+0x8c
0e ffff888a`9c04fc50 fffff800`45d11d40 nt!WheaRecoveryBugCheck+0x6c
0f ffff888a`9c04fc70 fffff800`470a185c nt!WheaReportHwError+0x3f0
10 ffff888a`9c04fd30 fffff800`45d156a4 RADARM!RadArmSeaCallback+0x2bc
11 ffff888a`9c04fee0 fffff800`45c4108c nt!WheaSignalHandlerOverride+0x34
12 ffff888a`9c04fef0 fffff800`45a5f440 nt!HalWheaHandleSea+0x4c
13 ffff888a`9c04ff80 fffff800`45a5f534 nt!KiAbortException+0x280
14 ffff888a`9c04ffc0 fffff800`45993c00 nt!KiSynchronousException+0x94
15 ffff888a`9c0500b0 fffff800`4599285c nt!KzSynchronousException+0x24
16 ffff888a`9c050110 fffff800`442b10dc nt!KiArm64ExceptionVectors+0x5c
17 ffff888a`9c050480 fffff800`442bcaa4 usbehci!InterlockedOr+0xc
18 ffff888a`9c050480 fffff800`442b6d48 usbehci!EHCI_AllocTd+0x84
19 ffff888a`9c0504b0 fffff800`442be784 usbehci!EHCI_OpenBulkOrControlEndpoint+0x148
1a ffff888a`9c050520 fffff800`442d3164 usbehci!EHCI_OpenEndpoint+0x134
1b ffff888a`9c050590 fffff800`44302e04 USBPORT!MPx_OpenEndpoint+0xd4
1c ffff888a`9c0505d0 fffff800`44301af8 USBPORT!USBPORT_OpenEndpoint+0x994
1d ffff888a`9c050650 fffff800`442dede0 USBPORT!USBPORT_NeoCreateDevice+0x300
1e ffff888a`9c0506d0 fffff800`494f7f00 USBPORT!USBPORTBUSIF_CreateUsbDeviceV7+0xa0
1f ffff888a`9c050750 fffff800`49519e18 usbhub!UsbhCreateDevice+0x278
20 ffff888a`9c050830 fffff800`49518278 usbhub!UsbhReset1Complete+0x118
21 ffff888a`9c0508a0 fffff800`494ef838 usbhub!UsbhEnumerate1+0x218
22 ffff888a`9c0508f0 fffff800`494effe8 usbhub!UsbhHubDispatchPortEvent+0x6f0
23 ffff888a`9c050960 fffff800`494f61b4 usbhub!UsbhHubRunPortChangeQueue+0x288
24 ffff888a`9c050a10 fffff800`494eeb54 usbhub!Usbh_PCE_wRun_Action+0x194
25 ffff888a`9c050a50 fffff800`494f1ce4 usbhub!UsbhDispatch_PortChangeQueueEventEx+0x12c
26 ffff888a`9c050aa0 fffff800`494efa88 usbhub!UsbhPCE_wRun+0x8c
27 ffff888a`9c050ad0 fffff800`459f2618 usbhub!UsbhHubProcessChangeWorker+0x148
28 ffff888a`9c050b20 fffff800`45b27818 nt!IopProcessWorkItem+0x98
29 ffff888a`9c050b80 fffff800`45a9ca80 nt!ExpWorkerThread+0x148
2a ffff888a`9c050d50 fffff800`4599be4c nt!PspSystemThreadStartup+0x50
2b ffff888a`9c050d90 00000000`00000000 nt!KiStartSystemThread+0x24
more specifically on this "ldsetal" instruction:
usbehci!InterlockedOr:
fffff800`442b10d0 900000f0 adrp xip0, usbehci!__security_cookie (fffff800442c4000)
fffff800`442b10d4 101240b9 ldr wip0, [xip0, usbehci!_AtomicsV81Support (x16+10h)]
fffff800`442b10d8 70000036 tbz wip0, #0, usbehci!_InterlockedOr+0x14 (fffff800442b10e4)
fffff800`442b10dc 0030e1b8 ldsetal w1, w0, [x0]
I verified that usbehci_fix.inf from BSP is installed and the registry key "NoInterlockedOpOnCommonBuffers" is present.
How can I fix this crash?