jaredmcneill / quartz64_uefi

EDK2 UEFI for Rockchip RK3566 and RK3568 based SBCs.
156 stars 60 forks source link

EHCI not working in Windows #2

Open strongtz opened 2 years ago

strongtz commented 2 years ago

Hi! First of all, thank you for all your amazing work! I have a RADXA ROCK3 Model A, which is equipped with RK3568 and 2GB of RAM. Windows arm64 boots with the UEFI firmware, ofc without display output. But I can successfully connect to it via UART with windbg (KDCOM). The problem is, as soon as I plug any USB device into the USB2 port, Windows BSOD with WHEA_UNCORRECTABLE_ERROR, while USB3 port works well. I don't have much knowledge of all these stuff actually, so I'd like to share those debug output here.

List of devices in windbg:

0: kd> !devnode 0 1
Dumping IopRootDeviceNode (= 0xffffac8c31ecda20)
DevNode 0xffffac8c31ecda20 for PDO 0xffffac8c31feed50
  InstancePath is "HTREE\ROOT\0"
  State = DeviceNodeStarted (0x30a)
  Previous State = DeviceNodeEnumerateCompletion (0x30f)
  DevNode 0xffffac8c31edfa20 for PDO 0xffffac8c31ff2d70
    InstancePath is "ROOT\KDNIC\0000"
    State = DeviceNodeInitialized (0x304)
    Previous State = DeviceNodeUninitialized (0x301)
    Problem = CM_PROB_REINSTALL
    Problem Status = 0xc0000493
  DevNode 0xffffac8c31ef9a20 for PDO 0xffffac8c31ff3d70
    InstancePath is "ROOT\UMBUS\0000"
    ServiceName is "umbus_CE7D0C77822564F6"
    State = DeviceNodeStarted (0x30a)
    Previous State = DeviceNodeStartPostWork (0x309)
  DevNode 0xffffac8c31ff6010 for PDO 0xffffac8c31ef9e20
    InstancePath is "ROOT\NdisVirtualBus\0000"
    ServiceName is "NdisVirtualBus"
    State = DeviceNodeStarted (0x30a)
    Previous State = DeviceNodeStartPostWork (0x309)
  DevNode 0xffffac8c31ff63c0 for PDO 0xffffac8c31ff4d70
    InstancePath is "ROOT\SYSTEM\0000"
    ServiceName is "swenum"
    State = DeviceNodeStarted (0x30a)
    Previous State = DeviceNodeStartPostWork (0x309)
  DevNode 0xffffac8c31ff6770 for PDO 0xffffac8c31ff7a70
    InstancePath is "ROOT\ARM64_HAL\0000"
    State = DeviceNodeStarted (0x30a)
    Previous State = DeviceNodeEnumerateCompletion (0x30f)
    DevNode 0xffffac8c320a4c30 for PDO 0xffffac8c31ff6b70
      InstancePath is "ACPI_HAL\PNP0C08\0"
      ServiceName is "ACPI"
      State = DeviceNodeStarted (0x30a)
      Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c2010 for PDO 0xffffac8c322c0270
        InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\0"
        ServiceName is "FxPPM"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c23c0 for PDO 0xffffac8c322c04a0
        InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\1"
        ServiceName is "FxPPM"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c2770 for PDO 0xffffac8c322c06d0
        InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\2"
        ServiceName is "FxPPM"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c2b20 for PDO 0xffffac8c322c0900
        InstancePath is "ACPI\Rockchip_-_ARMv8_(64-bit)_Family_8_Model_D05_Revision_200\3"
        ServiceName is "FxPPM"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c3010 for PDO 0xffffac8c322c0b30
        InstancePath is "ACPI\HISI0031\0"
        State = DeviceNodeInitialized (0x304)
        Previous State = DeviceNodeUninitialized (0x301)
        Problem = CM_PROB_FAILED_INSTALL
        Problem Status = 0xc0000490
      DevNode 0xffffac8c322c33c0 for PDO 0xffffac8c322c0d60
        InstancePath is "ACPI\PNP0D20\0"
        ServiceName is "usbehci"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
        DevNode 0xffffac8c3235a260 for PDO 0xffffac8c324ae050
          InstancePath is "USB\ROOT_HUB20\3&116959a7&0"
          ServiceName is "usbhub"
          State = DeviceNodeStarted (0x30a)
          Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c3770 for PDO 0xffffac8c322c1060
        InstancePath is "ACPI\RKCP0DFF\0"
        State = DeviceNodeInitialized (0x304)
        Previous State = DeviceNodeUninitialized (0x301)
        Problem = CM_PROB_FAILED_INSTALL
        Problem Status = 0xc0000490
      DevNode 0xffffac8c322c3b20 for PDO 0xffffac8c322c1290
        InstancePath is "ACPI\PNP0D20\1"
        ServiceName is "usbehci"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
        DevNode 0xffffac8c324b5b70 for PDO 0xffffac8c324d0050
          InstancePath is "USB\ROOT_HUB20\3&15056fe&0"
          ServiceName is "usbhub"
          State = DeviceNodeStarted (0x30a)
          Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c4010 for PDO 0xffffac8c322c14c0
        InstancePath is "ACPI\RKCP0DFF\1"
        State = DeviceNodeInitialized (0x304)
        Previous State = DeviceNodeUninitialized (0x301)
        Problem = CM_PROB_FAILED_INSTALL
        Problem Status = 0xc0000490
      DevNode 0xffffac8c322c43c0 for PDO 0xffffac8c322c16f0
        InstancePath is "ACPI\PNP0D10\0"
        ServiceName is "USBXHCI"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
        DevNode 0xffffac8c325bab50 for PDO 0xffffac8c32522dc0
          InstancePath is "USB\ROOT_HUB30\3&20a5d118&0&0"
          ServiceName is "USBHUB3"
          State = DeviceNodeStarted (0x30a)
          Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c4770 for PDO 0xffffac8c322c1920
        InstancePath is "ACPI\PNP0D10\1"
        ServiceName is "USBXHCI"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
        DevNode 0xffffac8c325b7a20 for PDO 0xffffac8c3259c4b0
          InstancePath is "USB\ROOT_HUB30\3&dec2073&0&0"
          ServiceName is "USBHUB3"
          State = DeviceNodeStarted (0x30a)
          Previous State = DeviceNodeEnumerateCompletion (0x30f)
          DevNode 0xffffac8c341425e0 for PDO 0xffffac8c32ca4370
            InstancePath is "USB\VID_067B&PID_2731\ABCDEF0123456789AB"
            ServiceName is "USBSTOR"
            State = DeviceNodeStarted (0x30a)
            Previous State = DeviceNodeEnumerateCompletion (0x30f)
            DevNode 0xffffac8c342be5e0 for PDO 0xffffac8c32c79060
              InstancePath is "USBSTOR\Disk&Ven_&Prod_SD_Card_Reader&Rev_1.00\ABCDEF0123456789AB&0"
              ServiceName is "disk"
              State = DeviceNodeStarted (0x30a)
              Previous State = DeviceNodeEnumerateCompletion (0x30f)
      DevNode 0xffffac8c322c4b20 for PDO 0xffffac8c322c1b50
        InstancePath is "ACPI\PNP0A08\2&daba3ff&0"
        ServiceName is "pci"
        State = DeviceNodeStarted (0x30a)
        Previous State = DeviceNodeEnumerateCompletion (0x30f)
        DevNode 0xffffac8c322e9010 for PDO 0xffffac8c3231abc0
          InstancePath is "ACPI\PNP0C02\3&b1bfb68&0"
          State = DeviceNodeInitialized (0x304)
          Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0xffffac8c322e2a20 for PDO 0xffffac8c322dad80
    InstancePath is "SWD\COMPUTER\MFG_Pine64&FAM_Quartz64&PROD_RADXA_ROCK3_Model_A&SKU_0000000000000000"
    State = DeviceNodeStarted (0x30a)
    Previous State = DeviceNodeStartPostWork (0x309)
........................

Bugcheck analysis:

WHEA_UNCORRECTABLE_ERROR (124)
A fatal hardware error has occurred. Parameter 1 identifies the type of error
source that reported the error. Parameter 2 holds the address of the
nt!_WHEA_ERROR_RECORD structure that describes the error condition. Try !errrec Address of the nt!_WHEA_ERROR_RECORD structure to get more details.
Arguments:
Arg1: 0000000000000011, Error Source Type
Arg2: ffffac8c34454038
Arg3: 0000000000000000
Arg4: 0000000000000000

Debugging Details:
------------------

KEY_VALUES_STRING: 1

    Key  : Analysis.CPU.mSec
    Value: 1030

    Key  : Analysis.DebugAnalysisManager
    Value: Create

    Key  : Analysis.Elapsed.mSec
    Value: 10495

    Key  : Analysis.Init.CPU.mSec
    Value: 6468

    Key  : Analysis.Init.Elapsed.mSec
    Value: 1274762

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 91

    Key  : WER.OS.Branch
    Value: rs_prerelease

    Key  : WER.OS.Timestamp
    Value: 2021-12-10T14:18:00Z

    Key  : WER.OS.Version
    Value: 10.0.22523.1000

BUGCHECK_CODE:  124

BUGCHECK_P1: 11

BUGCHECK_P2: ffffac8c34454038

BUGCHECK_P3: 0

BUGCHECK_P4: 0

PROCESS_NAME:  System

STACK_TEXT:  
fffffc88`19b4b790 fffff802`fb181e90     : fffffc88`19b4b7e0 fffff802`fb1816b8 fffffc88`00000003 fffff802`fb181644 : nt!DbgBreakPoint
fffffc88`19b4b790 fffff802`fb1816b8     : fffffc88`19b4b7e0 fffff802`fb1816b8 fffffc88`00000003 fffff802`fb181644 : nt!KiBugCheckDebugBreak+0x20
fffffc88`19b4b7e0 fffff802`fb134004     : fffffc88`19b4bdc0 fffff802`fb134004 ffffac8c`01000001 ffffac8c`325b7080 : nt!KeBugCheck2+0x938
fffffc88`19b4bdc0 fffff802`fb23fcfc     : fffffc88`19b4be00 fffff802`fb23fcfc ffffac8c`34454038 ffffac8c`32648070 : nt!HalBugCheckSystem+0x84
fffffc88`19b4be00 fffff802`fb2400e8     : fffffc88`19b4be80 fffff802`fb2400e8 ffffac8c`34454010 fffffc88`19b4bee0 : nt!WheaRecoveryBugCheck+0x6c
fffffc88`19b4be20 fffff802`fb0ab380     : fffff802`000009e0 00000000`00000000 00000000`00000000 00000000`00000001 : nt!WheaReportHwError+0x3d8
fffffc88`19b4bee0 fffff802`faf73a44     : 00000003`41454857 00000000`00000065 00000000`00000006 00000011`00000004 : nt!HalWheaHandleSea+0x120
fffffc88`19b4bf70 fffff802`faf73558     : fffffc88`19b4c060 fffff802`faf73558 fffffc88`19b4c100 fffff802`fa5a0980 : nt!KiAbortException+0x224
fffffc88`19b4bfb0 fffff802`faeb3c00     : 00000000`0000bf00 00000000`c0000709 00000000`00000000 fffff802`fd6f10dc : nt!KiSynchronousException+0x218
fffffc88`19b4c0a0 fffff802`faeb285c     : ffffac8c`32f1d828 ffff9900`86a66100 ffffac8c`32356da0 ffffac8c`32356da0 : nt!KzSynchronousException+0x24
fffffc88`19b4c100 fffff802`fd6f10dc     : 7072544b`00000001 ffffac8c`343ed001 fffffc88`19b4c250 ffffac8c`32d38800 : nt!KiArm64ExceptionVectors+0x5c
fffffc88`19b4c470 fffff802`fd6fcaf4     : fffffc88`19b4c4a0 fffff802`fd6f6c68 00000000`00000001 ffffac8c`32f1d828 : usbehci!InterlockedOr+0xc
fffffc88`19b4c470 fffff802`fd6f6c68     : fffffc88`19b4c4a0 fffff802`fd6f6c68 00000000`00000001 ffffac8c`32f1d828 : usbehci!EHCI_AllocTd+0x84
fffffc88`19b4c4a0 fffff802`fd6fe8d0     : fffffc88`19b4c510 fffff802`fd6fe8d0 00000000`00000001 00000000`00000000 : usbehci!EHCI_OpenBulkOrControlEndpoint+0x160
fffffc88`19b4c510 fffff802`fd712fac     : fffffc88`19b4c580 fffff802`fd712fac 00000040`00000000 00000000`00000002 : usbehci!EHCI_OpenEndpoint+0x150
fffffc88`19b4c580 fffff802`fd742a44     : fffffc88`19b4c5c0 fffff802`fd742a44 ffffac8c`32f1d560 00000000`00180a95 : USBPORT!MPx_OpenEndpoint+0xd4
fffffc88`19b4c5c0 fffff802`fd741788     : fffffc88`19b4c630 fffff802`fd741788 fffffc88`19b4c501 00010000`00000400 : USBPORT!USBPORT_OpenEndpoint+0x94c
fffffc88`19b4c630 fffff802`fd71ec10     : fffffc88`19b4c6b0 fffff802`fd71ec10 ffffac8c`32355050 fffffc88`19b4c6c0 : USBPORT!USBPORT_NeoCreateDevice+0x300
fffffc88`19b4c6a0 fffff802`fd5e7a88     : ffffac8c`34355c20 ffff5b86`9c073a86 fffffc88`19b4c7b0 fffff802`fd5e7a88 : USBPORT!USBPORTBUSIF_CreateUsbDeviceV7+0xa0
fffffc88`19b4c720 fffff802`fd60a4ec     : ffffac8c`34355c20 ffffac8c`343439c0 ffffac8c`34340000 00000000`00000000 : usbhub!UsbhCreateDevice+0x2a0
fffffc88`19b4c810 fffff802`fd6088f0     : fffffc88`19b4c840 fffff802`faf0a494 00000000`00000990 00000000`00000000 : usbhub!UsbhReset1Complete+0x16c
fffffc88`19b4c8a0 fffff802`fd5df238     : fffffc88`19b4c900 fffff802`fd5df238 00000000`00000010 fffff802`fd5dec64 : usbhub!UsbhEnumerate1+0x218
fffffc88`19b4c8f0 fffff802`fd5dfa90     : fffffc88`19b4c970 fffff802`fd5df95c fffffc88`19b4c970 fffff802`fd5dfa90 : usbhub!UsbhHubDispatchPortEvent+0x718
fffffc88`19b4c960 fffff802`fd5e5d0c     : 00000000`00000000 ffffac8c`324d8028 fffffc88`19b4ca20 fffff802`fd5e5d0c : usbhub!UsbhHubRunPortChangeQueue+0x310
fffffc88`19b4ca20 fffff802`fd5de524     : fffffc88`19b4ca60 fffff802`fd5de524 50447170`70714400 fffff802`faf0c570 : usbhub!Usbh_PCE_wRun_Action+0x194
fffffc88`19b4ca60 fffff802`fd5e1134     : fffffc88`19b4cab0 fffff802`fd5e1134 ffffac8c`324d2050 ffffac8c`324d8010 : usbhub!UsbhDispatch_PortChangeQueueEventEx+0x12c
fffffc88`19b4cab0 fffff802`fd5df46c     : fffffc88`19b4cae0 fffff802`fd5df46c ffffac8c`324d8010 ffffac8c`324d2050 : usbhub!UsbhPCE_wRun+0x8c
fffffc88`19b4cae0 fffff802`faf84c3c     : fffffc88`19b4cb50 fffff802`faf84c3c fffffffe`76999ba7 00000000`00000000 : usbhub!UsbhHubProcessChangeWorker+0x12c
fffffc88`19b4cb30 fffff802`faf8415c     : 00000000`00000000 00000000`00000000 ffffac8c`325b7080 ffff5b86`9c073f26 : nt!IopProcessWorkItem+0x8c
fffffc88`19b4cb90 fffff802`fb01a70c     : ffffac8c`31e69420 fffff802`fb9e1200 fffff802`fb9e1200 00000000`00000000 : nt!ExpWorkerThread+0x1dc
fffffc88`19b4cd50 fffff802`faeb7de4     : 00000000`00000000 fffff802`faeb7de4 ffffac8c`325b7080 fffff802`fa5a0980 : nt!PspSystemThreadStartup+0xdc
fffffc88`19b4cd90 00000000`00000000     : ffffac8c`31ebfa20 fffff802`faf83f80 fffff802`fb01a630 00000000`00000000 : nt!KiStartSystemThread+0x24
jaredmcneill commented 2 years ago

Thanks for the bug report! I'm able to reproduce it here on my 8GB Quartz64. Not sure what's going on yet.

jjcampo commented 2 years ago

Booting latest windows 11 arm from usb2, but the other one causes panic. I have reached to desktop :) Really slow because display is forced to 4k like in linux but you made this dream possible. Thanks @jared.