diff --git a/libraries/libmesosphere/source/board/nintendo/nx/kern_k_sleep_manager.cpp b/libraries/libmesosphere/source/board/nintendo/nx/kern_k_sleep_manager.cpp index 5e5983c86..59e7770ea 100644 --- a/libraries/libmesosphere/source/board/nintendo/nx/kern_k_sleep_manager.cpp +++ b/libraries/libmesosphere/source/board/nintendo/nx/kern_k_sleep_manager.cpp @@ -524,6 +524,14 @@ namespace ams::kern::board::nintendo::nx { /* Ensure that all cores get to this point before continuing. */ cpu::SynchronizeAllCores(); + /* Wait 100us before continuing. */ + { + const s64 timeout = KHardwareTimer::GetTick() + ams::svc::Tick(TimeSpan::FromMicroSeconds(100)); + while (KHardwareTimer::GetTick() < timeout) { + __asm__ __volatile__("" ::: "memory"); + } + } + /* Save the interrupt manager's state. */ Kernel::GetInterruptManager().Save(core_id);