qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [BUG] QEMU BIOS - El Torito no emulation boot address incor


From: Jarno Rajala
Subject: [Qemu-devel] [BUG] QEMU BIOS - El Torito no emulation boot address incorrect seg:off
Date: Wed, 23 Jul 2008 12:44:48 +0300
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

Hello

I believe I've located a minor bug in QEMU BIOS. According to the El Torito specification the no emulation mode should load the boot code to the real mode address seg:0 and start executing from there. However, QEMU jumps to 0:seg*16, which is the same absolute address, but wrong segment:offset.

The QEMU BIOS version I have is

QEMU BIOS - build: 02/13/08
$Revision: 1.194 $ $Date: 2007/12/23 19:46:27 $
Options: apmbios pcibios eltorito rombios32

The following boot code illustrates the problem. It prints JJ to the top of the screen on a real PC, but prints JA instead on QEMU. (The boot image is set to load into the segment 0x7c8)

test_code:
   call .call
.call:
   pop bx
   mov ax,cs
   shl ax,4
   add ax,bx
.l1
   cmp ax,0x7c83
   jne .l1
mov ax,0xb800
   mov es,ax
   mov [es:0],word 0x074a
mov ax,cs
   cmp ax,0x7c8
   jne .l2
   mov [es:2],word 0x074a
   jmp .loopy
.l2
   cmp ax,0
   jne .loopy
   mov [es:2],word 0x0741
.loopy:
   jmp .loopy

Jarno Rajala





reply via email to

[Prev in Thread] Current Thread [Next in Thread]