|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 10/14] hvmloader: Load SeaBIOS from hvm_start_info modules
> diff --git a/tools/firmware/hvmloader/seabios.c
> b/tools/firmware/hvmloader/seabios.c
> index c6b3d9f..5d0a491 100644
> --- a/tools/firmware/hvmloader/seabios.c
> +++ b/tools/firmware/hvmloader/seabios.c
> @@ -27,9 +27,6 @@
> #include "smbios_types.h"
> #include "acpi/acpi2_0.h"
>
> -#define ROM_INCLUDE_SEABIOS
> -#include "roms.inc"
> -
> extern unsigned char dsdt_anycpu_qemu_xen[];
> extern int dsdt_anycpu_qemu_xen_len;
>
> @@ -127,22 +124,29 @@ static void seabios_setup_e820(void)
> struct e820entry *e820 = scratch_alloc(sizeof(struct e820entry)*16, 0);
> info->e820 = (uint32_t)e820;
>
> + BUG_ON(seabios_config.bios_address < 0xc0000 ||
> seabios_config.bios_address >= 0x100000);
s/0x100000/HVMLOADER_PHYSICAL_ADDRESS/
s/0xc0000/0x000C0000/
?
> /* SeaBIOS reserves memory in e820 as necessary so no low reservation. */
> - info->e820_nr = build_e820_table(e820, 0, 0x100000-sizeof(seabios));
> + info->e820_nr = build_e820_table(e820, 0, seabios_config.bios_address);
> dump_e820_table(e820, info->e820_nr);
> }
>
> -struct bios_config seabios_config = {
> - .name = "SeaBIOS",
> +static void seabios_load(const struct bios_config *bios,
> + void *bios_addr, uint32_t bios_length)
> +{
> + unsigned int bios_dest = 0x100000 - bios_length;
>
> - .image = seabios,
> - .image_size = sizeof(seabios),
> + BUG_ON(bios_dest + bios_length > HVMLOADER_PHYSICAL_ADDRESS);
> + memcpy((void *)bios_dest, bios_addr, bios_length);
> + seabios_config.bios_address = bios_dest;
> + seabios_config.image_size = bios_length;
> +}
>
> - .bios_address = 0x100000 - sizeof(seabios),
> +struct bios_config seabios_config = {
> + .name = "SeaBIOS",
>
> .load_roms = NULL,
>
> - .bios_load = NULL,
> + .bios_load = seabios_load,
>
> .bios_info_setup = seabios_setup_bios_info,
> .bios_info_finish = seabios_finish_bios_info,
> --
> Anthony PERARD
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |