Details
-
Bug
-
Resolution: Cannot Reproduce
-
Major
-
None
-
None
Description
ACER aspire one ZG5
commit c9fc7be66907...
Investigation suggests this is happening soon after the async list base is assigned in EHCI_InitializeSchedule() (when being called from EHCI_StartController()).
Investigation steps to conclude this...
Mods usbehci.cpp, adding more diagnostics and some code changes in EHCI_StartController() and routines it calls. Diagnostics added in various locations to pursue probable location of hang leading to area mentioned above. Non-diagnostic code changes involved disabling the async list scheduling in EHCI_InitializeHardware() and stopping the controller, starting it (.Run=1, write) at end of EHCI_StartController() . (Implementation cloned from old usbehci\hardware.c.) Activating the stop controller/disableasync allows booting to proceed (just) beyond that point, when it again hangs when the controller is put into an active run state at the end of EHCI_StartController().
In no situation does the code flow ever seem to reach the breakpoint towards the end of EHCI_StartController() (the conditional check on ->Reserved 1 was deactivated so that the breakpoint should always occur - breakpoint form also changed to __debugbreak() since that's what I've seen and used elsewhere in recent driver exploration.)