From ad354700c94417c988a2965cbfd4026a24df2b8c Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Tue, 17 Mar 2020 18:18:01 +0100 Subject: [PATCH] arch: x86: Extract common bootparams settings We're going to add more common settings, so let's avoid duplication between the 2 branches. Signed-off-by: Samuel Ortiz --- arch/src/x86_64/mod.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/src/x86_64/mod.rs b/arch/src/x86_64/mod.rs index a179e18ba..0eaca5e9e 100644 --- a/arch/src/x86_64/mod.rs +++ b/arch/src/x86_64/mod.rs @@ -304,18 +304,19 @@ fn configure_64bit_boot( let mut params: BootParamsWrapper = BootParamsWrapper(boot_params::default()); if let Some(hdr) = setup_hdr { + // We should use the header if the loader provides one (e.g. from a bzImage). params.0.hdr = hdr; - params.0.hdr.cmd_line_ptr = cmdline_addr.raw_value() as u32; - params.0.hdr.cmdline_size = cmdline_size as u32; } else { params.0.hdr.type_of_loader = KERNEL_LOADER_OTHER; params.0.hdr.boot_flag = KERNEL_BOOT_FLAG_MAGIC; params.0.hdr.header = KERNEL_HDR_MAGIC; - params.0.hdr.cmd_line_ptr = cmdline_addr.raw_value() as u32; - params.0.hdr.cmdline_size = cmdline_size as u32; params.0.hdr.kernel_alignment = KERNEL_MIN_ALIGNMENT_BYTES; }; + // Common bootparams settings + params.0.hdr.cmd_line_ptr = cmdline_addr.raw_value() as u32; + params.0.hdr.cmdline_size = cmdline_size as u32; + add_e820_entry(&mut params.0, 0, layout::EBDA_START.raw_value(), E820_RAM)?; let mem_end = guest_mem.last_addr();