From: Wei Liu Date: Thu, 5 Dec 2013 17:29:31 +0000 (+0000) Subject: hvmloader/ovmf: setup E820 map X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5802 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d7bea9c593aa1dd4db9a05a196ce186a232ec8fe;p=xen.git hvmloader/ovmf: setup E820 map E820 map will be used by OVMF to create memory map. Signed-off-by: Wei Liu Acked-by: Ian Campbell --- diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovmf.c index d50e2b2a78..28dd7bc77b 100644 --- a/tools/firmware/hvmloader/ovmf.c +++ b/tools/firmware/hvmloader/ovmf.c @@ -137,6 +137,17 @@ static void ovmf_create_smbios_tables(void) SMBIOS_PHYSICAL_END); } +static void ovmf_setup_e820(void) +{ + struct ovmf_info *info = (void *)OVMF_INFO_PHYSICAL_ADDRESS; + struct e820entry *e820 = scratch_alloc(sizeof(struct e820entry)*16, 0); + info->e820 = (uint32_t)e820; + + /* Reserve LOWCHUNK_BEGIN to 0x100000 as well, that's reset vector. */ + info->e820_nr = build_e820_table(e820, 0, LOWCHUNK_BEGIN); + dump_e820_table(e820, info->e820_nr); +} + struct bios_config ovmf_config = { .name = "OVMF", @@ -151,7 +162,7 @@ struct bios_config ovmf_config = { .bios_info_setup = ovmf_setup_bios_info, .bios_info_finish = ovmf_finish_bios_info, - .e820_setup = NULL, + .e820_setup = ovmf_setup_e820, .acpi_build_tables = ovmf_acpi_build_tables, .create_mp_tables = NULL,