hv: merge SBL and UEFI related stuff under boot

This patch mainly unifies init_vm_boot_info's implementation between SBL and
UEFI.

Tracked-On: #2708
Signed-off-by: Tw <wei.tan@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Tw
2019-03-04 13:51:41 +08:00
committed by wenlingz
parent 56d8b08b78
commit 9b24620e16
13 changed files with 29 additions and 19 deletions

View File

@@ -36,6 +36,7 @@ static struct firmware_operations firmware_sbl_ops = {
.get_ap_trampoline = sbl_get_ap_trampoline,
.get_rsdp = sbl_get_rsdp,
.init_irq = sbl_init_irq,
.init_vm_boot_info = sbl_init_vm_boot_info,
};
struct firmware_operations* sbl_get_firmware_operations(void)

View File

@@ -34,13 +34,13 @@ static void uefi_init(void)
}
}
const struct uefi_context *get_efi_ctx(void)
const struct uefi_context *get_uefi_ctx(void)
{
uefi_init();
return &uefi_ctx;
}
const struct lapic_regs *get_efi_lapic_regs(void)
const struct lapic_regs *get_uefi_lapic_regs(void)
{
uefi_init();
return &uefi_lapic_regs;
@@ -80,6 +80,7 @@ static struct firmware_operations firmware_uefi_ops = {
.get_ap_trampoline = uefi_get_ap_trampoline,
.get_rsdp = uefi_get_rsdp,
.init_irq = uefi_init_irq,
.init_vm_boot_info = uefi_init_vm_boot_info,
};
struct firmware_operations* uefi_get_firmware_operations(void)

View File

@@ -9,6 +9,7 @@
#include <firmware.h>
#include <firmware_sbl.h>
#include <firmware_uefi.h>
#include "platform_acpi_info.h"
static struct firmware_operations *firmware_ops;
@@ -77,3 +78,9 @@ void firmware_init_irq(void)
{
return firmware_ops->init_irq();
}
/* @pre: firmware_ops->init_vm_boot_info != NULL */
int32_t firmware_init_vm_boot_info(struct acrn_vm *vm)
{
return firmware_ops->init_vm_boot_info(vm);
}

View File

@@ -13,6 +13,7 @@ struct firmware_operations {
uint64_t (*get_ap_trampoline)(void);
void *(*get_rsdp)(void);
void (*init_irq)(void);
int32_t (*init_vm_boot_info)(struct acrn_vm *vm);
};
void init_firmware_operations(void);
@@ -20,6 +21,7 @@ void init_firmware(void);
uint64_t firmware_get_ap_trampoline(void);
void *firmware_get_rsdp(void);
void firmware_init_irq(void);
int32_t firmware_init_vm_boot_info(struct acrn_vm *vm);
#ifndef CONFIG_CONSTANT_ACPI
void acpi_fixup(void);

View File

@@ -11,5 +11,6 @@
#include <firmware.h>
struct firmware_operations* sbl_get_firmware_operations(void);
int32_t sbl_init_vm_boot_info(struct acrn_vm *vm);
#endif /* end of include guard: FIRMWARE_SBL_H */

View File

@@ -19,5 +19,6 @@ const struct uefi_context *get_uefi_ctx(void);
const struct lapic_regs *get_uefi_lapic_regs(void);
struct firmware_operations* uefi_get_firmware_operations(void);
int32_t uefi_init_vm_boot_info(__unused struct acrn_vm *vm);
#endif /* end of include guard: FIRMWARE_UEFI_H */