Hi,
All USB asynchronous transfer timer intervals defined in Ehci.h, Uhci.h and Xhci.h are set to 1ms value as below: #define EHC_ASYNC_POLL_INTERVAL EFI_TIMER_PERIOD_MILLISECONDS(1) #define UHC_ASYNC_POLL_INTERVAL EFI_TIMER_PERIOD_MILLISECONDS(1) #define XHC_ASYNC_TIMER_INTERVAL EFI_TIMER_PERIOD_MILLISECONDS(1) are used to start the asynchronous interrupt monitor as: Status = gBS->SetTimer (Xhc->PollTimer, TimerPeriodic, XHC_ASYNC_TIMER_INTERVAL); , but all h/w platforms, except Hisilicon from OpenPlatformPkg either use default PcdTimerPeriod gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 from EmbeddedPkg or redefine the same 100000 value (e.g. BeagleBoardPkg) which gives Timer Interrupt period of 10ms in which case the polling interval will be also 10ms but not 1ms as desinged. There are other cases when TimerPeriodic event is set with 1ms period, see: edk2\MdeModulePkg\Bus\Ata\AtaAtapiPassThru\AtaAtapiPassThru.c: // // Set 1ms timer. // Status = gBS->SetTimer (Instance->TimerEvent, TimerPeriodic, 10000); edk2\MdeModulePkg\Bus\Pci\NvmExpressDxe\NvmExpress.h: // // Nvme async transfer timer interval, set by experience. // #define NVME_HC_ASYNC_TIMER EFI_TIMER_PERIOD_MILLISECONDS (1) edk2\MdeModulePkg\Bus\Pci\SdMmcPciHcDxe\SdMmcPciHcDxe.h: // // SD/MMC async transfer timer interval, set by experience. // The unit is 100us, takes 1ms as interval. // #define SD_MMC_HC_ASYNC_TIMER EFI_TIMER_PERIOD_MILLISECONDS(1) , etc. Any comments on that? Alexei. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

