mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-22 13:37:10 +00:00
HV: Combine the acpi loading fucntion to one place
Remove the acpi loading function from elf_loader, rawimage_loaer and bzimage_loader, and call it together in vm_sw_loader. Now the vm_sw_loader's job is not just loading sw, so we rename it to prepare_os_image. Tracked-On: #6323 Signed-off-by: Zhou, Wu <wu.zhou@intel.com> Reviewed-by: Victor Sun <victor.sun@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
parent
ac2c7c4350
commit
897442bc3e
@ -816,7 +816,7 @@ int32_t reset_vm(struct acrn_vm *vm)
|
||||
vm->arch_vm.vlapic_mode = VM_VLAPIC_XAPIC;
|
||||
|
||||
if (is_sos_vm(vm)) {
|
||||
(void)vm_sw_loader(vm);
|
||||
(void)prepare_os_image(vm);
|
||||
}
|
||||
|
||||
reset_vm_ioreqs(vm);
|
||||
@ -932,7 +932,7 @@ void prepare_vm(uint16_t vm_id, struct acrn_vm_config *vm_config)
|
||||
}
|
||||
}
|
||||
|
||||
err = vm_sw_loader(vm);
|
||||
err = prepare_os_image(vm);
|
||||
|
||||
if (is_prelaunched_vm(vm)) {
|
||||
loaded_pre_vm_nr++;
|
||||
|
@ -338,7 +338,6 @@ static void load_bzimage(struct acrn_vm *vm, struct acrn_vcpu *vcpu,
|
||||
struct sw_kernel_info *sw_kernel = &(vm->sw.kernel_info);
|
||||
struct sw_module_info *bootargs_info = &(vm->sw.bootargs_info);
|
||||
struct sw_module_info *ramdisk_info = &(vm->sw.ramdisk_info);
|
||||
struct sw_module_info *acpi_info = &(vm->sw.acpi_info);
|
||||
struct zero_page *zeropage = (struct zero_page *)sw_kernel->kernel_src_addr;
|
||||
|
||||
/* The bzImage file consists of three parts:
|
||||
@ -379,9 +378,6 @@ static void load_bzimage(struct acrn_vm *vm, struct acrn_vcpu *vcpu,
|
||||
|
||||
load_sw_module(vm, bootargs_info);
|
||||
|
||||
/* Copy Guest OS ACPI to its load location */
|
||||
load_sw_module(vm, acpi_info);
|
||||
|
||||
/* 32bit kernel entry is at where protected mode code loaded */
|
||||
kernel_entry_offset = 0U;
|
||||
if (vcpu->arch.cpu_mode == CPU_MODE_64BIT) {
|
||||
|
@ -13,7 +13,6 @@
|
||||
static void load_rawimage(struct acrn_vm *vm)
|
||||
{
|
||||
struct sw_kernel_info *sw_kernel = &(vm->sw.kernel_info);
|
||||
struct sw_module_info *acpi_info = &(vm->sw.acpi_info);
|
||||
const struct acrn_vm_config *vm_config = get_vm_config(vm->vm_id);
|
||||
uint64_t kernel_load_gpa;
|
||||
|
||||
@ -23,9 +22,6 @@ static void load_rawimage(struct acrn_vm *vm)
|
||||
/* Copy the guest kernel image to its run-time location */
|
||||
(void)copy_to_gpa(vm, sw_kernel->kernel_src_addr, kernel_load_gpa, sw_kernel->kernel_size);
|
||||
|
||||
/* Copy Guest OS ACPI to its load location */
|
||||
load_sw_module(vm, acpi_info);
|
||||
|
||||
sw_kernel->kernel_entry_addr = (void *)vm_config->os_config.kernel_entry_addr;
|
||||
}
|
||||
|
||||
|
@ -22,11 +22,12 @@ void load_sw_module(struct acrn_vm *vm, struct sw_module_info *sw_module)
|
||||
/**
|
||||
* @pre vm != NULL
|
||||
*/
|
||||
int32_t vm_sw_loader(struct acrn_vm *vm)
|
||||
int32_t prepare_os_image(struct acrn_vm *vm)
|
||||
{
|
||||
int32_t ret = -EINVAL;
|
||||
/* get primary vcpu */
|
||||
struct acrn_vcpu *vcpu = vcpu_from_vid(vm, BSP_CPU_ID);
|
||||
struct sw_module_info *acpi_info = &(vm->sw.acpi_info);
|
||||
|
||||
switch (vm->sw.kernel_type) {
|
||||
#ifdef CONFIG_GUEST_KERNEL_BZIMAGE
|
||||
@ -45,6 +46,8 @@ int32_t vm_sw_loader(struct acrn_vm *vm)
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
/* Copy Guest OS ACPI to its load location */
|
||||
load_sw_module(vm, acpi_info);
|
||||
/* Set VCPU entry point to kernel entry */
|
||||
vcpu_set_rip(vcpu, (uint64_t)vm->sw.kernel_info.kernel_entry_addr);
|
||||
pr_info("%s, VM %hu VCPU %hu Entry: 0x%016lx ", __func__, vm->vm_id, vcpu->vcpu_id,
|
||||
|
@ -249,7 +249,7 @@ void create_sos_vm_e820(struct acrn_vm *vm);
|
||||
void create_prelaunched_vm_e820(struct acrn_vm *vm);
|
||||
uint64_t find_space_from_ve820(struct acrn_vm *vm, uint32_t size, uint64_t min_addr, uint64_t max_addr);
|
||||
|
||||
int32_t vm_sw_loader(struct acrn_vm *vm);
|
||||
int32_t prepare_os_image(struct acrn_vm *vm);
|
||||
|
||||
void vrtc_init(struct acrn_vm *vm);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user