From 95a9f6d9a0ab0a4dc98862398afcdd82c969c75c Mon Sep 17 00:00:00 2001 From: Yonghua Huang Date: Mon, 4 Nov 2019 18:09:55 +0800 Subject: [PATCH] hv: update the flow to get trampoline buffer in direct boot mode Currently, memory with size of 'CONFIG_LOW_RAM_SIZE' will be allocated when 'get_direct_boot_ap_trampoline()' is called. This patch refine the implementation of of above function, it returns the base address of trampoline buffer when called, and the memory is allocated when vboot module is initialized. Tracked-On: #3992 Signed-off-by: Yonghua Huang --- hypervisor/boot/guest/direct_boot.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hypervisor/boot/guest/direct_boot.c b/hypervisor/boot/guest/direct_boot.c index 210b0bdcc..21180ed0d 100644 --- a/hypervisor/boot/guest/direct_boot.c +++ b/hypervisor/boot/guest/direct_boot.c @@ -11,15 +11,20 @@ #include #include +/*AP trampoline code buffer base address.*/ +static uint64_t ap_trampoline_buf; + static void init_direct_boot(void) { - /* nothing to do for now */ + if (ap_trampoline_buf == 0UL) { + ap_trampoline_buf = e820_alloc_low_memory(CONFIG_LOW_RAM_SIZE); + } } /* @post: return != 0UL */ static uint64_t get_direct_boot_ap_trampoline(void) { - return e820_alloc_low_memory(CONFIG_LOW_RAM_SIZE); + return ap_trampoline_buf; } static void* get_direct_boot_rsdp(void)