On 03/12/2012 09:48 AM, Andreas Färber wrote:
I happen to be looking to do this myself, but upon running SeaBIOS through some testing, I ran into:
/home/anthony/build/qemu/x86_64-softmmu/qemu-system-x86_64 -kernel bin/vmlinuz-3.0 -initrd .tmp-3349/initramfs-3349.img.gz -append console=ttyS0 seed=38721 -drive file=.tmp-3349/disk-3349.img,if=none,snapshot=on,id=hd0 -device virtio-balloon-pci,addr=03.0 -device virtio-blk-pci,addr=04.0,drive=hd0 -nographic -nodefconfig -m 1G -no-reboot -no-hpet -device virtio-serial -chardev socket,path=.tmp-3349/channel-3349.sock,id=channel0,server,nowait -device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 -nodefaults -serial stdio -enable-kvm -pidfile .tmp-3349/pidfile-3349.pid -qmp unix:.tmp-3349/qmpsock-3349.sock,server,nowait KVM internal error. Suberror: 1 emulation failure EAX=0000aa55 EBX=00000000 ECX=00000000 EDX=00000000 ESI=00000000 EDI=00000000 EBP=00000000 ESP=00006f50 EIP=0000003c EFL=00010202 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0000 00000000 0000ffff 00009300 CS =c300 000c3000 0000ffff 00009b00 SS =0000 00000000 0000ffff 00009300 DS =0000 00000000 0000ffff 00009300 FS =0000 00000000 0000ffff 00009300 GS =0000 00000000 0000ffff 00009300 LDT=0000 00000000 0000ffff 00008200 TR =0000 00000000 0000ffff 00008b00 GDT= 000fd3a8 00000037 IDT= 00000000 000003ff CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 EFER=0000000000000000 Code=00 00 7c 02 81 02 00 00 00 00 00 00 00 00 3c 00 00 00 00 00 <8c> c8 8e d8 fa fc e9 91 00 b8 16 00 ba 10 05 ef ba 11 05 ec 66 c1 e0 08 ec 66 c1 e0 08 ec ^Cqemu: terminating on signal 2
How extensively did you test the new seabios changes and are you able to recreate?
My GCC is:
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)
Regards,
Anthony Liguori
On Mon, Mar 12, 2012 at 11:25:07AM -0500, Anthony Liguori wrote:
[...]
How extensively did you test the new seabios changes and are you able to recreate?
There's only two lines of code changes in this release (beyond build related changes (8 lines)). I don't think it's seabios.
-Kevin
--- a/src/boot.c +++ b/src/boot.c @@ -326,7 +326,7 @@ boot_add_bev(u16 seg, u16 bev, u16 desc, int prio) void boot_add_bcv(u16 seg, u16 ip, u16 desc, int prio) { - bootentry_add(IPL_TYPE_BCV, defPrio(prio, DEFAULT_PRIO) + bootentry_add(IPL_TYPE_BCV, defPrio(prio, DefaultHDPrio) , SEGOFF(seg, ip).segoff , desc ? MAKE_FLATPTR(seg, desc) : "Legacy option rom"); } diff --git a/src/pmm.c b/src/pmm.c index 82a0b1d..c649fd8 100644 --- a/src/pmm.c +++ b/src/pmm.c @@ -214,7 +214,8 @@ malloc_fixupreloc(void) int i; for (i=0; i<ARRAY_SIZE(Zones); i++) { struct zone_s *zone = Zones[i]; - zone->info->pprev = &zone->info; + if (zone->info) + zone->info->pprev = &zone->info; }
// Add space free'd during relocation in f-segment to ZoneFSeg
Hi,
How extensively did you test the new seabios changes and are you able to recreate?
Given the small number of changes just a quick smoke test (boot linux guest).
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)
gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3) GNU ld version 2.20.51.0.2-5.28.el6 20091009
Here is the pull location I forgot: git://git.kraxel.org/qemu seabios-1.6.3.2
If that binary works for you your toolchain is broken ;)
cheers, Gerd