[LinuxBIOS] Booting Windows 2K / XP on QEMU - Problems - GSoC -Current Startus

Augusto Pedroza augusto.pedroza at gmail.com
Mon May 14 03:00:50 CEST 2007


Hi my friends,
 I feel that is very important to inform this list about my efforts and also
receive an important feedback. We really feel that getting the things below
to work on qemu will be an important step for LinuxBIOS, since people who do
not have access to proper hardware will be able to test it and contribute in
some ways.
   I haven't  had success yet but this is what I got.

 I am going to detail all the steps I've taken up to now.
Preparing Images:
1- My first step create 2 qcow disk images, one for win2k(2G) and another
one for winXP(3G), I followed these instructions:

http://www.hermann-uwe.de/blog/howto-install-windows-xp-in-debian-using-qemu
2- I installed a  small version of Fedora in these images and of course grub
in the MBR.

Preparing linuxbios:
 1- My first step was to patch the as86 compiler.
 2- Executed Makefile with make in the ADLO directory
 3- Edited the payload option in the Config.lb file within qemu-i386
directory of LinuxBIOS to point to the payload generated by ADLO.
 4- Run make and copied qemu-bios.rom to my home as bios.bin
 5- Copied the vgabios-cirrus.bin to the same directory above.
 6- Ran the following command :  qemu -L ~ 2k_linux.cow -no-kqemu -serial
stdio

With win2k got the following output:
LinuxBIOS-2.0.0-OpenBIOS Wed May  2 19:21:12 BRT 2007 starting...
Copying LinuxBIOS to RAM.
Jumping to LinuxBIOS.
LinuxBIOS-2.0.0-OpenBIOS Wed May  2 19:21:12 BRT 2007 booting...
Enumerating buses...
Finding PCI configuration type.
PCI: Using configuration type 1
PCI_DOMAIN: 0000 enabled
PCI: pci_scan_bus for bus 00
PCI: 00:00.0 [8086/1237] enabled
PCI: 00:01.0 [8086/7000] enabled
PCI: 00:01.1 [8086/7010] enabled
PCI: 00:01.3 [8086/7113] enabled
PCI: 00:02.0 [1013/00b8] enabled
PCI: 00:03.0 [10ec/8029] enabled
PCI: pci_scan_bus returning with max=000
done
Allocating resources...
Reading resources...
Done reading resources.
Setting resources...
I would set ram size to 0x20000 Kbytes
PCI: 00:01.1 20 <- [0x0000001400 - 0x000000140f] io
PCI: 00:02.0 10 <- [0x00fc000000 - 0x00fdffffff] prefmem
PCI: 00:02.0 14 <- [0x00fe000000 - 0x00fe000fff] mem
PCI: 00:03.0 10 <- [0x0000001000 - 0x00000010ff] io
Done setting resources.
Done allocating resources.
Enabling resources...
PCI: 00:00.0 subsystem <- 00/00
PCI: 00:00.0 cmd <- 140
PCI: 00:01.0 subsystem <- 00/00
PCI: 00:01.0 cmd <- 147
PCI: 00:01.1 cmd <- 141
PCI: 00:01.3 cmd <- 140
PCI: 00:02.0 cmd <- 143
PCI: 00:03.0 cmd <- 141
done.
Initializing devices...
Root Device init
PCI: 00:00.0 init
PCI: 00:01.0 init
PCI: 00:01.1 init
PCI: 00:01.3 init
PCI: 00:02.0 init
PCI: 00:03.0 init
Devices initialized
Copying IRQ routing tables to 0xf0000...done.
Verifing copy of IRQ routing tables at 0xf0000...done
Checking IRQ routing table consistency...
check_pirq_routing_table() - irq_routing_table located at: 0x000f0000
done.
Moving GDT to 0x500...ok
Adjust low_table_end from 0x00000530 to 0x00001000
Adjust rom_table_end from 0x000f0400 to 0x00100000
Wrote linuxbios table at: 00000530 - 00000b68  checksum cf09

Welcome to elfboot, the open sourced starter.
January 2002, Eric Biederman.
Version 1.3

rom_stream: 0xfffc0000 - 0xfffeffff
Found ELF candidate at offset 0
header_offset is 0
Try to load at offset 0x0
New segment addr 0x7c00 size 0x10400 offset 0x100 filesize 0x10400
(cleaned up) New segment addr 0x7c00 size 0x10400 offset 0x100 filesize
0x10400
Loading Segment: addr: 0x0000000007fdfc00 memsz: 0x000000000000e400 filesz:
0x000000000000e400
Loading Segment: addr: 0x0000000000016000 memsz: 0x0000000000002000 filesz:
0x0000000000002000
Jumping to boot code at 0x7c00
$Revision: 1.163 $ $Date: 2006/07/07 16:10:37 $
Bochs BIOS - build: 06/23/99
$Revision: 1.163 $ $Date: 2006/07/07 16:10:37 $
Options:

ata0-0: PCHS=4063/16/63 translation=lba LCHS=1015/64/63
ata0 master: QEMU HARDDISK ATA-7 Hard-Disk (2000 MBytes)
ata1 master: QEMU CD-ROM ATAPI-4 CD-Rom/DVD-Rom

Booting from Hard Disk...
int13_harddisk function 4Bh unsupported, returns fail
int13_harddisk: function 41, unmapped device for ELDL=81
int13_harddisk: function 08, unmapped device for ELDL=81
*** int 15h function AX=00C0, BX=0000 not yet supported!
*** int 15h function AX=5300, BX=0000 not yet supported!
*** int 15h function AX=5304, BX=0000 not yet supported!
int13_harddisk function 4Bh unsupported, returns fail
int13_harddisk function 4Bh unsupported, returns fail
int13_harddisk function 4Bh unsupported, returns fail
int13_harddisk function 4Bh unsupported, returns fail
*** int 15h function AX=5300, BX=0000 not yet supported!
int13_harddisk: function 15, unmapped device for ELDL=81

When I pressed some keyboard keys I got the following:

KBD: int09h_handler(): unknown scancode read: 0x72!
KBD: int09h_handler(): unknown scancode read: 0x72!
KBD: int09h_handler(): unknown scancode read: 0x75!
KBD: int09h_handler(): unknown scancode read: 0x75!
KBD: int09h_handler(): unknown scancode read: 0x74!
KBD: int09h_handler(): unknown scancode read: 0x74

After I closer look I found out taht most of these problems were due to GRUB
interupts.


PS: Both images work fine with: qemu 2k_linux.cow -no-kqemu -serial stdio

I appreciate any suggestion,

-- 
Augusto Pedroza
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20070513/325cbe97/attachment.html>


More information about the coreboot mailing list