Implement cpu_idle() on ia64. We put the processor in a lightweight

halt state that minimizes power consumption while still preserving
cache and TLB coherency. Halting the processor is not conditional at
this time. Tested with UP and SMP kernels.
This commit is contained in:
Marcel Moolenaar 2003-10-17 02:24:59 +00:00
parent 55f2099a70
commit b0f865c1f3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=121148
2 changed files with 10 additions and 2 deletions

View File

@ -272,12 +272,20 @@ cpu_boot(int howto)
}
void
cpu_halt(void)
cpu_halt()
{
ia64_efi_runtime->ResetSystem(EfiResetWarm, EFI_SUCCESS, 0, 0);
}
void
cpu_idle()
{
struct ia64_pal_result res;
res = ia64_call_pal_static(PAL_HALT_LIGHT, 0, 0, 0);
}
void
cpu_reset()
{

View File

@ -112,7 +112,7 @@ idle_proc(void *dummy)
" for a process");
#endif
#ifdef __i386__
#if defined(__i386__) || defined(__ia64__)
cpu_idle();
#endif
}