xref: /rk3399_rockchip-uboot/arch/x86/lib/acpi_s3.c (revision ba65808e7d0699e053c9892983312a11d4e2a30a)
1 /*
2  * Copyright (C) 2017, Bin Meng <bmeng.cn@gmail.com>
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #include <common.h>
8 #include <asm/acpi_s3.h>
9 #include <asm/post.h>
10 
11 static void asmlinkage (*acpi_do_wakeup)(void *vector) = (void *)WAKEUP_BASE;
12 
13 static void acpi_jump_to_wakeup(void *vector)
14 {
15 	/* Copy wakeup trampoline in place */
16 	memcpy((void *)WAKEUP_BASE, __wakeup, __wakeup_size);
17 
18 	printf("Jumping to OS waking vector %p\n", vector);
19 	acpi_do_wakeup(vector);
20 }
21 
22 void acpi_resume(void *wake_vec)
23 {
24 	post_code(POST_OS_RESUME);
25 	acpi_jump_to_wakeup(wake_vec);
26 }
27