void suspend_resume(void) { void *wake_vec; /* If we happen to be resuming find wakeup vector and jump to OS. */ wake_vec = acpi_find_wakeup_vector(); if (wake_vec) { #if CONFIG_HAVE_SMI_HANDLER u32 *gnvs_address = cbmem_find(CBMEM_ID_ACPI_GNVS); /* Restore GNVS pointer in SMM if found */ if (gnvs_address && *gnvs_address) { printk(BIOS_DEBUG, "Restore GNVS pointer to 0x%08x\n", *gnvs_address); smm_setup_structures((void *)*gnvs_address, NULL, NULL); } #endif /* Call mainboard resume handler first, if defined. */ if (mainboard_suspend_resume) mainboard_suspend_resume(); #if CONFIG_COVERAGE coverage_exit(); #endif post_code(POST_OS_RESUME); acpi_jump_to_wakeup(wake_vec); } }
void suspend_resume(void) { void *wake_vec; /* If we happen to be resuming find wakeup vector and jump to OS. */ wake_vec = acpi_find_wakeup_vector(); if (wake_vec) acpi_jump_to_wakeup(wake_vec); }
void acpi_resume(struct acpi_fadt *fadt) { void *wake_vec; /* Turn on ACPI mode for S3 */ enter_acpi_mode(fadt->pm1a_cnt_blk); wake_vec = acpi_find_wakeup_vector(fadt); /* * Restore the memory content starting from address 0x1000 which is * used for the real mode interrupt handler stubs. */ memcpy((void *)0x1000, (const void *)gd->arch.backup_mem, S3_RESERVE_SIZE); post_code(POST_OS_RESUME); acpi_jump_to_wakeup(wake_vec); }
void acpi_resume(void *wake_vec) { if (CONFIG(HAVE_SMI_HANDLER)) { void *gnvs_address = cbmem_find(CBMEM_ID_ACPI_GNVS); /* Restore GNVS pointer in SMM if found */ if (gnvs_address) { printk(BIOS_DEBUG, "Restore GNVS pointer to %p\n", gnvs_address); smm_setup_structures(gnvs_address, NULL, NULL); } } /* Call mainboard resume handler first, if defined. */ mainboard_suspend_resume(); post_code(POST_OS_RESUME); acpi_jump_to_wakeup(wake_vec); }
void acpi_resume(void *wake_vec) { #if CONFIG_HAVE_SMI_HANDLER u32 *gnvs_address = cbmem_find(CBMEM_ID_ACPI_GNVS_PTR); /* Restore GNVS pointer in SMM if found */ if (gnvs_address && *gnvs_address) { printk(BIOS_DEBUG, "Restore GNVS pointer to 0x%08x\n", *gnvs_address); smm_setup_structures((void *)*gnvs_address, NULL, NULL); } #endif /* Call mainboard resume handler first, if defined. */ mainboard_suspend_resume(); post_code(POST_OS_RESUME); acpi_jump_to_wakeup(wake_vec); }