[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv2] fix linuxboot.bin and multiboot.bin to not hi
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCHv2] fix linuxboot.bin and multiboot.bin to not hijack int19 |
Date: |
Tue, 22 Mar 2011 07:05:58 +0100 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Mon, Jan 31, 2011 at 03:11:01PM +0200, Gleb Natapov wrote:
> Currently linuxboot.bin and multiboot.bin option roms override int19
> vector to intercept boot process. No sane option rom should do that.
> Provide bev entry instead that will be called by BIOS if option rom
> is selected for booting.
>
> Signed-off-by: Gleb Natapov <address@hidden>
> ---
>
> Note that this patch should be applied after qemu will upgrade to Seabios
> that supports boot order. Otherwise there will be change in behavior
> since option rom will not be selected for booting by default.
>
> v1->v2:
> - change PRODUCT to BOOT_ROM_PRODUCT
> - move pnp header from OPTION_ROM_START to BOOT_ROM_START
Thanks, applied.
> diff --git a/pc-bios/optionrom/linuxboot.S b/pc-bios/optionrom/linuxboot.S
> index c109363..748c831 100644
> --- a/pc-bios/optionrom/linuxboot.S
> +++ b/pc-bios/optionrom/linuxboot.S
> @@ -22,6 +22,8 @@
>
> #include "optionrom.h"
>
> +#define BOOT_ROM_PRODUCT "Linux loader"
> +
> BOOT_ROM_START
>
> run_linuxboot:
> diff --git a/pc-bios/optionrom/multiboot.S b/pc-bios/optionrom/multiboot.S
> index 9131837..cc5ca1b 100644
> --- a/pc-bios/optionrom/multiboot.S
> +++ b/pc-bios/optionrom/multiboot.S
> @@ -20,6 +20,8 @@
>
> #include "optionrom.h"
>
> +#define BOOT_ROM_PRODUCT "multiboot loader"
> +
> #define MULTIBOOT_MAGIC 0x2badb002
>
> #define GS_PROT_JUMP 0
> diff --git a/pc-bios/optionrom/optionrom.h b/pc-bios/optionrom/optionrom.h
> index fbdd48a..aa783de 100644
> --- a/pc-bios/optionrom/optionrom.h
> +++ b/pc-bios/optionrom/optionrom.h
> @@ -97,22 +97,28 @@
>
> #define BOOT_ROM_START \
> OPTION_ROM_START \
> - push %eax; \
> - push %ds; \
> - \
> - /* setup ds so we can access the IVT */ \
> - xor %ax, %ax; \
> - mov %ax, %ds; \
> - \
> - /* install our int 19 handler */ \
> - movw $int19_handler, (0x19*4); \
> - mov %cs, (0x19*4+2); \
> - \
> - pop %ds; \
> - pop %eax; \
> lret; \
> - \
> - int19_handler:; \
> + .org 0x18; \
> + .short 0; \
> + .short _pnph; \
> + _pnph: \
> + .ascii "$PnP"; \
> + .byte 0x01; \
> + .byte ( _pnph_len / 16 ); \
> + .short 0x0000; \
> + .byte 0x00; \
> + .byte 0x00; \
> + .long 0x00000000; \
> + .short _manufacturer; \
> + .short _product; \
> + .long 0x00000000; \
> + .short 0x0000; \
> + .short 0x0000; \
> + .short _bev; \
> + .short 0x0000; \
> + .short 0x0000; \
> + .equ _pnph_len, . - _pnph; \
> + _bev:; \
> /* DS = CS */ \
> movw %cs, %ax; \
> movw %ax, %ds;
> @@ -122,5 +128,9 @@
> _end:
>
> #define BOOT_ROM_END \
> + _manufacturer:; \
> + .asciz "QEMU"; \
> + _product:; \
> + .asciz BOOT_ROM_PRODUCT; \
> OPTION_ROM_END
>
> --
> Gleb.
>
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCHv2] fix linuxboot.bin and multiboot.bin to not hijack int19,
Aurelien Jarno <=